Quelles sont les compétences de base qu'un programmeur de jeux professionnel doit posséder? [fermé]

11

J'ai une question très générale qui me dérange mais je veux d'abord ajouter quelques détails. Je suis un programmeur Java de base. J'ai créé indépendamment de petits jeux en Java pour le plaisir. Maintenant, plus je m'intéresse au développement de jeux professionnels, plus je m'embrouille. En effet, chaque fois que je Google sur certains sujets de développement de jeux ou que je visite des forums, etc., je rencontre différentes suggestions.

Certains diront que C ++ est bon, tandis que certains diront que JAVA peut être meilleur, tandis que d'autres diront qu'un autre langage est le langage ur, comme Python, Lua, UnrealScript, etc. Il est également suggéré que l'on devrait avoir des connaissances les moteurs de jeux comme Unreal, Torque, Blender, Panda, etc. et la connaissance d'OpenGL, AI, Détection de collision sont requis. J'ai même créé un jeu en utilisant le SDK Android.

Ce que je veux demander, c'est:

  • Quelles sont les compétences de base qu'un programmeur de jeux professionnel doit posséder? Est-ce 1 langage de programmation + 1 langage de script + 1 connaissance du moteur de jeu + OpenGL? (Phew!!)
  • Si je veux entrer dans l'industrie du jeu en tant que programmeur de gameplay ou programmeur d'intelligence artificielle, puis-je y entrer avec mes compétences et mon portefeuille actuels (comme indiqué ci-dessus)?
  • Apprendre un langage de programmation suffit-il pour le développement de jeux?

Toute directive sera utile.

GamDroid
la source

Réponses:

6
  1. Vous devez être compétent et compétent avec au moins un langage de programmation. Cela vous aidera à choisir d'autres langues plus facilement. Le type d'emploi auquel vous postulez dépend de la langue que vous devriez probablement connaître à l'avance. La plupart des titres triple A publiés sur PC et console seront très probablement développés en C ++. Les applications mobiles et les jeux, quant à eux, utiliseront très probablement Java (Google Android et autres téléphones) ou Objective-C (iPhone). Si vous jetez un coup d'œil aux listes d'emplois pour les ingénieurs logiciels sur les sites Web des développeurs, cela mentionnera généralement l'expérience linguistique dont vous avez besoin. Par exemple, «Compétent et compétent en C ++» ou «Expérience avec C ++ pendant au moins deux ans». Apprendre un langage de script ne vous fera pas de mal. Cela ne fera que vous profiter. L'apprentissage profite toujours, Vous n'avez pas besoin d'avoir une connaissance pratique d'un moteur de jeu, mais si vous postulez auprès d'une entreprise qui utilise ce moteur spécifique, cela vous aidera probablement à reprendre. Si vous êtes un expert du moteur source, mais que vous postulez pour un logiciel d'identification et que vous ne savez rien des moteurs id tech, ce n'est pas vraiment super utile (mais l'apprentissage de la cause bénéfique est toujours bénéfique).

  2. Si vous avez terminé des projets du début à la fin et que vous montrez que vous l'avez fait, je pense que cela aiderait à relancer votre CV. Je ne suis pas sûr d'une pléthore de démos technologiques. Beaucoup de gens semblent faire des démos technologiques et ils n'ont pas ou peu de projets de jeux terminés. Le programmeur de gameplay a tendance à être un jr. position de niveau, donc oui, en fonction de votre CV, vous devriez être en mesure de trouver un emploi quelque part.

  3. Je pense qu'il est préférable de connaître une langue et de pouvoir l'utiliser avec compétence et compétence que de connaître 5 langues et de savoir à peine comment les utiliser.

Avertissement: Je n'ai jamais travaillé dans l'industrie, ce ne sont que mes opinions qui ont été formées après avoir lu plusieurs fils et articles sur les emplois de programmation de jeux, en fonction de ce que je pensais être les articles / opinions les plus sensés que j'ai lus.

Crevettes
la source
7
J'augmenterais le point 1 avec «la connaissance d'un langage de programmation qui utilise des pointeurs ». Les pointeurs sont une exigence tellement fondamentale pour comprendre ce qui se passe avec une langue que ne jamais avoir d'expérience avec eux peut être un énorme désavantage quand on va dans une langue qui en a besoin. C ++ est extrêmement répandu pour les jeux non Web, vous pouvez donc aussi bien commencer par là.
Tetrad
@ShrimpCrackers Vous savez que vous pouvez créer de véritables "Bullet Points" en utilisant l'éditeur, non? ;)
Ben
Vous devez montrer à connaître au moins un langage de programmation qui n'est pas largement utilisé dans l'industrie mais qui a une particularité intéressante: cela communique que vous apprenez en raison de l'intérêt pour l'opportunité, que vous êtes un polyglotte qui comprend différentes philosophies / approches et vous pouvez (espérons-le ) fusionner le meilleur des deux mondes.
FxIII
2

Plus je recherche ce sujet et parle avec des développeurs de jeux professionnels, plus je pense que cela se résume vraiment à quelques choses. Dans aucun ordre particulier:

  • Capacité à bien travailler ensemble dans une ambiance d'équipe. Construire des jeux prend une quantité extraordinaire de personnes, lire les crédits dans certains des jeux AAA prend de nos jours plus de 10 minutes, si vous ne pouvez pas bien travailler avec les gens et que votre objectif est de travailler avec d'autres personnes pour faire un grand jeu, alors je craignez que ce ne soit pas la bonne industrie. C'est l'une de ces compétences générales qui sont généralement développées au fil du temps en travaillant sur des projets avec d'autres personnes.
  • Trouvez ce que vous aimez faire. C'est un peu ouvert mais découvrez ce que vous aimez dans le développement de jeux et quelles sont les compétences dont vous avez besoin pour y parvenir. Je sais que c'est en quelque sorte la réponse que vous recherchez, mais je pourrais acquérir toutes les compétences dont vous pourriez avoir besoin pour être développeur de moteur, développeur graphique ou développeur de gameplay, mais vous pouvez trouver beaucoup de ces informations assez facilement en ligne. Vos compétences devront être étroitement liées à ce qui vous intéresse. Ex: ne vous inquiétez pas de connaître les entrées et sorties d'OpenGL et de DirectX si vous êtes vraiment intéressé par le développement côté serveur et vice versa.
  • Être compétent dans une langue de bas niveau Cela étant dit, je suis d'accord avec les autres affiches qu'une langue de bas niveau est une bonne idée d'apprendre. Je sais que lorsque je suis passé du C # au C ++, j'ai beaucoup appris sur le fonctionnement de la magie du C #, ce sont des connaissances qui vous permettent de bien comprendre comment communiquer efficacement avec un ordinateur quel que soit le langage.
  • Comprendre l'architecture informatique - Par cela, je ne veux pas dire que vous devez avoir un diplôme en CE ou EE pour vraiment comprendre toutes les parties d'une architecture informatique, mais connaître les bases du fonctionnement de la mémoire, du CPU et du GPU. Quel que soit le domaine de développement du jeu dans lequel vous allez, il sera bénéfique d'avoir au moins une compréhension de leur fonctionnement. Si vous souhaitez vous lancer dans la programmation graphique ou la programmation du moteur, vous devrez comprendre encore plus dans cet espace.
Kyle C
la source
5
vous vous sentez vraiment vieux quand les gens appellent C ++ un langage de bas niveau
dreta
@dreta Je ne suis pas si vieux et je ne le vois pas non plus comme un langage de bas niveau. Cela a probablement à voir avec C ++ étant le premier langage que j'ai utilisé.
Paul Manta
2

Cela dépend beaucoup de vos objectifs de carrière. Si tout ce que vous voulez, c'est "un travail de création de jeux" avant de faire les 5,5 années requises et de vous épuiser et de partir, alors je suppose que vous regardez simplement les offres d'emploi de niveau d'entrée et cherchez ce qu'ils veulent, apprenez-le et postulez. Facile. (Mais alors, si votre question se résume vraiment à "quel est l'effort minimum que je dois mettre pour obtenir un emploi?", Alors la réponse est "si vous mettez l'effort minimum, vous obtiendrez le travail minimum!" ")

Mais à long terme, je ne pense pas qu'il s'agisse tellement de connaître un certain nombre de langues ou d'en apprendre une spécifique. Les langages changent - il y a dix ans, personne n'utilisait Objective-C ou XNA ou C # ou AS3, et dans dix ans, soyez assuré que tout langage que vous apprenez aujourd'hui sera obsolète d'ici là de toute façon.

Donc, une chose pour vous assurer l'avenir est non seulement «d'apprendre une langue», mais d'apprendre COMMENT apprendre de nouvelles langues. Une fois que vous êtes devenu compétent en 3 langues environ, vous constaterez que le choix d'une nouvelle n'est pas si mal. La plupart des composants de base sont les mêmes, de toute façon - chaque langue a des variables, des tableaux, des boucles, des conditions, etc., il s'agit donc simplement d'apprendre la syntaxe.

L'autre moitié consiste à comprendre les concepts fondamentaux de la programmation et de l'informatique. Comprendre la gestion de la mémoire, les pointeurs, la récursivité, etc. Si vous comprenez les concepts, vous pouvez les appliquer dans presque toutes les langues.

Si vous voulez vous rendre plus commercialisable, alors apprenez une spécialité de programmation pertinente aux jeux, tout ce qui vous intéresse ... AI, bases de données, réseaux, outils, peu importe.

Ian Schreiber
la source
1

Il existe une autre compétence très importante qui semble être un peu négligée. Vous devez savoir comment vous intégrer et travailler avec une équipe de personnes, allant des autres développeurs de jeux aux concepteurs et chefs de projet et autres. Ce n'est pas une compétence technique, mais c'est toujours très important, car vous pourriez être le meilleur développeur de la maison et si vous ne pouvez pas vous entendre avec les gens, faire de grands jeux va être un problème!

De plus, comme ShrimpCrackers maîtrise bien une langue, c'est mieux que de connaître approximativement 5 langues, et comprendre ce qui se passe sous le capot de cette langue dans laquelle vous êtes bon est encore mieux, comme pour les jeux, vous devez savoir comment obtenir les meilleures performances hors de la langue.

Enfin, sachant un peu de matériel, le GPU en particulier ne fera pas de mal!

dotminic
la source
0

Pour la programmation de jeux sociaux, les compétences principales sont les seules nécessaires.

  1. Script d'action du programme (vous pouvez utiliser un environnement elipse et un svn), il est utilisé pour la partie frontale du jeu (la page Web)

  2. Programme java (qui peut aussi se faire sur eclipse an use svn), il est utilisé pour les actions côté serveur à effectuer à partir des requêtes de la page web.

mariana soffer
la source