router

Routes any game-development request to the right specialized skill(s): it detects the engine (Godot, Unity, Unreal, Bevy, Phaser, PixiJS, three.js, LÖVE, pygame, Roblox) and the task, then reads the chosen skill before acting. Use to make a game or to decide which skill applies — for players, levels

By gamedev-skills · 2,638 installs

npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill router

Source repository · Upstream listing

Master Router — Game Development Skill Dispatcher The entry point for game development work. It fingerprints the project to pick one engine, classifies the task from the request, names the minimal set of specialized skills, and tells you to read them before acting. It dispatches and composes — it does not re teach engine APIs. When to use Use at the start of any game development request — building or debugging a game, level, player, enemy, shader, UI, save system, multiplayer, input, audio, AI, dialogue, procedural content, or visual asset set — to decide which skill(s) to load. Use when the user names an engine or genre, says "make a game", or asks "which skill should I use?". When not to use: once the right skill is loaded and the task is squarely inside it, work from that skill — don't re run the router every turn. Re route only when the task pivots to a new engine or concern (router step 6). Routing algorithm 1. Detect engine and version — project fingerprint → at most one engine skill set (or "unknown"), then read the project's version source. §1. 2. Classify task — phrasing → discipline(s) + at most one genre + workflow(s). §2. 3. Resolve — the minimal set: engine skill(s) + discipline(s) + genre + workflow(s). §3. 4. Read (disclosure) — open only the chosen SKILL.md bodies; references/ only on demand. §4. 5. Compose — order: engine fundamentals → discipline concept → genre glue → workflow. §5. 6. Fallback — engine unknown or no skill fits → ask or default to Godot; state any gap. §6. 1. Engine detection (project fingerprint) Scan for the highest confidence signal; choose exactly one engine. Stop at the first match. Engine Primary signal Skill set root : : 1 Godot project.godot skills/godot/ 2 Unreal .uproject skills/unreal/ 3 Unity Assets/ and ProjectSettings/ProjectVersion.txt skills/unity/ 4 Bevy Cargo.toml with a bevy dependency 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 calling love. skills/other engines/love2d core/ 9 pygame .py with import pygame skills/other engines/pygame core/ 10 Roblox .rbxl(x) / .project.json (Rojo) skills/other engines/roblox For secondary signals, the Godot C /Unity/Bevy and multi web disambiguation rules, monorepos, and plain text engine mentions, read references/engine detection.md . After identifying the engine, read its version from project metadata or dependency locks before choosing APIs. Existing projects keep their pinned version unless migration is requested; the catalog baseline is only for new projects. The exact version sources are in the detection reference and ../docs/VERSION SUPPORT.md . 2. Task classification (phrasing → category) After the engine, read the request for task signals (three additive categories): disciplines (cross engine concepts): create game assets , game ai , ai behavior trees utility 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 . Triggered by concept words ("sprite sheet", "art direction", "texture", "pathfinding", "save slots", "fragment shader", "screen shake", "camera follow", "HUD/menu", "optimize/low FPS"). genres (whole game templates): platformer , roguelike , rpg , fps shooter , tower defense , card game , visual novel , survival crafting , puzzle . Triggered by genre words ("make a roguelike", "deckbuilder"). workflows (process/shipping): game jam , prototype fast , steam publish , itch publish . Triggered by process words ("publish on Steam", "vertical slice"). File signals sharpen this: .yarn / .ink → dialogue systems / visual novel ; steam appid.txt → steam publish ; .inputactions → unity input system . 3. Routing table (task → category → skill) 3a. Engine skills — read the one matching the detected engine + sub task Godot ( skills/godot/ ): language godot gdscript / godot csharp ; structure godot nodes scenes , godot signals groups ; 2D godot 2d movement , godot tilemap ; 3D godot 3d essentials ; physics godot physics ; UI godot ui control ; animation godot animation ; shaders godot shaders ; data godot resources ; audio godot audio ; netcode godot multiplayer ; ship godot export . Unity ( skills/unity/ ): scripting unity csharp scripting ; input unity input system ; physics unity physics ; animation unity animation ; data unity scriptableobjects ; 2D unity tilemap 2d ; AI nav unity navmesh ; ship unity build pipeline . Unreal ( skills/unreal/ ): visual scripting unreal blueprints ; C++ gameplay unreal cpp gameplay ; input unreal enhanced input ; AI unreal behavior trees ; VFX unreal niagara ; ship unreal packaging . Web ( skills/web engines/ ): phaser core , phaser arcade physics ; pixijs rendering ; threejs scene setup , threejs gltf loading , threejs materials lighting . Other ( skills/other engines/ ): bevy ecs , pygame core , love2d core ; Roblox foundation roblox luau , persistence roblox datastores , UI roblox ui , remotes/security roblox networking , character lifecycle roblox characters , simulation/queries roblox physics , and in Studio operation roblox studio workflow . 3b. Disciplines — load with the engine skill (concept ↔ engine API) Concept ( says: ) Discipline skill Pairs with (engine API) art direction, game assets, sprites, tilesets, textures, icons, 3D props create game assets engine importer/rendering skill; imagegen when available enemy AI, behavior tree, pathfinding, steering game ai unity navmesh / unreal behavior trees / Godot nav BT runtime, blackboard, decorator, selector/sequence, utility AI, response curve, consideration ai behavior trees utility ai game ai (model choice) / unreal behavior trees (engine assets) procedural, noise, seed, dungeon generator procedural gen engine tilemap/grid skill dialogue, Yarn, Ink, conversation tree dialogue systems engine UI skill save/load, slots, persistence save systems roblox datastores / engine IO adaptive music, mixer, ducking, SFX audio design godot audio / Unity AudioMixer shader, fragment, dissolve/outline shader programming godot shaders / engine material jitter, tunneling, fixed timestep physics tuning godot physics / unity physics whitebox, blockout, tile layout, pacing level design godot tilemap / unity tilemap 2d rebind, gamepad, input buffering input systems unity input system / unreal enhanced input / Godot InputMap screen shake, hit stop, juice, squash & stretch, "make it punchy" game feel engine animation/tween + camera systems (shake) camera follow, deadzone, look ahead, orbit, first person camera systems godot 2d movement / godot 3d essentials / Cinemachine HUD, menu, UI layout, scaling, safe area, focus nav game ui ux godot ui control / Unity UI (UGUI/UI Toolkit) low FPS, optimize, draw calls, GC spike, pooling, profiler performance optimization engine profiler + physics tuning For Roblox, compose cross engine concepts with the focused engine skill: HUD/menu requests use roblox ui + game ui ux (+ input systems for gameplay bindings); remote exploit or replication requests use roblox networking + roblox luau ; respawn/rig requests use roblox characters ; physical simulation/query requests use roblox physics (+ physics tuning for stability); direct place editing also uses roblox studio workflow . 3c. Genres — compose engine + disciplines (bind to the detected engine) Genre ( says: ) composes platformer, jump, double jump godot 2d movement (or engine physics) + godot tilemap / unity tilemap 2d + level design + camera systems + game feel roguelike, procedural dungeon, permadeath procedural gen + godot tilemap / unity tilemap 2d + game ai + save systems + game feel RPG, stats, inventory, quests godot resources / unity scriptableobjects + dialogue systems + save systems + game ui ux FPS, first person, hitscan godot 3d essentials / unreal cpp gameplay + input systems + game ai + camera systems + game feel tower defense, waves, lanes game ai + engine movement + level design + game ui ux card game, deckbuilder, TCG godot resources / unity scriptableobjects + game ui ux (+ engine UI) visual novel, branching story dialogue systems + save systems + game ui ux survival, crafting, gathering save systems + godot resources / unity scriptableobjects + procedural gen + game ui ux puzzle, match 3, grid logic godot tilemap / unity tilemap 2d + level design + game feel 3d. Workflows — engine independent process & shipping game jam (jam, 48 hour, Ludum Dare/GMTK) · prototype fast (vertical slice, MVP, greybox) · steam publish (Steam, Steamworks, depot; steam appid.txt ) · itch publish (itch.io, butler; .itch.toml ). For the exhaustive per skill trigger list and every engine binding, read references/routing table.md . 4. Read protocol (progressive disclosure) 1. Preloaded: only each skill's name + description are in context. Decide from those plus the fingerprint — do not pre read bodies. 2. On selection: read the body of each chosen skills/<category /<name /SKILL.md — and only those. Never bulk load a whole category. 3. On demand: read a skill's bundled references/ files only when the subtask needs that depth (the skill body says when). 4. Re route on pivot: if the task changes (movement → saving), select and read the newly relevant skill instead of keeping everything loaded. Announce what you load and why, e.g.: "Detected Godot ( project.godot ). Loading godot 2d movement for the controller and platformer for jump feel; will open the platformer skill's feel tuning.md reference if you want coyote time/buffering." 5. Composition rules One engine set, additive concepts. Exactly one engine skill set; add the disciplines the task needs and usually at most one genre. Workflows attach independently. Order: engine fundamentals → discipline concept → genre orchestration → workflow. For asset production, approve the visual target before generating a family, then finish with the engine import settings and an in context capture. Ownership on overlap: the engine skill owns API/syntax; the discipline skill owns the portable concept/algorithm and defers to the engine skill for code; the genre skill owns structure/glue and links out instead of re teaching a primitive. Hand offs: when a genre's composes names a slot like 2d movement , bind it to the detected engine. If that engine lacks the exact skill, see §6 and references/routing table.md ("Binding gaps"). 6. Unknown engine & no skill fallback Engine unknown (no fingerprint, no engine named): 1. Check the request for a plain text engine name ("in Unity", "using Phaser"). If found, adopt it. 2. If the task is a pure concept/genre/workflow question, route straight to the engine agnostic discipline/genre/workflow skill — no engine needed ("what's a good save format?" → save systems ). 3. Only if engine choice actually blocks the answer, ask one targeted question ("Which engine — Godot, Unity, Unreal, or a web/other engine?"). If the user has no preferen