Que recherchent les employeurs potentiels dans un bon portefeuille?

21

Un copain du travail et moi-même voulons entrer dans la scène indépendante pour le développement de jeux. J'ai fait quelques démos technologiques démontrant différentes idées et approches pour divers problèmes. Maintenant, je pense qu'il est temps pour nous de nous engager dans un projet afin de développer un portefeuille pour plus tard.

J'ai eu beaucoup de mal à démarrer un projet réel, plus spécifiquement pour créer un moteur ou utiliser un package OTS, ou en utiliser un puis en créer un, ou en créer un puis en utiliser un ... etc.

Lequel convient mieux aux employeurs potentiels? Un portefeuille de jeux plus petit qui inclut votre moteur ou un (éventuellement) plus grand qui a été construit en utilisant quelque chose d'OTS?

Je suis un programmeur. Je ne suis pas artiste. J'exécuterai la majeure partie de la programmation de ce projet. Mon copain est également développeur, mais il maîtrise également les outils graphiques (il devient donc le gars de l'art).

Au travail, nous sommes tous deux développeurs .NET (C #). Je sais, je sais "Bien alors utilise XNA" certains me crieront dessus. Les démos que j'ai terminées jusqu'à présent l'ont été dans XNA. Mais j'ai quelques soucis avec la construction d'un portefeuille XNA. Bien qu'il soit agréable d'abstraire DirectX, je crains de ne pas pouvoir construire la base de connaissances nécessaire pour s'étendre au-delà de XNA facilement. Le contre-argument à cet argument est probablement "vous pouvez plus facilement passer à DirectX après XNA", mais comme je vais déplacer les carrières du développement commercial au développement de jeux, cela vaut-il même la peine de se concentrer sur XNA actuellement? Ou les employeurs potentiels vont-ils rire quand je dis XNA?

Dois-je embrasser l'expérience de XNA sachant que les concepts et les leçons apprises seront principalement transférés? Ou passer ma ressource la plus précieuse (temps) ailleurs où?

Vous cherchez des conseils auprès de n'importe quel vétérinaire de l'industrie.

Justin Self
la source
Demandez-vous ce que vous voulez démontrer davantage: flexibilité ou souci du détail. Voilà votre réponse. Personnellement, je préfère la flexibilité.
Chris Burt-Brown

Réponses:

44

Je suis programmeur dans l'industrie des jeux sur console depuis près de quatorze ans et j'ai souvent été impliqué dans les décisions d'embauche.

Par conséquent, en tant que l'un de ces employeurs potentiels, lors de l'évaluation d'un employé potentiel, il y a trois choses que je recherche dans une nouvelle embauche, et je les recherche dans cet ordre.

  1. Cette personne s'intégrera-t-elle dans mon équipe? (social, hygiène, etc.)
  2. Cette personne apprend-elle rapidement? (souvent mal formulé comme "cette personne est-elle intelligente?")
  3. Cette personne a-t-elle une expérience pertinente qui m'aidera?

Maintenant, répondez à votre question. Cette question de "quel type de projet dois-je faire" aborde de loin le moins important des critères qui me tiennent à cœur. Je me soucie beaucoup plus de savoir si vous vous intégrerez socialement dans mon équipe et de la façon dont vous pourrez apprendre de nouvelles choses rapidement, que de savoir si vous avez utilisé XNA ou votre propre moteur de jeu dans un projet précédent. Dans l'ensemble, je suppose que je vais devoir vous former à notre propre moteur de jeu interne, et donc vos projets antérieurs ne comptent pas vraiment pour moi. C'est, bien sûr, à moins que vous ne possédiez par magie une expérience avec un outil ou une technologie particulière que j'ai besoin que quelqu'un connaisse. Mais c'est inhabituel; généralement, je suppose que je vais devoir vous former pour utiliser notre API.

Tout cela ne veut pas dire que je ne veux pas que vous ayez fait des projets à domicile. Je le fais absolument. Mais je ne me soucie pas vraiment de ce que sont ces projets, ni des technologies qu'ils ont utilisées, car ils ne seront probablement pas pertinents pour ce que j'ai besoin que vous fassiez pour moi, car nous utiliserons différentes bibliothèques ou API.

Mais je veux que vous me parliez de vos projets. Je veux voir à quel point vous êtes enthousiaste lorsque vous en parlez, car cela me dit quel genre de personne vous êtes (voir le point 1 ci-dessus). Je veux connaître les problèmes que vous avez rencontrés et comment vous les avez surmontés lors du développement de votre projet (voir point 2 ci-dessus). Je veux absolument que vous ayez terminé au moins un projet - être capable de surmonter la douleur et de terminer quelque chose en dit long sur le genre de personne que vous êtes, et me dit que vous êtes quelqu'un que je pourrai compter sur si ("quand") les choses deviennent difficiles.

Honnêtement, aucune des deux options n'est "meilleure"; l'important est de terminer quelque chose, n'importe quoi. Toute technologie que vous apprenez en cours de route est la cerise sur le gâteau, mais ce n'est certainement pas ce qui me ferait embaucher.

(Mais avec tout ce que dit .. Je vais vous attendre à être compétent en C ++. D' une façon ou une autre, vous avez vraiment besoin d'apprendre C ++ afin de se faire embaucher dans l'industrie des jeux traditionnels. Vos projets à la maison ne sont pas nécessairement besoin d'être en C ++, mais je m'attends à ce que vous puissiez en faire preuve couramment.)

Trevor Powell
la source
3
Ceci est une réponse fantastique. Merci beaucoup d'avoir réellement changé mon point de vue sur le processus d'embauche.
ultifinitus
Être en mesure d'utiliser des logiciels tiers est toujours un gros avantage, mais cela pourrait passer sous «apprend rapidement».
Valmond
Je ne pense pas qu'il soit probable que vous rencontriez un programmeur qui ne sait pas comment travailler avec des logiciels tiers. Tout le monde écrit déjà dans une API tierce documentée, que ce soit libc ou STL ou OpenGL ou DirectX ou l'API Windows ou autre. Ce sont les mêmes compétences dans l'industrie commerciale, mais souvent des bibliothèques moins connues sont utilisées. :)
Trevor Powell
2
+1 Les éléments du portefeuille n'ont pas besoin de suivre des normes rigoureuses. Leur but est de servir presque de pièces de conversation pour une interview, afin qu'elles soient intéressantes du point de vue d'un programmeur.
ChrisC
1
@ShuvoSarker Pour les grandes entreprises, cela est toujours vrai. EA ne s'attendra pas à ce que vous soyez un expert de leur moteur Frostbite lorsqu'ils envisagent de vous embaucher. Ubisoft ne s'attend pas à ce que vous connaissiez Snowdrop. Cela a peut-être changé pour les petites entreprises, cependant, au cours des six années écoulées depuis la publication de cette réponse. Unity est devenu une force suffisamment grande dans l'espace des petits studios qu'il est très réaliste de penser que connaître Unity pourrait certainement vous aider d'une manière qui n'était pas le cas lorsque tout le monde utilisait ses propres moteurs propriétaires.
Trevor Powell
12

Une chose que d'autres n'ont pas encore mentionnée est qu'il est important de terminer vos projets.

Avoir un portefeuille avec un tas de choses inachevées n'est pas aussi impressionnant qu'un portefeuille avec une chose finie et bien polie.

De plus, si vous basez votre travail sur le travail existant de quelqu'un d'autre (comme un moteur open source ou des actifs artistiques disponibles gratuitement), assurez-vous de mentionner sur votre portefeuille quelle partie est la vôtre.

Jari Komppa
la source
1
Je ne suis pas sûr à 100%, nous recevons beaucoup de gens avec des trucs inachevés, c'est très courant, et cela n'a pas beaucoup de corrélation avec la qualité de leurs trucs. Finir quelque chose démontre du dévouement et non des capacités.
Chris Burt-Brown
À chacun, je suppose.
Jari Komppa
4

Il me semble que la réponse dépend du type de programmation de jeu que vous souhaitez faire.

Si votre objectif est d'être un codeur moteur ou un codeur graphique , vous auriez avantage à passer sous le capot et à apprendre comment fonctionnent les moteurs. Cela ne signifie pas que vous ne pouvez pas utiliser XNA ou un autre moteur, framework, etc. standard. Se familiariser avec les entrailles d'un moteur de haute qualité est un excellent moyen d'apprendre à construire un moteur de haute qualité! Si vous suivez cette voie, vous n'avez même pas nécessairement besoin d'écrire de jeux réels. Un portefeuille de démos graphiques autonomes et / ou d'extensions non triviales à un moteur existant (par exemple, l'implémentation d'un nouveau shader dans un moteur ou similaire) vous fera du bien. Vous pouvez jeter un œil à mon portfolio de démos graphiques ici; c'est maintenant dépassé de quelques années, mais c'est essentiellement ce qui m'a valu un travail de programmation graphique dans un studio de jeux.

D'un autre côté, si vous préférez être un codeur de gameplay , l'une des personnes qui travaillent sur les mécanismes de jeu, les contrôles, l'IA ennemie, etc., votre temps ne sera pas bien dépensé pour creuser dans Direct3D. Bien sûr, il est utile d'avoir une compréhension générale et de haut niveau du fonctionnement des graphiques, mais dans un contexte professionnel, vous n'entrerez probablement pas en contact direct avec des éléments graphiques de bas niveau très souvent. Dans ce cas, je recommanderais absolument d'utiliser un moteur standard pour que vous puissiez passer votre temps à créer des jeux réels.

Donc, pour résumer, si vous voulez jouer, utilisez simplement un moteur existant; si vous voulez faire du moteur / des graphiques, alors créez vos propres trucs et / ou étendez un moteur existant

Nathan Reed
la source
J'apprécie votre réponse. Cela me donne un meilleur sens de l'orientation. Je me vois davantage comme un programmeur de moteurs. Pour le temps passé (basé sur votre expérience), pensez-vous qu'il est préférable de sauter l'abstraction et de plonger dans D3D?
Justin Self
1
Le D3D serait un excellent point de départ. Plus tard, vous voudrez peut-être également consulter certains moteurs open-source pour avoir une idée de la façon dont d'autres ont fait la structure et l'organisation à grande échelle. Il est également recommandé de sauter dans une grande base de code inconnue et d'essayer de la comprendre sans lire chaque ligne de code.
Nathan Reed
Ok, ta réponse combinée avec Trevor m'a vraiment donné ce dont j'ai besoin. Dommage que je ne puisse pas choisir deux réponses; donc +1. Merci, Nathan. J'apprécie vraiment cela.
Justin Self
2

quand je finissais à peine mon portfolio, mon portfolio était présenté dans cet article. cela semble être une bonne idée de ce qu'il faut faire et de ce qu'il ne faut pas faire lors de la constitution de votre portefeuille

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

Stowelly
la source
1

Ne faites pas votre portfolio en fonction de la façon dont vous percevez le «standard». Vous devez travailler sur des projets qui vous intéressent . Si vous aimez la mécanique de jeu, allez-y et faites un tas de jeux. Si vous aimez créer une IA intéressante, faites peut-être une démo pour une configuration de type RTS. Par exemple, je m'intéresse de plus en plus à la programmation graphique et je consacre plus de temps à l'apprentissage des concepts de rendu et à leur application dans mon moteur. (Par conséquent, mon projet de jeu a été temporairement mis sur l'étagère.)

Lorsque vous travaillez principalement sur des choses que vous aimez, cela fait vraiment ressortir le «vous» dans le portefeuille. D'un autre côté, avoir au moins un jeu terminé montre que vous pouvez parcourir les parties "inintéressantes" de la création d'un jeu. Il est bon d'avoir une certaine flexibilité pour pénétrer dans un territoire moins familier, mais ne vous y forcez pas beaucoup. Vous pouvez distinguer les bons portefeuilles du niveau d'enthousiasme et d'intérêt mis dans le travail, et les projets basés sur vos domaines d'intérêt seront naturellement les plus raffinés. Donc, quel que soit votre domaine d'intérêt, vous devrez éventuellement vous concentrer sur ce domaine de programmation pour un emploi.

ChrisC
la source