Engine Programmer

Programmeur Moteur
Famille de métiers : Technology · Code ROME 4.0 :
i Si vous exercez une fonction de lead, consultez la fiche métier « Lead » pour les activités et compétences associées à ce rôle.
Mission
L’engine programmer est en charge du développement bas niveau des systèmes fondamentaux du moteur (rendu, I/O, physique, audio, threading, etc.). Il améliore les performances globales, identifie et corrige les goulets d’étranglement, tout en assurant la compatibilité multiplateforme. Il collabore étroitement avec les autres programmeurs, les technical artists et les outils de production. Il met en œuvre des outils de profiling, des benchmarks, et assure la maintenance technique du moteur tout au long du cycle de développement.

Activités

A000 Agir en professionnel·le du jeu vidéo
Travailler de manière rigoureuse, autonome et collaborative au sein d’une équipe pluridisciplinaire, en communiquant efficacement, en français et en anglais, en respectant les délais, les standards qualité et les processus de production. Faire preuve d’adaptabilité, de curiosité, d’organisation, et contribuer à une dynamique collective par l’usage d’outils partagés, une posture professionnelle et une veille continue sur les pratiques du secteur.
Compétences : CTR013,CTR015,CTR011,CTR006,CTR007,CTR014,CTR012,CTR001,CTR010,CTR009,CTR008,CTR005,CTR004,CTR003,CTR002
A126 Analyse des besoins moteur
Identifier les besoins techniques du moteur en lien avec les équipes de développement (production, gameplay, art, design, audio…). Cette activité permet de cadrer les objectifs fonctionnels, de hiérarchiser les priorités techniques et d’anticiper les contraintes projet. Elle aboutit à un cahier des charges technique, une évaluation des délais et du planning, une fiche de besoins fonctionnels et une synthèse des retours utilisateurs internes.
Compétences : CTE006,CTE072,CTE061,CTE070,CTR001,CTR005,CTR008,CTR010,CTR011
A127 Conception de l’architecture logicielle du moteur
Concevoir une structure logicielle cohérente et évolutive pour le moteur ou une de ses briques (audio, système, rendering, animation, physique, online...). Cette activité implique de définir les modules, les flux de données, les dépendances et les principes d’organisation du code. Elle donne lieu à un schéma d’architecture, une documentation de conception et une étude des solutions existantes (middleware, open source, développement interne).
Compétences : CTE006,CTE030,CTE032,CTE033,CTE068,CTE069,CTE070,CTE071,CTE072,CTR006,CTR009,CTR010
A128 Développement des briques moteur
Programmer ou intégrer les composants fondamentaux du moteur (système, rendu, physique, audio, animation, online, etc.). L’activité inclut l’écriture du code, les tests unitaires, l’intégration dans le moteur global et la gestion des APIs. Elle se traduit par des modules, du code source documenté et une documentation technique associée.
Compétences : CTE006,CTE030,CTE031,CTE032,CTE033,CTE052,CTE061,CTE066,CTE067,CTE068,CTE069,CTE070,CTE071,CTE072,CTR004,CTR009
A129 Portage sur plateformes cibles
Adapter le moteur aux spécificités des plateformes matérielles et logicielles visées (consoles, PC, mobile, cloud). Cette activité comprend l’implémentation des interfaces système, l’optimisation des performances spécifiques et la validation des exigences des constructeurs. Elle modifie la toolchain de builds pour gérer de nouvelles plateformes et apporte des correctifs adaptés à chaque environnement.
Compétences : CTE031,CTE033,CTE052,CTE061,CTE066,CTE069,CTE070,CTE072,CTR009
A130 Maintenance et évolutions du moteur
Assurer la stabilité du moteur sur le long terme en corrigeant les bugs, en améliorant les performances et en ajoutant de nouvelles fonctionnalités. Eventuellement, assurer une logique de versioning continu et produire des changelogs (mission du lead engine programmer). Produire des patchs correctifs, des dépôts mis à jour et une documentation reflétant les évolutions.
Compétences : CTE031,CTE032,CTE033,CTE052,CTE066,CTE067,CTE068,CTE069,CTE072
A131 Optimisation des performances Engine et debugging
Analyser en profondeur les performances du moteur par plateforme pour détecter les goulets d’étranglement (CPU, GPU, I/O, mémoire) et les anomalies techniques, en s’appuyant sur des outils de profiling et de débogage. L’activité inclut l’identification des causes racines des problèmes, la comparaison des résultats avant/après intervention, et la mise en œuvre d’optimisations structurelles et ciblées. Elle produit des logs de profiling, des rapports de bugs, des benchmarks de performance et des rapports techniques documentant les améliorations apportées.
Compétences : CTE030,CTE031,CTE032,CTE033,CTE052,CTE061,CTE066,CTE068,CTE069,CTE070,CTE072,CTR009
A132 Mise en place de tests automatisés
Développer et maintenir des systèmes de tests techniques visant à sécuriser l’intégrité des modules critiques du moteur. Elle comprend la conception et l’analyse de tests unitaires, de tests de non-régression et leur intégration dans un pipeline d’intégration continue. En fonction de la taille de l’équipe, les livrables peuvent être des suites de tests automatisés, des rapports de couverture, et des scripts intégrés à la CI/CD. L’engine programmer peut participer à l’écriture de l’analyse du résultat de tests unitaires.
Compétences : CTE031,CTE032,CTE052,CTE061,CTE067,CTR009,CTR010
A133 Documentation technique Engine
Rédiger une documentation claire et exploitable sur le fonctionnement, l’intégration et l’utilisation des briques du moteur. Former les utilisateurs internes (game programmers, artists, designers…) à leur bon usage. Cette activité produit des manuels d’utilisation, des documents techniques de référence (notamment pour le crédit impôt recherche) et des supports de formation.
Compétences : CTE030,CTE061,CTE072,CTR005,CTR009,CTR010,CTR011,CTR014
A134 Coordination inter-équipes
Collaborer étroitement avec les équipes connexes (production, tools, gameplay, utilisateurs, QA…) pour identifier les attentes, planifier les évolutions du moteur et synchroniser les développements. Elle donne lieu à des roadmaps techniques, des comptes-rendus de réunions multi-équipe, des tickets de suivi partagés et un backlog priorisé.
Compétences : CTE006,CTE061,CTR001,CTR008,CTR011,CTR014
A135 Veille technologique ciblée engine
Mener une exploration continue des nouvelles technologies, méthodes, outils ou plateformes pertinentes pour l’évolution du moteur. Cela inclut la comparaison de solutions, la participation à des communautés techniques et la formulation de propositions d’innovation. Les livrables incluent des notes de veille, des présentations internes et des recommandations stratégiques.
Compétences : CTE006,CTE030,CTE031,CTE032,CTE033,CTE052,CTE061,CTE066,CTE067,CTE068,CTE069,CTE070,CTE071,CTE072,CTR005,CTR013

Compétences techniques

CTE006 Connaissance des moteurs de jeux

Comprendre et mobiliser les moteurs de jeu afin de participer à la conception, à la configuration et à l’itération d’expériences interactives. Identifier les spécificités et usages des principaux moteurs (Unity, Unreal, Godot, moteurs internes), intégrer et organiser les assets (graphismes, sons, animations), et mettre en place des fonctionnalités clés telles que la physique, l’interface, l’IA ou les interactions. Appréhender les contraintes techniques, de production et de plateforme, et contribuer à l’optimisation des performances et à la qualité globale de l’expérience de jeu dans un cadre de projet multi-métiers.

CTE030 Mathématiques 3D et Physique appliquées au jeu vidéo

Utiliser les mathématiques pour la 3D (géométrie, modélisation) et les concepts de simulation physique, essentiels pour implémenter les mouvements, shaders, effets audio et interactions dans l'espace.

CTE031 Langages informatiques bas et moyen niveau

Utiliser des langages compilés ou fortement typés, utilisés pour le développement moteur, gameplay ou systèmes de jeu, en appliquant les principes de programmation structurée et orientée objet, la gestion de la mémoire et l’optimisation des performances (C, C++,) - Programmer en utilisant des langages informatiques (par exemple Rust, C, C++…) qui offrent un contrôle fin sur l’utilisation de la mémoire et l’optimisation des performances ou qui permettent de développer le cœur des moteurs de jeux, des systèmes critiques ou des ensembles nécessitant beaucoup de ressources.

CTE032 Conception et modélisation orientée objet

Concevoir et modéliser des systèmes logiciels en structurant fonctionnalités, données et interactions sous forme d’objets et de classes, en utilisant UML et les design patterns, afin de garantir une architecture claire, modulaire et évolutive selon les principes de la programmation orientée objet

CTE033 Optimisation

Analyser et optimiser les performances logicielles en utilisant des outils de profilage, de traçage et de débogage (ex. points d’arrêt, étapes de reproduction, captures de frame). Identifier les goulots d’étranglement dans le code et les systèmes, et proposer des solutions techniques adaptées. Choisir et exploiter les outils pertinents selon la plateforme et le moteur (WPA, PIX, RenderDoc, Razor CPU…). Évaluer, budgétiser et contrôler l’usage mémoire, processeur et GPU afin de garantir la fluidité, la stabilité et l’efficacité des programmes sur les supports cibles.

CTE052 Langages de scripting et outils

Développer des scripts et graphes nodaux à l’aide de langages interprétés (Python, Lua, GDScript, MEL, MaxScript, C#…) ou de systèmes visuels (Blueprint, Niagara, VEX, Houdini, etc.) afin d’automatiser les workflows, créer des outils internes et étendre les capacités des moteurs ou logiciels de production. Exploiter ces scripts pour piloter la logique de gameplay, interfacer des paramètres complexes (VFX, assets, interactions), prototyper des mécaniques interactives et optimiser les pipelines d’intégration et de production.

CTE061 Workflow, pipelines et formats de données

Comprendre, structurer et optimiser les workflows de production entre les différents outils du pipeline (DCC, moteurs de jeu, middleware, outils internes) afin d’assurer la cohérence, la traçabilité et la performance des échanges de données. Maîtriser les formats de données (géométrie, textures, animations, shaders, audio, métadonnées) et les process d’intégration (export, import, conversion, automatisation) pour garantir la compatibilité, la qualité et la continuité du flux de production entre les équipes artistiques, techniques et design.

CTE066 Outils et techniques de debugging

Identifier, reproduire et corriger les anomalies de fonctionnement ou d’affichage à l’aide d’outils de débogage tels que Visual Studio Debugger, Unreal Log, Rider Debug, GDB ou LLDB, en mobilisant des techniques de diagnostic comme les breakpoints, watch variables, asserts. Analyser les logs, traces et crash dumps issus d’outils tels que Crashlytics, BugSplat ou Backtrace pour localiser la source du problème, valider la correction et prévenir les régressions futures par des tests ciblés et automatisés.

CTE067 Sécurité système du code

Identifier, prévenir et corriger les vulnérabilités liées au développement bas niveau (fuites mémoire, buffer overflows, race conditions, accès concurrents non protégés), en appliquant des bonnes pratiques de sécurité, des outils d’analyse statique et des techniques de programmation défensive adaptées.

CTE068 Data oriented programming

Concevoir des architectures logicielles performantes en mobilisant des approches orientées données (Data-Oriented Programming, Entity Component System) ou des patterns non orientés objet (table-driven design, CPS, etc.), en vue d’optimiser l’organisation du code, la gestion mémoire et l’exécution parallèle dans des environnements bas niveau.

CTE069 Multithreading

Concevoir et implémenter des systèmes logiciels exploitant le multithreading ou la programmation concurrente, en structurant efficacement les tâches parallèles, en synchronisant les accès aux ressources partagées et en garantissant la stabilité, la performance et l’absence de race conditions. Mobiliser des techniques adaptées telles que les files de messages, verrous, tâches asynchrones, ou architectures lock-free, selon les contraintes.

CTE070 Architecture matériel - Hardware

Comprendre et exploiter les caractéristiques techniques des plateformes cibles (consoles, PC, mobile, cloud, etc.) – processeurs, GPU, mémoire, architecture I/O – afin d’optimiser le comportement du moteur, adapter les systèmes bas niveau et assurer la compatibilité, la performance et la stabilité sur chaque environnement matériel.

CTE071 Sécurité Gameplay et Réseau

Déployer des stratégies de cybersécurité adaptées aux jeux vidéo pour prévenir et détecter les comportements malveillants (cheating, hacking, injection mémoire, modification client). Implémenter des vérifications serveur, des techniques de détection comportementale, et utiliser des solutions spécialisées anti-triche en cohérence avec le gameplay et les contraintes techniques du moteur ou du réseau.

CTE072 Expertise technique Moteurs de jeu

Analyser la structure, les capacités et les limites des moteurs de jeu existants (internes ou commerciaux) afin d’orienter des choix technologiques éclairés en fonction des contraintes du projet. Comparer les moteurs selon leurs caractéristiques techniques, leur adaptabilité, leur support communautaire, leurs performances, leur évolutivité et leur compatibilité avec les objectifs créatifs, économiques et organisationnels. Identifier les points forts et les faiblesses d’un moteur, formuler des recommandations, et participer aux décisions d’intégration, de migration ou de développement sur mesure.

CTE083 Traduction vers langage machine IA

Exprimer les instructions dans un format interprétable par l'IA, sélectionner et structurer la documentation afin qu'elle soit facilement parcourable par le système, découper les tâches en unités réalisables par l'IA et synthétiser les productions générées, en vue d'obtenir des résultats exploitables et intégrables au pipeline de développement du studio.


Compétences transversalles

CTR001 Travailler en équipe

CTR002 Outils bureautique et production

CTR003 Coordination avec les partenaires externes

CTR004 Organisation de son travail

CTR005 Recherche et Amélioration continue

CTR006 Environnement

CTR007 Santé (physique et psychique) au travail

CTR008 Adaptabilité -Réactivité

CTR009 Rigueur

CTR010 Conceptualisation

CTR011 Communication

CTR012 Compréhension du Management

CTR013 Ecosystème du jeu vidéo - Economie - Culture - Production

CTR014 Anglais du jeu vidéo

CTR015 Accessibilité


Avancements métier