Roteador Mestre — Distribuidor de Skills para Desenvolvimento de Jogos
O ponto de entrada para trabalho de desenvolvimento de jogos. Ele identifica o projeto para escolher um motor, classifica a tarefa a partir da solicitação, nomeia o conjunto mínimo de skills especializadas e instrui a lê-las antes de agir. Ele distribui e compõe — não reensina as APIs do motor.
Quando usar
- Use no início de qualquer solicitação de desenvolvimento de jogo — construir ou depurar um jogo, fase, jogador, inimigo, shader, UI, sistema de salvamento, multijogador, entrada, áudio, IA, diálogo ou conteúdo procedural — para decidir qual(is) skill(s) carregar.
- Use quando o usuário nomear um motor ou gênero, disser "faça um jogo" ou perguntar "qual skill devo usar?".
Quando não usar: uma vez que a skill correta está carregada e a tarefa está estritamente dentro dela, trabalhe a partir dessa skill — não execute o roteador novamente a cada turno. Re-roteie apenas quando a tarefa mudar para um novo motor ou área (passo 6 do roteador).
Algoritmo de roteamento
- Detectar motor — impressão digital do projeto → no máximo um conjunto de skills de motor (ou "desconhecido"). §1.
- Classificar tarefa — redação → disciplina(s) + no máximo um gênero + workflow(s). §2.
- Resolver — o conjunto mínimo: skill(s) do motor + disciplina(s) + gênero + workflow(s). §3.
- Ler (divulgação progressiva) — abrir apenas os corpos dos
SKILL.mdescolhidos;references/apenas sob demanda. §4. - Compor — ordem: fundamentos do motor → conceito da disciplina → cola do gênero → workflow. §5.
- Fallback — motor desconhecido ou nenhuma skill se encaixa → perguntar ou usar Godot como padrão; declarar qualquer lacuna. §6.
1. Detecção de motor (impressão digital do projeto)
Digitalize pelo sinal de maior confiança; escolha exatamente um motor. Pare na primeira correspondência.
| # | Motor | Sinal primário | Raiz do conjunto de skills |
|---|---|---|---|
| 1 | Godot | project.godot | skills/godot/ |
| 2 | Unreal | *.uproject | skills/unreal/ |
| 3 | Unity | Assets/ e ProjectSettings/ProjectVersion.txt | skills/unity/ |
| 4 | Bevy | Cargo.toml com dependência 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 chamando love.* | skills/other-engines/love2d-core/ |
| 9 | pygame | *.py com import pygame | skills/other-engines/pygame-core/ |
| 10 | Roblox | *.rbxl(x) / *.project.json (Rojo) | skills/other-engines/roblox-* |
Para sinais secundários, as regras de desambiguação Godot-C#/Unity/Bevy e multi-web, monorepos e menções de motor em texto simples, leia references/engine-detection.md.
2. Classificação de tarefas (redação → categoria)
Após o motor, leia a solicitação em busca de sinais de tarefa (três categorias aditivas):
- disciplinas (conceitos entre motores):
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. Acionadas por palavras de conceito ("pathfinding", "save slots", "fragment shader", "screen shake", "camera follow", "HUD/menu", "optimize/low FPS"). - gêneros (modelos de jogos completos):
platformer,roguelike,rpg,fps-shooter,tower-defense,card-game,visual-novel,survival-crafting,puzzle. Acionados por palavras de gênero ("faça um roguelike", "deckbuilder"). - workflows (processo/entrega):
game-jam,prototype-fast,steam-publish,itch-publish. Acionados por palavras de processo ("publicar na Steam", "vertical slice").
Sinais de arquivo refinam isso: *.yarn/*.ink → dialogue-systems/visual-novel; steam_appid.txt → steam-publish; *.inputactions → unity-input-system.
3. Tabela de roteamento (tarefa → categoria → skill)
3a. Skills de motor — leia a que corresponde ao motor detectado + subtarefa
- Godot (
skills/godot/): linguagemgodot-gdscript/godot-csharp; estruturagodot-nodes-scenes,godot-signals-groups; 2Dgodot-2d-movement,godot-tilemap; 3Dgodot-3d-essentials; físicagodot-physics; UIgodot-ui-control; animaçãogodot-animation; shadersgodot-shaders; dadosgodot-resources; áudiogodot-audio; netcodegodot-multiplayer; exportaçãogodot-export. - Unity (
skills/unity/): scriptingunity-csharp-scripting; entradaunity-input-system; físicaunity-physics; animaçãounity-animation; dadosunity-scriptableobjects; 2Dunity-tilemap-2d; navegação IAunity-navmesh; exportaçãounity-build-pipeline. - Unreal (
skills/unreal/): scripting visualunreal-blueprints; gameplay C++unreal-cpp-gameplay; entradaunreal-enhanced-input; IAunreal-behavior-trees; VFXunreal-niagara; exportaçãounreal-packaging. - Web (
skills/web-engines/):phaser-core,phaser-arcade-physics;pixijs-rendering;threejs-scene-setup,threejs-gltf-loading,threejs-materials-lighting. - Outros (
skills/other-engines/):bevy-ecs,pygame-core,love2d-core,roblox-luau,roblox-datastores.
3b. Disciplinas — carregar junto com a skill do motor (conceito ↔ API do motor)
Conceito (diz:) | Skill da disciplina | Combina com (API do motor) |
|---|---|---|
| IA inimiga, behavior tree, pathfinding, steering | game-ai | unity-navmesh / unreal-behavior-trees / navegação Godot |
| procedural, noise, semente, gerador de calabouços | procedural-gen | skill de tilemap/grid do motor |
| diálogo, Yarn, Ink, árvore de conversa | dialogue-systems | skill de UI do motor |
| salvar/carregar, slots, persistência | save-systems | roblox-datastores / IO do motor |
| música adaptativa, mixer, ducking, SFX | audio-design | godot-audio / Unity AudioMixer |
| shader, fragment, dissolve/outline | shader-programming | godot-shaders / material do motor |
| jitter, tunneling, timestep fixo | physics-tuning | godot-physics / unity-physics |
| whitebox, blockout, layout de tiles, ritmo | level-design | godot-tilemap / unity-tilemap-2d |
| reatribuir, gamepad, buffer de entrada | input-systems | unity-input-system / unreal-enhanced-input / InputMap Godot |
| screen shake, hit-stop, juice, squash & stretch, "deixe impactante" | game-feel | animação/tween do motor + camera-systems (shake) |
| camera follow, deadzone, look-ahead, órbita, primeira pessoa | camera-systems | godot-2d-movement / godot-3d-essentials / Cinemachine |
| HUD, menu, layout de UI, escalonamento, safe area, navegação por foco | game-ui-ux | godot-ui-control / Unity UI (UGUI/UI Toolkit) |
| baixo FPS, otimizar, draw calls, pico de GC, pooling, profiler | performance-optimization | profiler do motor + physics-tuning |
3c. Gêneros — compor motor + disciplinas (vincule * ao motor detectado)
Gênero (diz:) | compõe |
|---|---|
| platformer, pulo, pulo duplo | godot-2d-movement (ou física do motor) + godot-tilemap/unity-tilemap-2d + level-design + camera-systems + game-feel |
| roguelike, calabouço procedural, morte permanente | procedural-gen + godot-tilemap/unity-tilemap-2d + game-ai + save-systems + game-feel |
| RPG, stats, inventário, missões | godot-resources/unity-scriptableobjects + dialogue-systems + save-systems + game-ui-ux |
| FPS, primeira pessoa, hitscan | godot-3d-essentials/unreal-cpp-gameplay + input-systems + game-ai + camera-systems + game-feel |
| tower defense, ondas, pistas | game-ai + movimento do motor + level-design + game-ui-ux |
| card game, deckbuilder, TCG | godot-resources/unity-scriptableobjects + game-ui-ux (+ UI do motor) |
| visual novel, história ramificada | dialogue-systems + save-systems + game-ui-ux |
| sobrevivência, crafting, coleta | save-systems + godot-resources/unity-scriptableobjects + procedural-gen + game-ui-ux |
| puzzle, match-3, lógica de grade | godot-tilemap/unity-tilemap-2d + level-design + game-feel |
3d. Workflows — processo e entrega independentes do motor
game-jam (jam, 48 horas, Ludum Dare/GMTK) · prototype-fast (vertical slice, MVP, greybox) · steam-publish (Steam, Steamworks, depot; steam_appid.txt) · itch-publish (itch.io, butler; .itch.toml).
Para a lista exaustiva de gatilhos por skill e todas as vinculações de motor, leia references/routing-table.md.
4. Protocolo de leitura (divulgação progressiva)
- Pré-carregado: apenas o
name+descriptionde cada skill estão no contexto. Decida a partir disso mais a impressão digital — não pré-leia os corpos. - Na seleção: leia o corpo de cada
skills/<categoria>/<nome>/SKILL.mdescolhido — e apenas esses. Nunca carregue uma categoria inteira em lote. - Sob demanda: leia os arquivos
references/agrupados de uma skill apenas quando a subtarefa precisar dessa profundidade (o corpo da skill indica quando). - Re-rotear na mudança: se a tarefa mudar (movimento → salvar), selecione e leia a skill recém-relevante em vez de manter tudo carregado.
Anuncie o que carrega e por quê, exemplo: "Detectado Godot (project.godot). Carregando godot-2d-movement para o controle e platformer para o pulo; abrirei a referência feel-tuning.md da skill de platformer se você quiser coyote-time/buffering."
5. Regras de composição
- Um conjunto de motor, conceitos aditivos. Exatamente um conjunto de skills de motor; adicione as disciplinas que a tarefa precisa e geralmente no máximo um gênero. Workflows são anexados independentemente.
- Ordem: fundamentos do motor → conceito da disciplina → orquestração do gênero → workflow.
- Propriedade na sobreposição: a skill do motor possui a API/sintaxe; a skill da disciplina possui o conceito/algoritmo portátil e delega à skill do motor o código; a skill do gênero possui a estrutura/cola e vincula externamente em vez de reensinar um primitivo.
- Hand-offs: quando um
composesde um gênero nomeia um slot como*-2d-movement, vincule-o ao motor detectado. Se esse motor não tiver a skill exata, veja §6 ereferences/routing-table.md("Lacunas de vinculação").
6. Fallback para motor desconhecido e sem skill
Motor desconhecido (nenhuma impressão digital, nenhum motor nomeado):
- Verifique a solicitação por um nome de motor em texto simples ("no Unity", "usando Phaser"). Se encontrado, adote-o.
- Se a tarefa é uma pergunta pura de conceito/gênero/workflow, roteie diretamente para a skill de disciplina/gênero/workflow independente de motor — nenhum motor necessário ("qual é um bom formato de save?" →
save-systems). - Apenas se a escolha do motor realmente bloquear a resposta, faça uma pergunta direcionada ("Qual motor — Godot, Unity, Unreal ou um motor web/outro?"). Se o usuário não tiver preferência e um for necessário, use Godot como padrão (o motor mais completamente coberto aqui) e diga isso.
- Nunca invente um motor ou carregue uma skill de motor baseado em um palpite.
Motor conhecido, mas nenhuma skill cobre a subtarefa: carregue a skill de motor mais próxima mais a disciplina relevante e declare a lacuna claramente (exemplo: "nenhuma skill dedicada de movimento 2D do Unity; usando unity-csharp-scripting + unity-physics"). Nunca invente um nome de skill.
Gêneros conflitantes/múltiplos: escolha o gênero dominante a partir da redação; mencione o secundário e ofereça carregá-lo se o usuário confirmar.
Exemplos práticos
| Solicitação | Motor detectado | Skills carregadas (em ordem) |
|---|---|---|
| "adicione um pulo duplo ao meu jogador Godot" | Godot (project.godot) | godot-2d-movement → platformer |
| "faça um inventário para meu RPG Unity" | Unity (Assets/+ProjectSettings/) | unity-scriptableobjects → rpg → save-systems |
| "calabouço procedural roguelike no Godot" | Godot | godot-tilemap → procedural-gen → roguelike |
"diálogo ramificado de um arquivo .yarn" | (nenhum necessário) | dialogue-systems (+ skill de UI do motor se um motor for detectado) |
| "como projetar slots de save com migração?" | (nenhum) | save-systems apenas |
| "publique meu jogo no itch com butler" | (qualquer/nenhum) | itch-publish apenas |
| "quero fazer um jogo, mas não sei o que usar" | desconhecido → perguntar, usar Godot como padrão | o roteador pergunta uma vez; então, exemplo: godot-nodes-scenes |
| "faça os hits parecerem impactantes no meu jogo Godot" | Godot (project.godot) | game-feel (+ camera-systems para shake) |
| "a câmera deve seguir meu jogador suavemente" | (motor detectado) | camera-systems (+ skill de movimento do motor) |
| "meu jogo Unity cai para 30 FPS, otimize-o" | Unity (Assets/+ProjectSettings/) | performance-optimization (perfil primeiro) → skill do motor |
Referências
- Impressões digitais completas do motor, sinais secundários e desambiguação:
references/engine-detection.md. - Palavras de gatilho exaustivas por skill, vinculações de motor e lacunas de vinculação:
references/routing-table.md.