Les différents postes de programmeur - École de jeux vidéo en ligne Gamecodeur

Hello everybody,

peut-être que certain-es d’entre vous ont décidés de poursuivre leur aventure dans le monde du GameDev de manière professionnelle dans les années à venir. Autant on retrouve souvent le cas du développeur seul qui remplit tous les rôles, autant dans une grosse entreprise on a plutôt tendance à bien séparer les tâches face à la complexité du projet. J’ai pu remarquer que les différents profils de développeur recherché n’était pas forcément connu par les jeunes développeurs, voici donc une liste (non exhaustive) des différents métiers de programmeurs au sein d’un grand studio de développement.

Pour la liste suivante, je me suis inspiré des différentes offres d'emplois trouvable sur le site de l'AFJV.
Vu que les termes anglais sont très utilisés même dans notre pays, j'ai tendance à les préférer aux termes français.

Gameplay Programmer

Rôle : Implémente le gameplay du jeu. C’est lui qui s’occupe d’ajouter les interactions avec le joueur et les différentes mécaniques de jeu. C’est en général à ce développeur que l’on pense lorsque l’on parle de programmeur de jeu.

Techno : C++ (+ Lua) / C# (avec ou sans moteur du style Unity/Unreal)

Skill : Programmeur polyvalent, il peut changer de moteur rapidement et a (de préférence) des connaissances en Game Design.

Engine Programmer

Rôle : Développe le moteur du jeu. Cela peut être un moteur fait à la main par l’entreprise ou un moteur connu comme Unity/Unreal dont le code source aurait été acquis par la société.

Techno : C/C++

Skill : Programmeur EXTRÊMEMENT polyvalent, avec des connaissances allant du Hardware des consoles de jeux jusqu’à de la conception logicielle très poussée, ce poste est souvent vu comme le plus complexe et c’est rare de voir des débutants l’occuper.

Graphics Programmer

Rôle : Spécialiste de la programmation GPU, il s’occupe de la création de shaders et du rendu visuel offert par le moteur développé par les Engine Programmer.

Techno : C++ (avec OpenGL/Direct3D et GLSL/HLSL)

Skill : Parfaite connaissance des GPU et des différentes API graphiques. Sait créer des shaders complexes. Excellent niveau en mathématiques.

Audio Programmer

Rôle : S’occupe de toutes les fonctionnalitées lié au son au sein du moteur développé par les Engine Programmer (comme la spacialisation du son au sein d’une scène 3D).

Techno : C++ (avec OpenAL ou équivalent)

Skill : Connaissance pointue en manipulation du son et en physique acoustique.

Network Programmer

Rôle : Responsable des fonctionnalités Online d’un jeu. Il intervient sur la partie réseau (client /serveur) des jeux multijoueurs ou possédant des fonctionnalités en ligne.

Techno : C++ / Linux / TCP-UDP

Skill : Connaissance approfondie en réseaux informatique et des différents protocoles qui vont avec. Souvent expert Linux.

AI Programmer

Rôle : Programmeur spécialisé en création d’intelligence artificielle.

Techno : C++ (+ Lua)

Skill : Expert dans divers domaines des mathématiques (Théorie des graphes, probas, réseaux neuronaux, …) et en optimisation algorithmique.

Tools Programmer

Rôle : Développe des outils pour les différents membres de la team. (Plugin Maya pour les Game Artist, Gestionnaire de dialogues pour les scénaristes, etc…)

Techno : C++ (Qt) / C# (WPF) / Python / Lua

Skill : Bonnes compétences en ingénierie logicielle de manière générale. Des compétences en UI/UX sont un plus.

Automation & Build Engineer

Rôle : Fait en sorte que les tests et les builds du jeu se passent sans problèmes.

Techno : C++ / C# / Python / Shell / Linux / DevOps (Docker, Consule, Selenium, Jenkins, etc…)

Skill : Comprend parfaitement comment automatiser les tâches redondantes et comment désigner un système de build performant.


 

Et il y en a encore d’autres qui peuvent apparaître au fur et à mesure des besoins selon les studios.

Personnellement, à l’époque où je désirais rejoindre le monde du jeu vidéo, j’étais plutôt orienté Tools/Automation/Build Engineer, car ma partie préférée reste quand même la possibilité de créer des outils pour aider les autres à produire quelque chose d’encore plus énorme. De plus, j’ai toujours trouvés l’ingénierie logicielle “classique” plutôt sympa.

Et vous ? Vers quoi vous orientez-vous ?

 

Comments (6)

Merci Pour l’article 🙂
A vu de nez, quels sont les métiers de programmeur qui recrutent le plus en ce moment ? En particulier pour les débutants…

alchemist

Gameplay Programmer est clairement la porte d’entrée pour un débutant (pour la majorité des profils).

Si tu sors d’une formation Licence/Master/Ingénieur en Informatique, tu peux également t’orienter vers le poste de Tools Programmer.

Après ça change selon les studios et les pays, difficile de sortir une information absolue. ^^”

🔴 David Gamecodeur

D’après les études SNJV et iDate, les profils qui manquent le plus sont ceux “éloignés” du gameplay : database, tool, network.

alchemist

En effet, mais ces postes sont en général orientés pour des personnes ayant déjà un peu d’expérience, c’est pour ça que je ne les ai pas cités dans ma réponse plus haut. C’est un peu le même problème que dans les autres domaines du développement logiciel, on manque de personnes qualifiés et bien que la demande soit importante, le niveau des candidats est souvent trop faible par rapport aux offres, donc on ne recrute pas. 😐

Laisser un commentaire