Dans le développement de jeux AAA, les ingénieurs utiliseront principalement le C++
Mais les concepteurs de jeux utiliseront principalement des crayons, des tableaux blancs et un peu de « jurons » (un langage spécialement conçu pour faciliter la compréhension de l’équipe)
Une partie de l’équipe de conception de jeux pourrait utiliser un langage informatique pour spécifier ce qui se passe quand. Dans des jeux comme GTA5 – ce type de codage est parfois appelé script. Ce n’est pas de la programmation hardcore. C’est écrire des scripts pour des événements. Cette case déclenche cet événement. Cette chose arrive s’il meurt, ou si elle tombe par le toit.
Le script se fait parfois dans un langage préexistant. Parfois, c’est un système interne.
- Lua est couramment utilisé pour les scripts.
Si vous ne faites pas de jeux AAA – et envisagez de développer un mobile, regardez.
- C++ (pour Android et iOS)
- Java (pour Android)
- C# (pour les applications Unity sur de nombreuses plates-formes)
- Objective-C ou Swift (pour iOS)
Et regardez apprendre les différentes API qui peuvent accélérer le développement du jeu
- OpenGL ES (API graphique pour toutes les plateformes)
- Unity (une solution de moteur de jeu pour les jeux 3D et 2D)
- Cocoa (pour toutes les applications iOS)
- Cocos2D (une API 2D)
Donc, ce que vous apprenez dépend de l’endroit où vous voulez aller.
La plupart des ingénieurs de jeu très expérimentés que j’ai rencontrés connaissent les systèmes informatiques de manière soupe aux noix. Ce sont des architectes qui savent comment chaque clou et chaque brique sont assemblés. (Et où les clous sont fabriqués)
Ils sont également à l’aise dans un assembleur de bas niveau. Les langages C et orientés objet de la vieille école, et peuvent écrire du code shader avec la même facilité.
Les ingénieurs les plus chevronnés sont chargés de réduire les performances miraculeuses du matériel apparemment lent ou restreint. Ils peuvent le faire parce qu’ils savent intuitivement ce qui fonctionnera, ce qui sera lent et ce qui rasera dix images par seconde d’une boucle de rendu.
Cette compétence d’optimisation vient de la compréhension réelle de la façon dont les processeurs et les processeurs graphiques sont implémentés dans le matériel. Où se trouvent les goulots d’étranglement et les problèmes de bande passante. Ce genre de compréhension a peu à voir avec les langues.
Si vous voulez apprendre ce métier….
Écrivez quelque chose de trivial dans l’assembleur pour voir comment cela devient des opcodes. Et shunts les choses de la mémoire principale dans les registres du PROCESSEUR.
Écrivez quelque chose en C – et voyez comment ce langage est traduit en assembleur. Voyez comment certaines données sont conservées sur la pile, certaines sur le tas, d’autres dans les registres.
Écrivez quelque chose en C++ et voyez comment cela se transforme en code.
Écrivez quelque chose en X direct ou en GL ouvert qui nécessite des shaders de sommets et de fragments.
En d’autres termes, revivez les 30 dernières années de développement informatique. Et vous avez peut-être une idée de comment tout cela fonctionne.
Si vous pouvez comprendre comment tout cela s’intègre, vous pourriez développer les sens de l’araignée nécessaires pour être un excellent ingénieur de jeu.
Mais si vous détestez tout cela. Et je veux juste que les sprites se déplacent à l’écran et fassent sourire les gens, alors vous devriez probablement ignorer mes conseils. Et utilisez l’API que vous pouvez pour vous faciliter la vie – et les pixels dansent à votre rythme.