Guide des métiers : Programmeur de jeux vidéo
S'il est vrai que le programmeur se doit d'être familier avec l'algorithmique, c'est avant tout un linguiste informatique
Sans lui, jeux vidéo et applications n'existeraient pas ! Pourtant, le programmeur est l'un des maillons les moins connus de l'industrie du jeu vidéo.
Dans l'imaginaire collectif, le programmeur est un mathématicien qui ne dit pas son nom. S'il est vrai que ce technicien (souvent ingénieur) se doit d'être familier avec l'algorithmique, c'est néanmoins avant tout un linguiste ! Un linguiste informatique, certes, mais un linguiste tout de même ! En effet, le programmeur communique avec les appareils informatiques pour leur "expliquer" quoi faire. Chaque élément affiché à l'écran, chaque son produit par une unité centrale, chaque interaction découle du travail d'un programmeur. Un exploit rendu possible par l'utilisation de différents langages. Il en existe une multitude, dont les plus courants sont SQL, JavaScript, C++ ou encore C#. Une variété qui s'explique notamment par des champs d'applications différents. SQL, par exemple, est un langage utilisé principalement pour communiquer avec des bases de données, tandis que C# (un langage orienté objets) est particulièrement utilisé dans le jeu vidéo.
Programmeur : un principe unique pour des savoirs multiples !
Si le quotidien des programmeurs est assez similaire quel que soit leur domaine d'activité, leur champ de compétences varie en revanche du tout au tout. Par exemple, pour le développement de jeux vidéo, les studios recherchent principalement des profils capables de développer les systèmes d'interaction, de rendus graphiques, de spatialisation ou de modification en temps réel du son… bref, tous les éléments qui donnent à un jeu vidéo une touche d'originalité. C'est notamment pour cette raison que les programmeurs sont de plus en plus spécialisés. Ainsi, il n'est pas rare de découvrir des annonces pour "programmeur gameplay", "programmeur réseau" ou "programmeur spécialiste en intelligence artificielle et script". Les raisons de cette hyperspécialisation sont multiples, mais la principale est le besoin d'optimisation. Pour comprendre ce qu'est l'optimisation, il faut savoir que la capacité de calcul d'un ordinateur est limitée. Plus une tâche va prendre du temps à être exécutée, moins elle en laissera pour les autres. Dans le jeu vidéo, par exemple, le manque d'optimisation est à l'origine des saccades et autres effets désastreux… Un bon programmeur est donc un programmeur qui optimise ses lignes de codes pour que le temps "machine" soit le plus court possible.
Programmeur : la multiplication des supports ? une aubaine !
Avec la multiplication des supports, les programmeurs sont confrontés à une nouvelle problématique : le langage des moteurs graphiques. En effet, depuis quelques années, diverses solutions middleware sont apparues sur le marché et sont censées faciliter le travail des programmeurs. Le principal intérêt de ces outils est de permettre d'adapter rapidement un projet sur différentes machines, a priori incompatibles. C'est notamment le cas de l'Unreal Engine, de Unity ou encore de Lumberyard (le moteur graphique lancé par Amazon). Evidemment, bien qu'ils aient tous une base commune, chaque moteur utilise sa propre syntaxe. Un bon programmeur doit donc connaître un maximum de ces solutions et, dans la mesure du possible, se spécialiser dans les plus populaires. Aujourd'hui, c'est incontestablement Unity et Unreal Engine qui sont les plus demandés, notamment dans le secteur du jeu mobile.
Programmeur
Durée des études : 5 ans
Salaire annuel : entre 30 000 € et 40 000 €
Paroles de professionnel : Aurelyen Daudet
Enseignant à ArtFX depuis sept ans. Il est responsable de la section Technical director, un nouveau cursus orienté vers la programmation (Python, C++...).
La programmation est souvent perçue comme une discipline ardue. Est-ce vraiment le cas ?
Tout dépend de comment on aborde la programmation. Les premiers niveaux d'un jeu sont plus faciles que les derniers. On apprend d'abord à maîtriser son personnage, ses items ou ses pouvoirs. C'est plutôt vers la fin qu'on rencontre le boss et ses lieutenants. La programmation n'a rien de différent en matière d'apprentissage. Cela n'a rien de sorcier. Il y a bien sûr des langages plus exigeants, plus retors que d'autres, mais Python et JavaScript, par exemple, sont d'un abord relativement simple. Ardu ne me semble donc pas être le terme le plus adapté. C'est exigeant bien sûr, cela demande du travail si l'on veut dépasser le stade de la découverte, et il y a des notions qui peuvent être difficiles à comprendre. Mais les domaines artistiques (dessin, sculpture…) sont tout aussi exigeants et ne demandent pas moins d'investissement ! Si l'on a un objectif, un but, et que la programmation est un moyen pour l'atteindre, c'est la motivation qui fera la différence. La programmation ne sera alors pas plus ardue à apprendre qu'une autre discipline, quelle qu'elle soit. Il ne faut en tout cas pas avoir peur de se lancer, se laisser impressionner par des a priori.
Quelles sont, selon vous, les principales qualités d'un programmeur professionnel ?
Il faut de bonnes bases en algorithmique et dans au moins un langage de programmation (C++, Python ou Java par exemple). Il faut être méthodique et rigoureux, être capable de s'adapter à ce qu'on ne connait pas, et avoir de l'intuition pour s'aventurer dans des directions pas ou peu connues. C'est une forme de créativité
Aujourd'hui, il existe de nombreuses solutions middleware comme Unity 3D, Unreal Engine… -Formez-vous vos étudiants à ces plates-formes spécifiques ?
Oui, et nous enseignons Unreal Engine. Ces solutions sont en pleine expansion. Dans l'univers du jeu vidéo, mais également dans la création de contenu en VR. Dans le monde du cinéma, ces outils sont utilisés pour faire de la prévisualisation en temps réel sur les tournages de certains films. Et ce n'est probablement qu'un début.
Y a-t-il un secteur de la programmation qui mériterait d'être plus mis en avant (IA, pathfinding, rendu 3D…) ?
Oui, un secteur de programmation qui se situe entre les infographistes et les développeurs de logiciel : les technical directors. Ils sont à la frontière de deux mondes qui ne se parlent pas suffisamment. Leur tâche est de créer des outils qui s'ajoutent aux fonctionnalités des logiciels de création (Maya, Unreal Engine…). Ces outils peuvent être des plugins ou des scripts utilisés par les infographistes ou les game artists. Ils répondent à des besoins précis et sont développés soit pour un projet en particulier, soit pour enrichir la base d'outils de l'entreprise. Les technical directors doivent donc avoir des compétences dans les deux domaines qu'ils relient.
Comment un futur étudiant peut-il se préparer à apprendre la programmation ?
Se cultiver hors de son domaine de prédilection, ne pas se restreindre trop tôt à une spécialisation ou à un type de métier. Il faut profiter de la période de formation initiale pour apprendre au maximum et pour embrasser un horizon assez large de connaissances. Je regrette un peu aujourd'hui d'avoir négligé certaines matières. Une fois dans le monde professionnel, c'est plus difficile de se remettre dans un processus d'apprentissage. C'est possible, bien sûr, mais le temps devient une denrée rare… Donc, en résumé, profitez de tous les enseignements que votre école ou votre université vous propose !
Guide des métiers et des écoles du numérique
Cette fiche est extraite du hors série "Guide des métiers et des écoles du numérique - 2017" édité par Jeux Vidéo Magazine disponible en kiosque jusqu'au 31 janvier 2017. Ci-contre cliquez pour découvrir des extraits des autres métiers.
Offres d'emploi et de stage de programmeur