Le programmeur outils se juge sur l'éditeur, les assets et le build

Le tools programmer écrit les logiciels dont la production se sert toute la journée : extensions d'éditeur, importeurs, vérifications d'assets, scripts de build. Un outil lent ou fragile fait perdre du temps à des dizaines de personnes, chaque jour.

Recevoir la fiche complète

Mis à jour le Par l'équipe Delectus5 min de lecture

La fiche Programmeur outils jeu vidéo : technologies, chaîne du poste, une question et la grille d'évaluation

Un programmeur outils, ou tools programmer, développe les extensions de l'éditeur du moteur, les importeurs et exporteurs entre les logiciels 3D et le jeu, les vérifications automatiques d'assets, et souvent une partie de l'automatisation du build. Il code en C++ dans Unreal, en C# dans Unity ou dans des applications .NET, et en Python pour Maya, Houdini, Blender ou l'éditeur Unreal. Vos questions d'entretien pour un tools programmer doivent couvrir le code et l'usage : un outil robuste que les artistes acceptent d'utiliser.

Les candidatures se répartissent souvent en deux profils. D'un côté, des développeurs logiciels solides qui n'ont jamais vu de pipeline d'assets : ils doivent apprendre les formats 3D, Perforce et ses gros fichiers binaires, et les contraintes d'un éditeur de moteur. De l'autre, des technical artists qui écrivent des scripts utiles mais fragiles : ils doivent montrer qu'ils savent structurer du code, le tester et le maintenir au-delà d'un projet.

Demandez à voir un outil réel, en capture ou en démonstration, et faites préciser ce qui a changé après les premiers retours des utilisateurs. Un cas de 20 minutes, dans le PDF, porte sur un import de personnages qui casse chaque semaine.

Les langages, moteurs et logiciels d'un tools programmer

Extensions de l'éditeur Unreal

Unreal se personnalise par des modules éditeur en C++, avec des interfaces écrites en Slate, et par des Editor Utility Widgets en Blueprint pour les outils plus simples. Les commandlets lancent des traitements sans interface, par exemple dans la CI. Vérifiez que la personne sépare bien le code de l'éditeur du code qui part dans le jeu.

Python dans les éditeurs et les logiciels 3D

L'éditeur Unreal embarque Python 3 (module unreal) pour automatiser l'import, les LOD ou le placement dans les niveaux, uniquement dans l'éditeur et jamais dans le jeu livré. Maya, Houdini, Blender et MotionBuilder ont aussi leur API Python. C'est la langue commune du pipeline.

Outils pour l'éditeur Unity (C#)

Les outils Unity s'écrivent en C# dans des dossiers Editor : fenêtres personnalisées en UI Toolkit ou en IMGUI, inspecteurs, importeurs d'assets (ScriptedImporter, AssetPostprocessor). Passer par SerializedObject et Undo garantit qu'une modification s'annule et se sauvegarde correctement.

Qt, PySide et outils autonomes

Pour les applications autonomes et les fenêtres intégrées à Maya ou Houdini, Qt reste la référence, en C++ ou en Python avec PySide. Les éditeurs internes de dialogues, de quêtes ou de données de jeu sont souvent des applications Qt. Certaines équipes écrivent aussi des outils web (React, TypeScript) branchés sur des services.

Formats et pipeline d'assets

FBX, glTF et OpenUSD pour la 3D, des formats de textures compressés selon la plateforme, des formats maison pour les données du jeu. Le pipeline va du logiciel de création jusqu'au paquet chargé par le jeu (le cook dans Unreal), avec des vérifications à chaque étape : nommage, nombre de polygones, taille des textures, références cassées.

Perforce P4 et contrôle de version

Perforce, dont le serveur Helix Core s'appelle désormais P4, domine dans les studios pour les gros fichiers binaires : streams, verrouillage exclusif des fichiers qu'on ne sait pas fusionner, proxies pour les équipes à distance. On croise aussi Git avec LFS et Unity Version Control (ex-Plastic SCM). Le programmeur outils écrit souvent des déclencheurs et des scripts autour.

Build et intégration continue

Compilation du code, cook des assets, paquets par plateforme, tests automatiques. Dans Unreal, Unreal Automation Tool avec BuildGraph, et Horde, le système de build et d'exécution distribuée d'Epic ; ailleurs Jenkins, TeamCity ou GitLab CI. Le temps de build et son taux d'échec se suivent comme des indicateurs de production.

Données de jeu et outils de designers

Tables d'équilibrage, dialogues, objets, quêtes : les designers les éditent dans des outils qui valident les données et les exportent vers le jeu. Le programmeur outils conçoit le schéma, la validation et le format, et prévoit le cas où deux personnes modifient la même table.

Les intitulés varient : programmeur outils, tools programmer, développeur outils, pipeline developer, technical artist orienté outils. Dans une grande équipe outils, le travail peut porter sur un framework partagé entre plusieurs jeux ; dans une petite équipe, un programmeur gameplay ou moteur écrit aussi les outils. Certains postes penchent vers le build et l'infrastructure (Perforce, CI, compilation distribuée), d'autres vers l'interface des outils internes, d'autres vers les logiciels 3D et le pipeline d'assets. Le poste s'ouvre aussi à des juniors, à condition que le code soit propre et que la personne comprenne le travail des artistes et des designers qui utiliseront ses outils.

Ce qu'on attend d'un programmeur outils en production

  • Outils d'édition pour artistes et designers
  • C++, C# et Python appliqués aux outils
  • Pipeline d'assets et formats
  • Extensions d'éditeur Unreal ou Unity
  • Build, CI et Perforce
  • Robustesse et performance des outils

Les questions techniques à poser à un tools programmer

Chaque question vient avec ce qu'une bonne réponse contient et le signal qui doit vous alerter. Pas besoin d'être technique pour les poser : écoutez si le candidat raconte du vécu.

  1. Question 1 · confirmé

    Un outil d'import met quatre minutes à traiter un dossier de 2 000 textures, et les artistes le lancent plusieurs fois par jour. Comment l'accélérez-vous ?

    Une bonne réponseIl mesure d'abord où part le temps, avec un profileur ou des journaux horodatés : lecture disque, décompression, conversion, écriture ou attente de l'éditeur. Ensuite il ne traite que ce qui a changé, grâce à un hachage du contenu et des réglages, parallélise les conversions sur plusieurs cœurs ou plusieurs machines, met en cache les résultats partagés (comme le cache de données dérivées d'Unreal) et garde l'interface réactive avec une progression annulable.

    Signal d'alerteRéécrire l'outil dans un autre langage avant d'avoir mesuré, ou paralléliser des appels à une API d'éditeur qui n'est pas thread-safe.

  2. Question 2 · confirmé

    Un level designer annule (Ctrl+Z) une action faite avec votre outil d'édition, et le niveau se retrouve dans un état incohérent. Qu'est-ce qui manque ?

    Une bonne réponseToutes les modifications ne passent pas par le système de transactions de l'éditeur. Dans Unreal, une transaction (FScopedTransaction en C++, ScopedEditorTransaction en Python) et un appel à Modify() sur chaque objet avant de le changer ; dans Unity, Undo.RecordObject ou des modifications faites via SerializedObject. Il regroupe une action utilisateur en une seule transaction, puis teste annulation et rétablissement sur les cas limites : création, suppression, références entre objets.

    Signal d'alerte« L'outil ne gère pas l'annulation, il faut sauvegarder avant de s'en servir. »

  3. Question 3 · junior à confirmé

    Votre script d'export depuis Maya marche sur votre poste et échoue chez un artiste sur trois. Comment le rendez-vous fiable ?

    Une bonne réponseIl cherche les différences d'environnement : version du logiciel et de Python, chemins absolus codés en dur, variables d'environnement, dépendances installées à la main, caractères accentués dans les noms de fichiers. Puis il distribue l'outil de façon contrôlée, versionné dans Perforce ou par un gestionnaire de paquets interne, écrit des messages d'erreur qu'un artiste comprend et envoie les erreurs vers un journal central.

    Signal d'alerteDemander aux artistes de reproduire sa configuration, ou masquer les exceptions pour ne plus voir l'erreur.

  4. Question 4 · confirmé

    Chaque semaine, des assets qui ne respectent pas les règles (nommage, taille des textures, nombre de polygones) arrivent dans le build. Que mettez-vous en place ?

    Une bonne réponseDes vérifications automatiques à plusieurs endroits : à l'export depuis le logiciel 3D, à l'import dans l'éditeur, et avant la soumission dans Perforce, par un déclencheur ou par la validation de données de l'éditeur (Data Validation dans Unreal). Les règles vivent dans un fichier de configuration lisible, chaque erreur dit quoi corriger et où, et un rapport nocturne liste ce qui passe encore.

    Signal d'alerteUn document de règles envoyé par mail, ou un blocage sans message qui explique la correction.

  5. Question 5 · senior

    Le build complet du jeu prend six heures et échoue souvent en fin de course. Par où commencez-vous ?

    Une bonne réponseIl découpe le temps par étape (compilation, cook, paquet, tests) à partir de l'historique des builds, puis attaque la plus longue : compilation distribuée ou mise en cache (Unreal Build Accelerator, Incredibuild, FASTBuild), cook incrémental et cache partagé des données dérivées, étapes en parallèle sur plusieurs agents. Contre les échecs tardifs, il place les vérifications rapides en tête (compilation, validation des assets) pour qu'un build raté échoue en dix minutes plutôt qu'en six heures.

    Signal d'alerteAcheter des machines plus puissantes sans savoir quelle étape coûte, ou relancer le build en espérant qu'il passe.

Recevez la fiche d'entretien complète en PDF

La fiche pour mener l'entretien de bout en bout, prête à imprimer ou à partager avec le manager.

  • 30 questions sur 6 axes, avec la bonne réponse, le signal d'alerte et la relance
  • Le niveau visé pour chaque question
  • Une mise en situation de 20 minutes et ce qu'on attend du candidat
  • La grille d'évaluation de 1 à 4, axe par axe

Questions fréquentes sur le recrutement d'un programmeur outils

Tools programmer et technical artist : où passe la frontière ?

Le technical artist vient souvent de l'art : shaders, rigging, scripts Python dans les logiciels 3D, règles de budget des assets. Le tools programmer vient plutôt du développement : il écrit des outils plus gros et plus durables, en C++, C# ou Python, avec des tests et une architecture. Les deux se croisent sur le pipeline d'assets. Pour un outil que toute la production utilisera pendant des années, privilégiez la rigueur logicielle.

Un développeur sans expérience du jeu vidéo a-t-il sa chance sur ce poste ?

Oui, en particulier sur les outils de build, les applications Qt ou les outils web internes. Il lui faudra apprendre le pipeline d'assets, le travail avec Perforce et les contraintes d'un éditeur de moteur. Vérifiez qu'il a déjà écrit un outil pour des utilisateurs qui ne sont pas développeurs, et demandez-lui ce qu'il a changé après leurs retours.

Comment construire le test technique d'un tools programmer ?

Un petit outil à écrire en une ou deux heures, ou un outil existant à commenter. Par exemple, un script qui parcourt un dossier d'assets, vérifie des règles de nommage et de taille et produit un rapport lisible. Regardez la gestion des erreurs, la clarté des messages et la structure du code autant que le résultat. La revue de code d'un outil réel, avec ses défauts, montre aussi vite le niveau.

Faut-il connaître le moteur du studio ?

C'est utile, rarement indispensable. Les extensions d'éditeur Unreal en C++ et en Slate demandent un temps d'apprentissage réel ; Unity se prend en main plus vite pour qui connaît déjà C#. Sur un moteur maison, personne n'arrive formé. Demandez plutôt comment la personne a découvert l'API d'un logiciel qu'elle ne connaissait pas, en combien de temps, et ce qu'elle a livré avec.

Pour structurer vos autres entretiens, consultez aussi nos pages sur les questions d'entretien de recrutement, la méthode de l'entretien structuré et la grille d'évaluation d'entretien.

Les fiches voisines

Toutes les fiches →

Voyez Delectus sur vos propres offres.

Commencez gratuitement. Passez à l'échelle quand vous êtes prêt.

Demander une démo

Votre ATS, connecté à Delectus

  • Workable
  • Teamtailor
  • iCIMS
  • Lever
  • SmartRecruiters
  • Jobvite
  • Greenhouse
  • Pinpoint