Qual è il set di abilità di base che un programmatore di giochi professionista deve avere? [chiuso]


11

Ho una domanda molto generale che mi dà fastidio, ma prima voglio aggiungere alcuni dettagli. Sono un programmatore di core Java. Ho creato indipendentemente alcuni piccoli giochi in Java per divertimento. Ora, più sto esaminando lo sviluppo del gioco professionale, più mi confondo. Questo perché, ogni volta che google su argomenti di sviluppo del gioco o visito forum, ecc., Trovo diversi suggerimenti.

Alcuni diranno che C ++ è buono, mentre alcuni diranno che JAVA potrebbe essere migliore, mentre altri ancora diranno che un altro linguaggio è il tuo ur-language, come Python, Lua, UnrealScript, ecc. Inoltre si suggerisce che si dovrebbe avere conoscenza di sono richiesti motori di gioco come Unreal, Torque, Blender, Panda, ecc. e conoscenza di OpenGL, AI, Collision Detection. Ho persino creato un gioco usando Android SDK.

Quello che voglio chiedere è:

  • Qual è il set di abilità di base che un programmatore di giochi professionista deve avere? C'è 1 linguaggio di programmazione + 1 linguaggio di scripting + 1 conoscenza del motore di gioco + OpenGL? (Phew !!)
  • Se voglio entrare nel settore dei giochi come programmatore di giochi o programmatore AI, allora posso entrare con le mie attuali competenze e il mio portafoglio (come indicato sopra)?
  • L'apprendimento di un linguaggio di programmazione è sufficiente per lo sviluppo di giochi?

Qualsiasi linea guida sarà utile.

Risposte:


6
  1. Dovresti essere competente e competente con almeno un linguaggio di programmazione. In questo modo ti aiuterà a imparare altre lingue più facilmente. Il tipo di lavoro a cui ti stai candidando dipende dalla lingua che probabilmente dovresti conoscere prima. La maggior parte dei titoli tripli A rilasciati su PC e console saranno probabilmente sviluppati in C ++. D'altra parte, le applicazioni e i giochi mobili useranno molto probabilmente Java (Google Android e altri telefoni) o Objective-C (iPhone). Se dai un'occhiata alle offerte di lavoro degli ingegneri del software sui siti Web degli sviluppatori, di solito menzionerà quale esperienza linguistica devi avere. Ad esempio, "Competente e competente in C ++" o "Esperienza con C ++ per almeno due anni". Imparare un linguaggio di scripting non ti farà male. Ti gioverà solo. L'apprendimento è sempre vantaggioso, e non fa mai male. Non è necessario avere una conoscenza pratica di alcun motore di gioco, ma se ti stai candidando a un'azienda che utilizza quel motore specifico, probabilmente ti aiuterà a riprendere. Se sei un esperto del motore di origine, ma ti applichi al software di identificazione e non sai nulla dei motori di identificazione, questo non è davvero super utile (ma l'apprendimento delle cause benefiche è sempre vantaggioso).

  2. Se hai completato i progetti dall'inizio alla fine e dimostri di averlo fatto, penso che ciò contribuirebbe ad aumentare il tuo curriculum. Non sono sicuro di una pletora di demo tecnologiche però. Molte persone sembrano fare dimostrazioni tecnologiche e non hanno completato nessuno o pochi progetti di gioco. Il programmatore di gioco tende ad essere un jr. posizione di livello, quindi sì, a seconda del tuo curriculum dovresti essere in grado di trovare un lavoro da qualche parte.

  3. Penso che conoscere una lingua ed essere in grado di usarla con competenza e competenza sia meglio che conoscere 5 lingue e sapere a malapena come usarle.

Disclaimer: non ho mai lavorato nell'industria, queste sono solo le mie opinioni che sono state formate dopo aver letto diversi thread e articoli sui lavori di programmazione di giochi, basati su quelli che pensavo fossero gli articoli / opinioni più sensibili che ho letto.


7
Vorrei aumentare il punto 1 con "conoscenza di un linguaggio di programmazione che utilizza i puntatori ". I puntatori sono un requisito fondamentale per comprendere cosa sta succedendo con una lingua che non avere mai esperienza con loro può essere un enorme svantaggio quando si va in una lingua che ne ha bisogno. Il C ++ è estremamente diffuso per i giochi non web, quindi potresti anche iniziare da lì.
Tetrad,

@ShrimpCrackers Sai che puoi creare veri e propri "Punti elenco " usando l'editor, giusto? ;)
Ben

Dovresti mostrare di conoscere almeno un linguaggio di programmazione che non è ampiamente usato nell'industria ma ha alcune peculiarità interessanti: questo comunica che impari a causa dell'interesse sull'opportunità, che sei un poliglotta che capisce filosofie / approcci diversi e puoi (si spera ) unisci il meglio di entrambi i mondi.
FxIII,

2

Più cerco questo argomento e parlo con sviluppatori di giochi professionali, più penso che dipenda da alcune cose. Senza un ordine particolare:

  • Capacità di lavorare bene insieme in un'atmosfera di squadra. Costruire giochi richiede una quantità straordinaria di persone, solo leggere i crediti in alcuni dei giochi AAA al giorno d'oggi richiede più di 10 minuti, se non riesci a lavorare bene con le persone e il tuo obiettivo è quello di lavorare con altre persone per creare un gioco fantastico, allora io temo che questo non sia il settore giusto. Questa è una di quelle soft skills che di solito si sviluppa nel tempo lavorando a progetti con altre persone.
  • Trova quello che ti piace fare. Questo è un po 'aperto ma scopri cosa ti piace dello sviluppo del gioco e quali abilità hai bisogno per raggiungere questo obiettivo. So che questa è la risposta che stai cercando, ma potrei scuotere tutte le competenze di cui potresti aver bisogno per essere uno sviluppatore di motori, uno di grafica o uno di gameplay, ma puoi trovare molte di queste informazioni abbastanza facilmente online. Le tue abilità dovranno essere strettamente legate a ciò che ti interessa. Es .: Non preoccuparti di conoscere gli ingressi e le uscite di OpenGL e DirectX se sei veramente interessato allo sviluppo lato server e viceversa.
  • Sii competente in una lingua di basso livello Con quanto detto sopra, sono d'accordo con gli altri poster che una lingua di basso livello è una buona idea da imparare. So che quando sono passato da C # a C ++ ho imparato molto su come funziona la magia di C #, questa è la conoscenza che ti dà una buona comprensione di come comunicare efficacemente con un computer indipendentemente dal linguaggio.
  • Comprendi l'architettura del computer - Con questo non intendo dire che devi avere una laurea in CE o EE per capire veramente ogni parte di un'architettura di computer, ma conoscere le basi di come funzionano memoria, CPU e GPU. A prescindere dall'area di sviluppo del gioco in cui andrai, sarà utile avere almeno una comprensione di come funzionano. Se vuoi passare alla programmazione grafica o alla programmazione del motore, dovrai capire ancora di più in questo spazio.

5
ti senti davvero vecchio quando la gente chiama C ++ un linguaggio di basso livello
dreta,

@dreta Non sono così vecchio e non lo vedo nemmeno come un linguaggio di basso livello. Probabilmente ha a che fare con C ++ come primo linguaggio che ho usato.
Paul Manta,

2

Molto dipende dai tuoi obiettivi di carriera. Se tutto ciò che vuoi è "un lavoro di creazione di giochi" prima di fare i necessari 5,5 anni e bruciarti e andartene, allora immagino che guardi solo le opportunità di lavoro entry-level e cerchi quello che vogliono, impararlo e fare domanda. Semplice. (Ma poi, se la tua domanda si riduce davvero a "qual è lo sforzo minimo che devo fare per ottenere un lavoro?", Allora la risposta è "se fai lo sforzo minimo, otterrai il lavoro minimo! ")

Ma a lungo termine, non credo si tratti tanto di conoscere un certo numero di lingue o di impararne una specifica. Le lingue cambiano: dieci anni fa nessuno utilizzava Objective-C o XNA o C # o AS3, e tra dieci anni è certo che qualsiasi lingua che impari oggi sarà obsoleta comunque.

Quindi una cosa a prova di futuro è non solo "imparare una lingua" ma imparare come imparare nuove lingue. Una volta acquisita la competenza in circa 3 lingue, scoprirai che prenderne una nuova non è poi così male. La maggior parte dei componenti principali è la stessa, comunque: ogni lingua ha variabili, array, loop, condizionali e così via, quindi si tratta solo di imparare la sintassi.

L'altra metà di questo è comprendere i concetti chiave della programmazione e dell'informatica. Comprendere la gestione della memoria, i puntatori, la ricorsione e così via. Se capisci i concetti, puoi applicarli praticamente in qualsiasi lingua.

Se vuoi renderti più commerciabile, allora impara una specialità di programmazione relativa ai giochi, qualunque cosa ti interessi ... AI, database, reti, strumenti, qualunque cosa.


1

C'è un'altra abilità molto importante necessaria che sembra essere un po 'trascurata. Devi sapere come adattarti e lavorare con un team di persone, passando da altri sviluppatori di giochi, a designer e project manager e cose del genere. Non è un'abilità tecnica, ma è ancora molto importante, in quanto potresti essere il miglior sviluppatore della casa e se non riesci ad andare d'accordo con le persone, creare giochi di grandi dimensioni sarà un problema!

Inoltre, poiché ShrimpCrackers che conosce bene una lingua è meglio che conoscere all'incirca 5 lingue, e capire cosa succede sotto il cofano di quella lingua in cui stai imparando è ancora meglio, come per i giochi, devi sapere come ottenere le migliori prestazioni fuori dalla lingua.

Ultimo ma non meno importante, conoscendo un po 'l'hardware, in particolare la GPU non farà male!


0

Per la programmazione di giochi sociali ci sono le principali abilità che sono le uniche necessarie.

  1. Program action script (puoi usare un ambiente elipse e uno svn), questo è usato per il front-end del gioco (la pagina web)

  2. Programma java (che può essere fatto anche su eclipse e usa svn), questo viene usato per le azioni sul lato server da intraprendere dalle richieste della pagina web.

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.