Cosa cercano i potenziali datori di lavoro in un buon portafoglio?


21

Un compagno di lavoro e io stessi vogliamo entrare nella scena indipendente per lo sviluppo del gioco. Ho fatto alcune dimostrazioni tecniche che dimostrano idee e approcci diversi per vari problemi. Ora, sento che è tempo per noi di impegnarci in un progetto al fine di sviluppare un portafoglio per il futuro.

Ho avuto grosse difficoltà con il modo in cui iniziare un progetto reale, in particolare per creare un motore o utilizzare un pacchetto OTS, oppure usarne uno, crearne uno, oppure crearne uno, quindi usarne uno ... ecc.

Quale aspetto migliore per i potenziali datori di lavoro? Un portafoglio di giochi più piccolo che include il tuo motore o uno (forse) più grande che è stato creato usando qualcosa di OTS?

Sono un programmatore. Non sono un artista. Eseguirò la maggior parte della programmazione per questo progetto. Anche il mio amico è uno sviluppatore, ma è anche abile con gli strumenti grafici (quindi diventa il ragazzo dell'arte).

Al lavoro, siamo entrambi sviluppatori .NET (C #). Lo so, lo so "Bene, allora usa XNA", alcuni mi urleranno. Le demo che ho completato finora sono state in XNA. Ma ho qualche preoccupazione con la creazione di un portafoglio XNA. Anche se è bello astrarre DirectX, temo che potrei non creare la base di conoscenza necessaria per estenderla facilmente oltre XNA. Il contrario di tale argomento è probabilmente "puoi passare più facilmente a DirectX dopo XNA", ma dal momento che sposterò le carriere dallo sviluppo del business allo sviluppo del gioco, vale la pena concentrarsi attualmente su XNA? O i potenziali datori di lavoro ridaccheranno quando dico XNA?

Dovrei abbracciare l'esperienza di XNA sapendo che i concetti e le lezioni appresi verranno trasferiti principalmente? O trascorrere la mia risorsa più preziosa (tempo) altrove dove?

In cerca di consigli da qualsiasi veterinario del settore.


Chiediti cosa vuoi dimostrare di più: flessibilità o attenzione ai dettagli. Questa è la tua risposta Personalmente vado per la flessibilità.
Chris Burt-Brown,

Risposte:


44

Sono stato un programmatore nel settore dei giochi per console per quasi quattordici anni e sono stato spesso coinvolto nelle decisioni di assunzione.

Quindi parlando come uno di quei potenziali datori di lavoro, quando valuto un possibile dipendente ci sono tre cose che cerco in un nuovo assunzione e le cerco in questo ordine.

  1. Questa persona si inserirà nella mia squadra? (sociale, igiene, ecc.)
  2. Questa persona è uno studente veloce? (spesso erroneamente definito come "questa persona è intelligente?")
  3. Questa persona ha qualche esperienza rilevante che mi aiuterà?

Ora, rispondendo alla tua domanda. L'intera questione "che tipo di progetto dovrei fare" sta affrontando di gran lunga il meno importante dei criteri a cui tengo. Mi interessa molto di più se ti inserirai socialmente nel mio team e quanto sarai in grado di apprendere rapidamente nuove cose, piuttosto che se tu abbia usato XNA o il tuo motore di gioco in qualche progetto precedente. In generale, suppongo che dovrò addestrarti nel nostro motore di gioco interno, e quindi i tuoi progetti precedenti non contano davvero per me. Ovviamente, a meno che non ti capiti magicamente di avere esperienza con un particolare strumento o tecnologia di cui ho bisogno di qualcuno da conoscere. Ma questo è insolito; di solito, suppongo che dovrò addestrarti per usare la nostra API.

Tutto questo non vuol dire che non voglio che tu abbia fatto progetti a casa. Lo faccio assolutamente. Ma non mi interessa davvero cosa siano quei progetti o quali tecnologie abbiano usato, perché probabilmente non saranno rilevanti per quello che ho bisogno che tu faccia per me, dato che utilizzeremo librerie o API diverse.

Ma voglio che tu mi parli dei tuoi progetti. Voglio vedere quanto sei entusiasta quando ne parli, perché mi dice che tipo di persona sei (vedi il punto 1 sopra). Voglio sapere dei problemi che hai riscontrato e di come li hai superati nello sviluppo del tuo progetto (vedi punto 2 sopra). Voglio assolutamente che tu abbia completato almeno un progetto - essere in grado di superare il dolore e effettivamente completare qualcosa dice molto sul tipo di persona che sei e mi dice che sei qualcuno che potrò fare affidamento su se ("quando") le cose si fanno difficili.

Quindi onestamente, nessuna delle due opzioni è "migliore"; l'importante è completare qualcosa, qualsiasi cosa. Qualsiasi tecnologia che impari lungo la strada è la ciliegina sulla torta, ma quasi sicuramente non è ciò che mi farebbe assumere.

(Ma con tutto quello che ha detto .. Io vi aspetto che tu sia abile in C ++. In un modo o nell'altro, si ha realmente bisogno di imparare C ++, al fine di farsi assumere nel settore dei giochi tradizionali. I vostri progetti a casa non hanno necessariamente bisogno di essere in C ++, ma mi aspetto che tu sia in grado di dimostrare fluidità in esso.)


3
Questa è una risposta fantastica Grazie mille per aver effettivamente cambiato la mia prospettiva sul processo di assunzione.
ultifinito

Essere in grado di utilizzare software di terze parti è sempre un grande vantaggio, ma potrebbe andare sotto "impara rapidamente".
Valmond,

Non credo sia probabile che incontrerai mai un programmatore che non sa come lavorare con software di terze parti. Tutti stanno già scrivendo su un'API di terzi documentata, sia libc o STL o OpenGL o DirectX o l'API di Windows o altro. Sono le stesse competenze nel settore commerciale, spesso utilizzate librerie meno conosciute. :)
Trevor Powell,

2
+1 I pezzi del portfolio non devono seguire standard rigorosi. Il punto è che servono quasi come pezzi di conversazione per un'intervista, in modo che siano interessanti dal punto di vista di un programmatore.
ChrisC,

1
@ShuvoSarker Per le grandi aziende, questo è ancora vero. EA non si aspetterà che tu sia un esperto nel loro motore Frostbite quando stanno pensando di assumerti. Ubisoft non si aspetta che tu conosca Snowdrop. Questo è forse cambiato per le aziende più piccole, tuttavia, nei sei anni da quando ho pubblicato questa risposta. Unity è diventata una forza abbastanza grande nello spazio dei piccoli studi che è molto realistico pensare che conoscere Unity possa certamente aiutare le tue possibilità in un modo che non era il caso in cui tutti usavano i propri motori proprietari.
Trevor Powell,

12

Una cosa che gli altri non hanno ancora menzionato è che è importante completare i tuoi progetti.

Avere un portafoglio con un mucchio di cose non finite non è impressionante come un portafoglio con una cosa finita e ben rifinita.

Inoltre, se si basa il proprio lavoro su quello esistente di qualcun altro (come un motore open source o risorse artistiche liberamente disponibili), assicurarsi di indicare nel proprio portfolio quale parte è propria.


1
Non sono sicuro al 100% che sono d'accordo, abbiamo molte persone con cose non finite, è molto comune e non ha molta correlazione con la qualità delle loro cose. Finire qualcosa dimostra dedizione, non capacità.
Chris Burt-Brown,

A ciascuno il suo, suppongo.
Jari Komppa,

4

Mi sembra che la risposta dipenda dal tipo di programmazione di gioco che vuoi fare.

Se il tuo obiettivo è quello di essere un programmatore di motori o un programmatore grafico , trarrai vantaggio dall'andare sotto il cofano e imparare come funzionano i motori. Questo non significa che non è possibile utilizzare XNA o un altro motore, framework, ecc. Standardizzati. Acquisire familiarità con le viscere di un motore di alta qualità è un ottimo modo per imparare a costruire un motore di alta qualità! Se si va su questa strada, non lo fai necessariamente nemmeno bisogno di scrivere tutti i giochi attuali. Un portafoglio di demo grafiche indipendenti e / o estensioni non banali a un motore esistente (ad esempio l'implementazione di un nuovo shader in un motore o simili) ti farà bene. Puoi dare un'occhiata al mio portafoglio di demo grafiche qui; Sono ormai pochi anni obsoleti, ma questo è fondamentalmente ciò che mi ha procurato un lavoro di programmazione grafica in uno studio di gioco.

D'altra parte, se preferisci essere un programmatore di gameplay , una delle persone che lavorano sulla meccanica di gioco, sui controlli, sull'intelligenza artificiale nemica, ecc., Il tuo tempo non sarà speso bene a scavare in Direct3D. Naturalmente è utile avere una comprensione generale e di alto livello di come funziona la grafica, ma in un contesto professionale probabilmente non entrerai in contatto diretto con elementi grafici di basso livello molto spesso. In questo caso, consiglierei assolutamente di utilizzare un motore standard per permetterti di passare il tempo a costruire giochi reali.

Quindi, per riassumere, se vuoi fare un gameplay usa semplicemente un motore esistente; se vuoi fare motore / grafica, costruisci le tue cose e / o estendi un motore esistente.


Apprezzo la tua risposta Mi dà un migliore senso dell'orientamento. Mi vedo più come programmatore di motori. Per il tempo trascorso (in base alla tua esperienza), pensi che sia meglio saltare l'astrazione e tuffarti in D3D?
Justin Self

1
D3D sarebbe un ottimo punto di partenza. In seguito, potresti anche provare alcuni motori open source per avere un'idea di come altri hanno fatto la struttura e l'organizzazione su larga scala. È anche buona norma saltare in una base di codice ampia e non familiare e provare a capirla senza leggere ogni riga di codice.
Nathan Reed,

Ok, la tua risposta combinata con quella di Trevor mi ha dato davvero quello di cui avevo bisogno. Peccato non posso scegliere due risposte; quindi +1. Grazie Nathan. Lo apprezzo molto.
Justin Self

2

quando stavo appena finendo uni il mio portfolio è stato descritto in questo articolo. sembra una buona idea su cosa fare e cosa non fare quando si mette insieme il proprio portafoglio

http://leewinder.co.uk/blog/?p=23


1

Non fare il tuo portafoglio in base a come percepisci lo "standard". Dovresti lavorare su progetti che ti interessano . Se ti piacciono le meccaniche di gioco, vai avanti e crea un sacco di giochi. Se ti piace creare un'intelligenza artificiale interessante, potresti fare una demo per una configurazione simile a RTS. Ad esempio, ho un crescente interesse per la programmazione grafica e dedico più tempo all'apprendimento dei concetti di rendering e alla loro applicazione nel mio motore. (Di conseguenza, il mio progetto di gioco è stato temporaneamente messo sullo scaffale.)

Quando lavori principalmente su cose che ti piacciono, mette davvero in evidenza il "tu" nel portafoglio. D'altra parte, avere almeno un gioco completato dimostra che puoi passare attraverso le parti "poco interessanti" della creazione di un gioco. È bene avere un certo grado di flessibilità per penetrare in un territorio meno familiare, ma non forzarti ampiamente in esso. Puoi dire buoni portafogli dal livello di entusiasmo e interesse messo nel lavoro, e i progetti basati sulle tue aree di interesse saranno naturalmente i più raffinati. Quindi, qualunque sia la tua area di interesse, alla fine dovrai concentrarti su quell'area di programmazione per un lavoro.

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.