Routeur Maître — Distributeur de Compétences de Développement de Jeux
Le point d'entrée pour le travail de développement de jeu. Il identifie le projet pour choisir un moteur, classifie la tâche à partir de la demande, nomme l'ensemble minimal de compétences spécialisées et vous demande de les lire avant d'agir. Il distribue et compose — il ne réenseigne pas les API du moteur.
Quand l'utiliser
- Utilisez-le au début de toute demande de développement de jeu — construction ou débogage d'un jeu, niveau, joueur, ennemi, shader, UI, système de sauvegarde, multijoueur, entrée, audio, IA, dialogue ou contenu procédural — pour décider quelle(s) compétence(s) charger.
- Utilisez-le lorsque l'utilisateur nomme un moteur ou un genre, dit "fais un jeu" ou demande "quelle compétence devrais-je utiliser ?".
Quand ne pas l'utiliser : une fois la bonne compétence chargée et la tâche clairement à l'intérieur, travaillez à partir de cette compétence — ne relancez pas le routeur à chaque tour. Ne réacheminez que lorsque la tâche pivote vers un nouveau moteur ou un nouveau domaine (étape 6 du routeur).
Algorithme de routage
- Détecter le moteur — empreinte du projet → au plus un ensemble de compétences moteur (ou "inconnu"). §1.
- Classifier la tâche — formulation → discipline(s) + au plus un genre + workflow(s). §2.
- Résoudre — l'ensemble minimal : compétence(s) moteur + discipline(s) + genre + workflow(s). §3.
- Lire (divulgation) — ouvrir uniquement le corps des
SKILL.mdchoisis ;references/seulement à la demande. §4. - Composer — ordre : fondamentaux du moteur → concept de discipline → colle de genre → workflow. §5.
- Repli — moteur inconnu ou aucune compétence ne correspond → demander ou utiliser Godot par défaut ; mentionner toute lacune. §6.
1. Détection du moteur (empreinte du projet)
Recherchez le signal de la plus haute confiance ; choisissez exactement un moteur. Arrêtez-vous à la première correspondance.
| # | Moteur | Signal principal | Racine de l'ensemble de compétences |
|---|---|---|---|
| 1 | Godot | project.godot | skills/godot/ |
| 2 | Unreal | *.uproject | skills/unreal/ |
| 3 | Unity | Assets/ et ProjectSettings/ProjectVersion.txt | skills/unity/ |
| 4 | Bevy | Cargo.toml avec une dépendance bevy | skills/other-engines/bevy-ecs/ |
| 5 | Phaser | package.json dep phaser | skills/web-engines/phaser-* |
| 6 | PixiJS | package.json dep pixi.js | skills/web-engines/pixijs-rendering/ |
| 7 | three.js | package.json dep three | skills/web-engines/threejs-* |
| 8 | LÖVE | conf.lua / main.lua appelant love.* | skills/other-engines/love2d-core/ |
| 9 | pygame | *.py avec import pygame | skills/other-engines/pygame-core/ |
| 10 | Roblox | *.rbxl(x) / *.project.json (Rojo) | skills/other-engines/roblox-* |
Pour les signaux secondaires, les règles de désambiguïsation Godot-C#/Unity/Bevy et multi-web, les monorepos et les mentions textuelles de moteur, lisez references/engine-detection.md.
2. Classification de la tâche (formulation → catégorie)
Après le moteur, lisez la demande pour les signaux de tâche (trois catégories additives) :
- disciplines (concepts transversaux aux moteurs) :
game-ai,procedural-gen,dialogue-systems,save-systems,audio-design,shader-programming,physics-tuning,level-design,input-systems,game-feel,camera-systems,game-ui-ux,performance-optimization. Déclenchées par des mots-clés conceptuels ("pathfinding", "save slots", "fragment shader", "screen shake", "camera follow", "HUD/menu", "optimize/low FPS"). - genres (modèles de jeu complets) :
platformer,roguelike,rpg,fps-shooter,tower-defense,card-game,visual-novel,survival-crafting,puzzle. Déclenchés par des mots de genre ("fais un roguelike", "deckbuilder"). - workflows (processus/livraison) :
game-jam,prototype-fast,steam-publish,itch-publish. Déclenchés par des mots de processus ("publier sur Steam", "vertical slice").
Les signaux de fichiers affinent cela : *.yarn/*.ink → dialogue-systems/visual-novel ; steam_appid.txt → steam-publish ; *.inputactions → unity-input-system.
3. Table de routage (tâche → catégorie → compétence)
3a. Compétences moteur — lisez celle qui correspond au moteur détecté + sous-tâche
- Godot (
skills/godot/) : langagegodot-gdscript/godot-csharp; structuregodot-nodes-scenes,godot-signals-groups; 2Dgodot-2d-movement,godot-tilemap; 3Dgodot-3d-essentials; physiquegodot-physics; UIgodot-ui-control; animationgodot-animation; shadersgodot-shaders; donnéesgodot-resources; audiogodot-audio; netcodegodot-multiplayer; exportgodot-export. - Unity (
skills/unity/) : scriptunity-csharp-scripting; entréeunity-input-system; physiqueunity-physics; animationunity-animation; donnéesunity-scriptableobjects; 2Dunity-tilemap-2d; navigation IAunity-navmesh; exportunity-build-pipeline. - Unreal (
skills/unreal/) : script visuelunreal-blueprints; gameplay C++unreal-cpp-gameplay; entréeunreal-enhanced-input; IAunreal-behavior-trees; VFXunreal-niagara; exportunreal-packaging. - Web (
skills/web-engines/) :phaser-core,phaser-arcade-physics;pixijs-rendering;threejs-scene-setup,threejs-gltf-loading,threejs-materials-lighting. - Autres (
skills/other-engines/) :bevy-ecs,pygame-core,love2d-core,roblox-luau,roblox-datastores.
3b. Disciplines — chargez avec la compétence moteur (concept ↔ API du moteur)
Concept (dit :) | Compétence discipline | Associé à (API du moteur) |
|---|---|---|
| IA ennemie, arbre de comportement, pathfinding, steering | game-ai | unity-navmesh / unreal-behavior-trees / navigation Godot |
| procédural, bruit, seed, générateur de donjon | procedural-gen | compétence tilemap/grille du moteur |
| dialogue, Yarn, Ink, arbre de conversation | dialogue-systems | compétence UI du moteur |
| sauvegarde/chargement, slots, persistance | save-systems | roblox-datastores / E/S du moteur |
| musique adaptative, mixer, ducking, SFX | audio-design | godot-audio / AudioMixer Unity |
| shader, fragment, dissolve/outline | shader-programming | godot-shaders / matériau du moteur |
| saccade, tunneling, pas de temps fixe | physics-tuning | godot-physics / unity-physics |
| whitebox, blocage, disposition des tuiles, rythme | level-design | godot-tilemap / unity-tilemap-2d |
| reconfiguration, manette, tampon d'entrée | input-systems | unity-input-system / unreal-enhanced-input / InputMap Godot |
| screen shake, hit-stop, juice, squash & stretch, "rends-le percutant" | game-feel | animation/tween du moteur + camera-systems (shake) |
| suivi de caméra, zone morte, anticipation, orbite, première personne | camera-systems | godot-2d-movement / godot-3d-essentials / Cinemachine |
| HUD, menu, disposition UI, mise à l'échelle, zone de sécurité, navigation focus | game-ui-ux | godot-ui-control / UI Unity (UGUI/UI Toolkit) |
| bas FPS, optimiser, appels de draw, pic GC, pooling, profileur | performance-optimization | profileur du moteur + physics-tuning |
3c. Genres — composez moteur + disciplines (liez * au moteur détecté)
Genre (dit :) | compose |
|---|---|
| platformer, saut, double saut | godot-2d-movement (ou physique du moteur) + godot-tilemap/unity-tilemap-2d + level-design + camera-systems + game-feel |
| roguelike, donjon procédural, mort permanente | procedural-gen + godot-tilemap/unity-tilemap-2d + game-ai + save-systems + game-feel |
| RPG, stats, inventaire, quêtes | godot-resources/unity-scriptableobjects + dialogue-systems + save-systems + game-ui-ux |
| FPS, première personne, hitscan | godot-3d-essentials/unreal-cpp-gameplay + input-systems + game-ai + camera-systems + game-feel |
| tower defense, vagues, couloirs | game-ai + mouvement du moteur + level-design + game-ui-ux |
| jeu de cartes, deckbuilder, TCG | godot-resources/unity-scriptableobjects + game-ui-ux (+ UI du moteur) |
| roman visuel, histoire ramifiée | dialogue-systems + save-systems + game-ui-ux |
| survie, artisanat, collecte | save-systems + godot-resources/unity-scriptableobjects + procedural-gen + game-ui-ux |
| puzzle, match-3, logique de grille | godot-tilemap/unity-tilemap-2d + level-design + game-feel |
3d. Workflows — processus et livraison indépendants du moteur
game-jam (jam, 48 heures, Ludum Dare/GMTK) · prototype-fast (vertical slice, MVP, greybox) ·
steam-publish (Steam, Steamworks, depot ; steam_appid.txt) · itch-publish (itch.io, butler ;
.itch.toml).
Pour la liste exhaustive des déclencheurs par compétence et toutes les liaisons de moteur, lisez
references/routing-table.md.
4. Protocole de lecture (divulgation progressive)
- Préchargé : seuls le
nameet ladescriptionde chaque compétence sont dans le contexte. Décidez à partir de ceux-ci plus de l'empreinte — ne pré-lisez pas les corps. - Sur sélection : lisez le corps de chacun des fichiers
skills/<category>/<name>/SKILL.mdsélectionnés — et seulement ceux-ci. Ne chargez jamais en masse une catégorie entière. - À la demande : lisez les fichiers
references/inclus d'une compétence uniquement lorsque la sous-tâche nécessite cette profondeur (le corps de la compétence indique quand). - Réacheminez sur pivot : si la tâche change (mouvement → sauvegarde), sélectionnez et lisez la compétence nouvellement pertinente au lieu de tout garder chargé.
Annoncez ce que vous chargez et pourquoi, par exemple : "Godot détecté (project.godot). Chargement
de godot-2d-movement pour le contrôleur et platformer pour la sensation de saut ; j'ouvrirai la
référence feel-tuning.md de la compétence platformer si vous voulez le coyote-time/buffering."
5. Règles de composition
- Un ensemble moteur, concepts additifs. Exactement un ensemble de compétences moteur ; ajoutez les disciplines dont la tâche a besoin et généralement au plus un genre. Les workflows s'attachent indépendamment.
- Ordre : fondamentaux du moteur → concept de discipline → orchestration de genre → workflow.
- Propriété en cas de chevauchement : la compétence moteur possède l'API/la syntaxe ; la compétence discipline possède le concept/l'algorithme portable et se réfère à la compétence moteur pour le code ; la compétence genre possède la structure/colle et lie vers l'extérieur au lieu de réenseigner une primitive.
- Transferts : lorsqu'un
composesde genre nomme un emplacement comme*-2d-movement, liez-le au moteur détecté. Si ce moteur manque de la compétence exacte, voir §6 etreferences/routing-table.md("Lacunes de liaison").
6. Repli pour moteur inconnu et absence de compétence
Moteur inconnu (pas d'empreinte, pas de moteur nommé) :
- Vérifiez la demande pour un nom de moteur en texte clair ("dans Unity", "en utilisant Phaser"). S'il est trouvé, adoptez-le.
- Si la tâche est une question de pur concept/genre/workflow, acheminez directement vers la
compétence discipline/genre/workflow agnostique — pas de moteur nécessaire ("quel est un bon format
de sauvegarde ?" →
save-systems). - Seulement si le choix du moteur bloque réellement la réponse, posez une question ciblée ("Quel moteur — Godot, Unity, Unreal, ou un moteur web/autre ?"). Si l'utilisateur n'a pas de préférence et qu'il en faut un, utilisez Godot par défaut (le moteur le mieux couvert ici) et dites-le.
- N'inventez jamais un moteur et ne chargez jamais une compétence moteur sur une supposition.
Moteur connu mais aucune compétence ne couvre la sous-tâche : chargez la compétence moteur la
plus proche plus la discipline pertinente et déclarez la lacune clairement (par exemple "pas de
compétence dédiée Unity 2D-movement ; utilisation de unity-csharp-scripting + unity-physics").
N'inventez jamais un nom de compétence.
Genres conflictuels/multiples : choisissez le genre dominant à partir de la formulation ; mentionnez le secondaire et proposez de le charger si l'utilisateur confirme.
Exemples concrets
| Demande | Moteur détecté | Compétences chargées (dans l'ordre) |
|---|---|---|
| "ajoute un double saut à mon joueur Godot" | Godot (project.godot) | godot-2d-movement → platformer |
| "fais un inventaire pour mon RPG Unity" | Unity (Assets/+ProjectSettings/) | unity-scriptableobjects → rpg → save-systems |
| "donjon procédural roguelike dans Godot" | Godot | godot-tilemap → procedural-gen → roguelike |
"dialogue ramifié à partir d'un fichier .yarn" | (aucun requis) | dialogue-systems (+ compétence UI du moteur si un moteur est détecté) |
| "comment concevoir des slots de sauvegarde avec migration ?" | (aucun) | save-systems uniquement |
| "publie mon jeu sur itch avec butler" | (quelconque/aucun) | itch-publish uniquement |
| "je veux faire un jeu mais ne sais pas quoi utiliser" | inconnu → demander, Godot par défaut | le routeur demande une fois ; puis par exemple godot-nodes-scenes |
| "rends les coups percutants dans mon jeu Godot" | Godot (project.godot) | game-feel (+ camera-systems pour le shake) |
| "la caméra doit suivre mon joueur en douceur" | (moteur détecté) | camera-systems (+ compétence mouvement du moteur) |
| "mon jeu Unity chute à 30 FPS, optimise-le" | Unity (Assets/+ProjectSettings/) | performance-optimization (profile d'abord) → compétence moteur |
Références
- Empreintes complètes des moteurs, signaux secondaires et désambiguïsation :
references/engine-detection.md. - Mots déclencheurs exhaustifs par compétence, liaisons de moteur et lacunes de liaison :
references/routing-table.md.