Quali sono i compiti quotidiani tipici di un programmatore di giochi entry level? [chiuso]


64

Quello che vorrei sapere è: quali sono i doveri quotidiani di un programmatore laureato nel mondo del lavoro nell'industria dei giochi? Si tratta principalmente di codifica, analisi, progettazione o cosa?

Grazie.

PS Sono al mio secondo anno di università al momento e sto lavorando per specializzarmi nella programmazione di giochi, in particolare gameplay, strumenti o programmazione dell'interfaccia utente.

Risposte:


103

Sulla base della mia esperienza (negli Stati Uniti, assunto dal college per un progetto che era appena uscito dalla prototipazione ed era una squadra di circa 50 persone, è stato quindi cancellato, quindi abbiamo continuato a fare altre due partite nel corso dei quattro anni era lì con una base di sviluppatori totale di circa 200),

  • Probabilmente trascorrerai circa il 50-70% del tuo tempo nella programmazione. In questo momento, includo le "cose ​​divertenti" come arrivare a realizzare una funzionalità davvero intelligente, così come le volte in cui stai fissando un dump della memoria per 8 ore di fila cercando di capire cosa è andato in crash. Forse il 25-50% di questo è una vera e propria programmazione di lunga durata sit-down-at-your-keyboard-and-in-the-zone.
  • Un altro 15-25% in riunioni e attività amministrative, come il triage di bug, le riunioni di triage di bug, la programmazione, la documentazione di alto livello per altri programmatori e produttori, e-mail, aggiornamenti dello stato dell'intero progetto / società e così via. Questo dipende da quanta autonomia hai - se non hai autonomia, allora passerai più tempo a programmare, perché passerai meno tempo a impostare il tuo programma. Se prendi un maggiore controllo del tuo programma, potresti arrivare a lavorare su cose più interessanti, ma allora devi passare del tempo a fare queste cose.
  • Un altro 15-25% aiuta i designer / artisti, a partecipare a incontri creativi sul gioco, a tenersi aggiornati con i documenti di progettazione del gioco e così via.

Man mano che salite nel grado di remunerazione, il tempo che trascorrerete nella programmazione probabilmente diminuirà . Dovrai prendere più decisioni amministrative, essere chiamato ad aiutare le persone meno esperte nel team e dedicare più tempo alla documentazione e alla revisione del codice / architettura. Tra i lati positivi, la qualità della programmazione probabilmente aumenterà; potrai lavorare su funzionalità più interessanti (e bug più frustranti).

Se il tempo che passi nell'aiutare i designer e gli artisti salga, scenda o non cambi davvero, dipende dall'area in cui vuoi lavorare. Se vuoi lavorare su UI, strumenti e gameplay, aspettati che quel tempo aumenti verso l'alto del 50% man mano che acquisisci più esperienza. Ti siederai con i progettisti senior per pianificare e provare nuovi strumenti e vedere come usano quelli esistenti. Sfortunatamente, questa volta esce anche dal tuo programma di programmazione.


Non proprio come me lo ricordo, ma aiuta quando il tuo compagno di allenamento ti insegna davvero le cose ;-)
coderanger

@coderanger: non credo che nessuno dei due abbia ricevuto molto aiuto dal nostro partner di formazione. ;)

26

Oltre ai punti di discussione di alto livello sollevati da Joe, ci sono alcune altre cose di cui dovresti essere consapevole.

  • In genere utilizzerai una sorta di tracciamento dei bug o uno strumento di tracciamento delle attività che il tuo lead utilizzerà per assegnarti le attività. A volte sono uguali (cioè FogBugz). A volte la tua lista dei bug sarà attraverso un editore e la tua lista delle attività è su un wiki interno. Non ti siedi e inizi a fare qualunque cosa , i tuoi compiti saranno diretti.
  • A volte ti verrà chiesto di stimare i tuoi compiti. Ciò è implicito quando si utilizzano sistemi come FogBugz. Parte delle tue responsabilità sarà / dovrebbe / può essere quella di scomporre una funzionalità di livello superiore in parti che puoi utilizzare per stimare correttamente il tempo necessario per vedere come sei sulla buona strada per raggiungere traguardi, ecc.
  • Molti studi si sono spostati verso metodologie di stile più agili / scrumm. L'aggiornamento dei grafici di burn down (vale a dire dire che hai trascorso X ore sull'attività Y e ti aspetti di essere fatto in tempo Z) è abbastanza comune. Le riunioni quotidiane di standup sono probabilmente un po 'più comuni. Ad ogni modo, fornirai visibilità su ciò su cui stai lavorando.
  • Utilizzerai il controllo versione / sorgente. Più grande è lo studio, più è probabile che utilizzino Perforce. Dovresti essere consapevole delle basi di esso (estrarre i file, eseguire il commit dei file, essere in grado di risolvere i conflitti di unione locale). Potresti anche essere chiamato a comprendere la ramificazione e l'unione dei rami. Alcuni studi lavorano dove tutti gli sviluppatori ottengono la loro filiale locale e puoi fare il check-in quanto vuoi e unirti quando la tua filiale. Altri studi (i nostri) hanno solo una politica di "non interrompere il principale", quindi devi assicurarti di aggiornare, fare un rapido test per assicurarti di non aver rotto nulla, quindi fare il check-in. Alcuni studi non hanno quella politica e le persone rompono sempre la merda ed è super fastidioso e devi imparare a aggirare il problema.
  • Le revisioni del codice sono abbastanza comuni. A volte sono in tutto il dipartimento del codice. Il nostro team utilizza un approccio basato sul codice in cui è più uno-a-uno per le recensioni sui check-in. In entrambi i casi dovresti aspettarti che ti venga chiesto di fornire un'analisi critica del codice di altre persone.

11

Ho appena finito uno stage di 4 mesi lavorando a un gioco molto grande. Il progetto era molto tardi quando sono arrivato lì, quindi la maggior parte di ciò che ho fatto è stato la correzione di bug. Probabilmente sarebbe stata comunque una buona parte del mio tempo ... usando la mia esperienza con la programmazione per correggere bug invece della mia inesperienza con lo sviluppo di giochi per progettare o sviluppare funzionalità.

Molto di ciò che ho fatto è stato anche legato all'IT. Lo sviluppo di strumenti interni è stata una grande cosa: alcuni per aiutare direttamente con gli sviluppatori di giochi, altri per automatizzare le cose che prima venivano fatte manualmente. E, naturalmente, correzioni di bug per altri strumenti, incluso il programma di installazione di Microsoft Games for Windows Live.

Il playtest era un'altra parte abbastanza grande, ed ero anche responsabile di fare alcune delle build che venivano spinte ai playtest. I bug nel mondo di gioco sono piuttosto difficili da rintracciare e richiedono molto lavoro per capire la causa.

Non ero specializzato in giochi o grafica, quindi presumibilmente qualsiasi lavoro che facevi sarebbe stato più legato alla tua esperienza di così. Ma spero che ti dia un'idea.


4

Il mio progetto dell'ultimo anno è sull'elemento canvas HTML5. Attualmente sto lavorando a uno stage negli ultimi due mesi in cui devo portare un gioco flash esistente su tela HMTL5.

Da quello che posso dirti della mia vita qui, beh, è ​​dura. Il team dei requisiti ha esigenze molto specifiche. Quale clic del mouse dovrebbe fare cosa, come devono essere applicati gli effetti sul gioco. Non importa quanto sia difficile per il programmatore anche per la richiesta più sciocca, deve essere affrontato e dopo che tutti i requisiti sono stati implementati. Inizia la segnalazione dei bug. Dio è così fastidioso. Inizia davvero a innervosirti. Un offset di 1px per un clic può rendere la tua vita un inferno, fidati di me! Può significare una nuova strutturazione dell'intero spazio di posizionamento e interazione per quello che potresti soddisfare ai loro capricci e fantasie.

Ma è anche divertente! :) La pura gioia di scrivere quell'unica funzione davvero intelligente, interagendo con la community di come è possibile ricreare una funzione che Flash esegue automaticamente. Tutto. È come se non ti pentissi di avere quel lavoro .. Lo fa sembrare il miglior lavoro del mondo, e per i miei nipoti il ​​più bello del mondo.

Quindi un giorno regolare nel mio lavoro verrebbe a lavorare per implementare una funzione. Ricerca e ricerca di quella funzione che rende possibile una funzione. Ottenere l'inferno testato da quel codice. Risolvere quel codice. Discutere con la comunità su come ottimizzare quel codice. Quindi scrivere quello che sento è il miglior programma sulla terra: P

Alla fine della giornata, per lo più sono soddisfatto di ciò che ho realizzato, a volte ancora teso su dove avrei potuto fare meglio e cosa avrei potuto fare diversamente e perfezionarlo. Sono solo nella fase principiante e quindi potrei non essere in grado di consigliarti su come sarà in futuro, ma per ora .. Penso di dover fare un lavoro fantastico :)

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.