Come ottenere l'esperienza PS3 / Xbox 360 senza avere accesso ai kit Dev?


24

Sono un programmatore di giochi in erba che cerca di entrare nella programmazione del settore per PS3, Xbox 360. Il problema principale che vedo è la necessità di dimostrare le mie capacità a un potenziale datore di lavoro, ma senza accedere ai kit di sviluppo per PS3 o Xbox 360, facendo questo è direttamente impossibile.

La mia domanda è: qual è il miglior modo alternativo per mostrare le mie competenze agli sviluppatori di console?

La programmazione C ++ in DirectX per Windows sembra vicina a mostrare le capacità di programmazione di Xbox 360 e la programmazione C ++ in OpenGL sembra relativamente vicina a mostrare le capacità di programmazione di PS3. Sfortunatamente, dalla ricerca web sembra che sia Xbox 360 che PS3 abbiano effettivamente le loro librerie propietarie, quindi sembra che questo non sia uno sforzo fruttuoso al 100%. Questo approccio sembra più vicino, ma richiede anche molto tempo. Inoltre non stai eseguendo nulla sulla console.

D'altra parte, la programmazione in XNA ha il vantaggio che i tuoi giochi sono effettivamente sulla console, anche se ho l'impressione che questo non sia considerato "il vero affare" poiché è solo un wrapper per DirectX e usa C # invece di C ++.

Qualcuno ha conoscenza o esperienza all'interno del settore in modo da sapere quale tipo di demo di gioco sarebbe più utile mostrare a un potenziale datore di lavoro? C ++ in DirectX, OpenGL, XNA, Unreal Engine, Unity3d, Flash, ecc ecc ecc? Ci sono solo tante ore al giorno e mi piacerebbe sapere come dirigere i miei sforzi.

La mia impressione è che DirectX sarebbe la scelta migliore, poiché sembra più vicino a ciò che viene utilizzato su Xbox 360, ma se avere una buona demo in un'altra lingua / motore è altrettanto buono, sarebbe ovviamente meno tempo per andare un altro percorso.

Grazie in anticipo per l'aiuto e i consigli!

Risposte:


17

Dipende dal percorso che stai seguendo, francamente la maggior parte delle persone non si aspetta competenze specifiche sulla piattaforma in un junior.

Se sei un programmatore di giochi, crea molti giochi.

Se sei un programmatore tecnico fai un sacco di demo tecnologiche. Leggi interessanti white paper e prova nuove cose. Se fai qualcosa di interessante che fa andare i programmatori a OOOoo, VOGLIAMO parlare con te. Vogliamo parlare di questa piccola cosa interessante che hai fatto. Non deve essere un gioco.

FATTO CHIAVE: le demo dovrebbero funzionare su una vasta gamma di macchine, inclusa una registrazione video come backup. Modificato non crudo.


8

Per un ruolo da junior non sto cercando molta esperienza in nessuna particolare API, ma piuttosto una buona conoscenza dei concetti coinvolti.

Se è una posizione relativa alla grafica che stai cercando, dimostra di conoscere la matematica 3D e come utilizzare bene un'API (OpenGL o D3D, non importa quale realmente - assicurati solo di ottimizzarla bene). Francamente tutte le API si riducono più o meno alla creazione di elenchi di cose da disegnare, inoltrandole e gestendo lo stato - e ci sono buoni modi e modi cattivi per fare quelle cose, quindi capiscilo.

Per una programmazione della console più generale, assicurati di avere una gestione dei problemi particolari che comporta una piattaforma integrata. Memoria limitata (nessuno scambio, frammentazione difettosa, ecc.), Regole rigorose per far fronte agli arresti anomali, larghezza di banda I / O limitata, nessuna (o limitata) capacità di patch / aggiornamento, ecc.

Riguarda lo stile del codice, non i dettagli.

Mi piacerebbe davvero evitare XNA se siete alla ricerca di una posizione di commercio, perché non è in realtà che utile in quel campo.


7

FWIW, vorrei prendere in considerazione la programmazione su Xbox 360 in C # / XNA per essere un molto buon sostituto per "il vero affare".

Ritenere:

  • In XNA su 360, devi occuparti della raccolta dei rifiuti; in particolare, è necessario evitare di effettuare troppe allocazioni per frame. Mentre in C ++ su 360, non ha a che fare con la raccolta dei rifiuti (a meno che non hai a che fare con un linguaggio di scripting, come Lua), ma si fa ancora voglia di evitare di fare molte, se del caso, gli stanziamenti per-fotogramma.
  • Per sfruttare gran parte della potenza di elaborazione del 360, devi rendere il tuo codice multi-thread. Questo è altrettanto vero, se non di più, in XNA come lo è in C ++, a causa del desiderio di compensare che il codice gestito è leggermente meno performante di C ++.
  • Oltre a molte funzioni e classi di supporto fornite da XNA, l'API grafica in XNA, dato che si basa su DirectX, è estremamente simile a DirectX / C ++ su 360.

La cosa meravigliosa di XNA è che ti consente di concentrarti meno sui problemi tecnici di ottenere qualcosa sullo schermo e di più sulla creazione del tuo gioco. Semplicemente creare un gioco (qualsiasi gioco!), Che è relativamente privo di bug e funziona a un frame rate decente - specialmente nell'ambiente limitato che offre XNA - ti darà molta esperienza, una demo che puoi dimostrare, e si spera, un piede nella porta.


5

Se desideri competenze di programmazione su PS3, puoi cercare:

  • conoscenza dell'architettura PPC; questo si può ottenere eseguendo lo sviluppo C / C ++ su un computer PowerPC, sia esso OS X su un vecchio Mac G5 o Linux su qualsiasi computer PowerPC, inclusa la PS3.
  • conoscenza di AltiVec; di nuovo, puoi ottenerlo con un Mac o con Linux su una recente macchina PowerPC, ma la conoscenza di SSE3 potrebbe essere sufficiente.
  • conoscenza della SPU: puoi esercitarti solo su PS3 usando Linux.

Questo non ti insegnerà come programmare il chip video PS3 o come usare gli SDK ufficiali. Sebbene per la programmazione video, le competenze OpenGL e DirectX generiche saranno probabilmente sufficienti, anche con alcune HLSL. Ci sono anche molte informazioni e materiali su Internet, non tutti illegali da ottenere (ad esempio, la versione modificata di GCC di Sony per PS3 è coperta da GPL).

Se desideri competenze di programmazione X360, cercherai:

  • conoscenza dell'architettura PPC: vedi sopra

  • conoscenza di AltiVec: vedi sopra

  • conoscenza di DirectX: questo è possibile esercitarsi su Windows.

  • conoscenza dell'SDK Xbox 360: le somiglianze sono tali che la pratica di XNA sarà di grande aiuto.

Altre abilità importanti probabilmente includono la programmazione multithread (conoscenza generale, ma anche operazioni atomiche, algoritmi senza blocco), portabilità (endianness, dimensioni dei puntatori, funzionalità hardware video, ecc.).

Quindi sì, come hai detto, credo che DirectX sarà l'abilità più gratificante che puoi padroneggiare. Tuttavia, tieni presente che anche la concorrenza andrà in questo modo e alcuni extra potrebbero fare la differenza.

Fonte : ho fatto tutto quanto sopra e mi sono procurato un ottimo lavoro nel settore.


3

Questa domanda (o meglio, le tue aspirazioni) ha bisogno di portata. Oggi nel settore non esiste quasi nulla come un "programmatore di giochi". A meno che tu non stia mirando a cercare uno studio molto piccolo o un programmatore di rendering, DirectX o OpenGl non contano davvero. Le cose che distinguono le console dai PC sono prestazioni limitate, memoria limitata e problemi multicore. Indipendentemente dalla branca della programmazione nel settore a cui aspiri, quelli sono importanti, quindi dimostrano che sei consapevole di come gestire questi, quindi, aiutare. Conosci il tuo C ++. Conosci le insidie ​​del C ++. Sapere come non usare STL. Assicurarsi che il codice sia indipendente dal framerate, multi-thread e utilizzi allocatori di memoria personalizzati. Evidenziarlo, ovviamente. Penso che ciò che è veramente importante sia che la tua demo sia finita. Molti programmatori si fermano quando la meccanica di base funziona, mentre il trascinamento nella programmazione del gioco è il finalling - mostra che sai come farlo.

La maggior parte degli studi vuole sapere qual è la tua abilità, intelligenza artificiale, gameplay, rendering, sistemi, audio, fisica, quant'altro. Prova a capirlo. Essere un generalista, senza esperienza nel settore, sarà una vendita difficile.

In bocca al lupo!


Ottimo punto sulla scelta di un'area su cui concentrarsi.
jcurrie33,

1

DirectX è un'ottima scelta. È la demo più semplice per noi da eseguire poiché abbiamo PC con Windows già molto probabilmente. Se scegli di scegliere l'opzione console, un video è una bella demo. Ma niente è meglio guardando il tuo codice live in esecuzione.

Prova a eseguire il codice su più macchine per assicurarti di consentire schede video diverse ecc. In questi giorni è per lo più automatico, ma possono ancora verificarsi alcune differenze.


0

La conoscenza di qualsiasi API 3D è buona. Non dovrebbe importare se si tratta di DirectX o OpenGL. I concetti 3D sono gli stessi ovunque, solo le API sono diverse. Conoscere OpenGL non ti mette in svantaggio per qualcuno che conosce Direct3D quando gareggia per un lavoro XBOX di livello junior. Ciò che devi dimostrare è la tua capacità di codificare qualcosa e di comprendere il C ++ (o qualsiasi altro linguaggio), le librerie standard, le strutture dati e gli algoritmi. La conoscenza di un motore di gioco come UDK o Unity è un vantaggio. Ciò dimostra la tua capacità di lavorare con il middleware, cosa comune nelle società di giochi. Flash è stato utilizzato nello sviluppo front-end, è anche un'abilità da non trascurare.

La cosa più importante è che devi solo creare una demo (in qualsiasi lingua), renderla valida e vederla fino alla fine. In bocca al lupo!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.