마스터 라우터 — 게임 개발 스킬 디스패처
게임 개발 작업의 진입점입니다. 프로젝트를 식별하여 하나의 엔진을 선택하고, 요청에서 작업을 분류하며, 최소 전문 스킬 집합을 지정하고, 실행 전에 이를 읽도록 안내합니다. 디스패치 및 구성을 수행하며, 엔진 API를 다시 가르치지 않습니다.
사용 시기
- 게임 개발 요청의 시작 — 게임, 레벨, 플레이어, 적, 셰이더, UI, 저장 시스템, 멀티플레이어, 입력, 오디오, AI, 대화 또는 절차적 콘텐츠를 만들거나 디버깅할 때 — 로드할 스킬을 결정하기 위해 사용합니다.
- 사용자가 엔진이나 장르를 언급하거나, "게임을 만들어"라고 말하거나, "어떤 스킬을 사용해야 하나요?"라고 물을 때 사용합니다.
사용하지 말아야 할 때: 올바른 스킬이 로드되고 작업이 해당 스킬 내에 완전히 포함되면, 해당 스킬에서 작업을 진행하세요. 매 턴마다 라우터를 다시 실행하지 마십시오. 작업이 새로운 엔진이나 관심사로 전환될 때만 다시 라우팅합니다(라우터 6단계).
라우팅 알고리즘
- 엔진 감지 — 프로젝트 지문 → 최대 하나의 엔진 스킬 세트(또는 "알 수 없음"). §1.
- 작업 분류 — 표현 → 분야 + 최대 하나의 장르 + 작업 흐름. §2.
- 해결 — 최소 집합: 엔진 스킬 + 분야 + 장르 + 작업 흐름. §3.
- 읽기(공개) — 선택된
SKILL.md본문만 열고,references/는 요청 시에만 엽니다. §4. - 구성 — 순서: 엔진 기본 → 분야 개념 → 장르 접착제 → 작업 흐름. §5.
- 폴백 — 엔진을 알 수 없거나 적합한 스킬이 없는 경우 → 묻거나 Godot으로 기본 설정하고, 모든 격차를 명시합니다. §6.
1. 엔진 감지 (프로젝트 지문)
가장 신뢰도가 높은 신호를 스캔하고, 정확히 하나의 엔진을 선택합니다. 첫 번째 일치에서 중단합니다.
| # | 엔진 | 기본 신호 | 스킬 세트 루트 |
|---|---|---|---|
| 1 | Godot | project.godot | skills/godot/ |
| 2 | Unreal | *.uproject | skills/unreal/ |
| 3 | Unity | Assets/ 및 ProjectSettings/ProjectVersion.txt | skills/unity/ |
| 4 | Bevy | bevy 종속성이 있는 Cargo.toml | 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에서 love.* 호출 | skills/other-engines/love2d-core/ |
| 9 | pygame | import pygame가 있는 *.py | skills/other-engines/pygame-core/ |
| 10 | Roblox | *.rbxl(x) / *.project.json (Rojo) | skills/other-engines/roblox-* |
보조 신호, Godot-C#/Unity/Bevy 및 멀티 웹 명확화 규칙, 모노레포 및 일반 텍스트 엔진 언급에 대해서는 references/engine-detection.md를 읽으십시오.
2. 작업 분류 (표현 → 범주)
엔진 다음에, 요청에서 작업 신호(세 가지 가산 범주)를 읽습니다.
- 분야(엔진 간 개념):
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. 개념 단어("경로 찾기", "저장 슬롯", "프래그먼트 셰이더", "화면 흔들림", "카메라 따라가기", "HUD/메뉴", "최적화/낮은 FPS")에 의해 트리거됩니다. - 장르(전체 게임 템플릿):
platformer,roguelike,rpg,fps-shooter,tower-defense,card-game,visual-novel,survival-crafting,puzzle. 장르 단어("로그라이크를 만들어", "덱빌더")에 의해 트리거됩니다. - 작업 흐름(프로세스/출시):
game-jam,prototype-fast,steam-publish,itch-publish. 프로세스 단어("Steam에 출시", "수직 슬라이스")에 의해 트리거됩니다.
파일 신호가 이를 더욱 명확하게 합니다: *.yarn/*.ink → dialogue-systems/visual-novel; steam_appid.txt → steam-publish; *.inputactions → unity-input-system.
3. 라우팅 테이블 (작업 → 범주 → 스킬)
3a. 엔진 스킬 — 감지된 엔진 + 하위 작업과 일치하는 것을 읽습니다.
- Godot (
skills/godot/): 언어godot-gdscript/godot-csharp; 구조godot-nodes-scenes,godot-signals-groups; 2Dgodot-2d-movement,godot-tilemap; 3Dgodot-3d-essentials; 물리godot-physics; UIgodot-ui-control; 애니메이션godot-animation; 셰이더godot-shaders; 데이터godot-resources; 오디오godot-audio; 네트워크 코드godot-multiplayer; 출시godot-export. - Unity (
skills/unity/): 스크립팅unity-csharp-scripting; 입력unity-input-system; 물리unity-physics; 애니메이션unity-animation; 데이터unity-scriptableobjects; 2Dunity-tilemap-2d; AI 내비게이션unity-navmesh; 출시unity-build-pipeline. - Unreal (
skills/unreal/): 비주얼 스크립팅unreal-blueprints; C++ 게임플레이unreal-cpp-gameplay; 입력unreal-enhanced-input; AIunreal-behavior-trees; VFXunreal-niagara; 출시unreal-packaging. - 웹 (
skills/web-engines/):phaser-core,phaser-arcade-physics;pixijs-rendering;threejs-scene-setup,threejs-gltf-loading,threejs-materials-lighting. - 기타 (
skills/other-engines/):bevy-ecs,pygame-core,love2d-core,roblox-luau,roblox-datastores.
3b. 분야 — 엔진 스킬과 함께 로드 (개념 ↔ 엔진 API)
개념 (말함:) | 분야 스킬 | 페어링 대상 (엔진 API) |
|---|---|---|
| 적 AI, 행동 트리, 경로 찾기, 조향 | game-ai | unity-navmesh / unreal-behavior-trees / Godot 내비게이션 |
| 절차적 생성, 노이즈, 시드, 던전 생성기 | procedural-gen | 엔진 타일맵/그리드 스킬 |
| 대화, Yarn, Ink, 대화 트리 | dialogue-systems | 엔진 UI 스킬 |
| 저장/로드, 슬롯, 지속성 | save-systems | roblox-datastores / 엔진 IO |
| 적응형 음악, 믹서, 덕킹, SFX | audio-design | godot-audio / Unity AudioMixer |
| 셰이더, 프래그먼트, 디졸브/아웃라인 | shader-programming | godot-shaders / 엔진 머티리얼 |
| 지터, 터널링, 고정 타임스텝 | physics-tuning | godot-physics / unity-physics |
| 화이트박스, 블록아웃, 타일 레이아웃, 페이싱 | level-design | godot-tilemap / unity-tilemap-2d |
| 키 재할당, 게임패드, 입력 버퍼링 | input-systems | unity-input-system / unreal-enhanced-input / Godot InputMap |
| 화면 흔들림, 힛스탑, 쥬스, 스쿼시 & 스트레치, "펀치감 있게" | game-feel | 엔진 애니메이션/트윈 + camera-systems (흔들림) |
| 카메라 추적, 데드존, 예측, 궤도, 1인칭 | camera-systems | godot-2d-movement / godot-3d-essentials / Cinemachine |
| HUD, 메뉴, UI 레이아웃, 스케일링, 안전 영역, 포커스 탐색 | game-ui-ux | godot-ui-control / Unity UI (UGUI/UI Toolkit) |
| 낮은 FPS, 최적화, 드로우 콜, GC 스파이크, 풀링, 프로파일러 | performance-optimization | 엔진 프로파일러 + physics-tuning |
3c. 장르 — 엔진 + 분야 구성 (*를 감지된 엔진에 바인딩)
장르 (말함:) | 구성 |
|---|---|
| 플랫포머, 점프, 이중 점프 | godot-2d-movement (또는 엔진 물리) + godot-tilemap/unity-tilemap-2d + level-design + camera-systems + game-feel |
| 로그라이크, 절차적 던전, 영구 죽음 | procedural-gen + godot-tilemap/unity-tilemap-2d + game-ai + save-systems + game-feel |
| RPG, 스탯, 인벤토리, 퀘스트 | godot-resources/unity-scriptableobjects + dialogue-systems + save-systems + game-ui-ux |
| FPS, 1인칭, 힛스캔 | godot-3d-essentials/unreal-cpp-gameplay + input-systems + game-ai + camera-systems + game-feel |
| 타워 디펜스, 웨이브, 레인 | game-ai + 엔진 이동 + level-design + game-ui-ux |
| 카드 게임, 덱빌더, TCG | godot-resources/unity-scriptableobjects + game-ui-ux (+ 엔진 UI) |
| 비주얼 노벨, 분기형 스토리 | dialogue-systems + save-systems + game-ui-ux |
| 서바이벌, 제작, 채집 | save-systems + godot-resources/unity-scriptableobjects + procedural-gen + game-ui-ux |
| 퍼즐, 매치-3, 그리드 로직 | godot-tilemap/unity-tilemap-2d + level-design + game-feel |
3d. 작업 흐름 — 엔진 독립적 프로세스 및 출시
game-jam (잼, 48시간, Ludum Dare/GMTK) · prototype-fast (수직 슬라이스, MVP, 그레이박스) · steam-publish (Steam, Steamworks, depot; steam_appid.txt) · itch-publish (itch.io, butler; .itch.toml).
모든 스킬별 트리거 목록과 모든 엔진 바인딩에 대해서는 references/routing-table.md를 읽으십시오.
4. 읽기 프로토콜 (점진적 공개)
- 미리 로드됨: 각 스킬의
name+description만 컨텍스트에 있습니다. 이것들과 지문을 기반으로 결정하며, 본문을 미리 읽지 않습니다. - 선택 시: 선택된 각
skills/<category>/<name>/SKILL.md의 본문을 읽습니다. 그리고 그것들만 읽습니다. 전체 범주를 일괄 로드하지 마십시오. - 요청 시: 하위 작업에 해당 깊이가 필요할 때만 스킬에 번들된
references/파일을 읽습니다(스킬 본문이 시기를 알려줍니다). - 전환 시 재라우팅: 작업이 변경되면(이동 → 저장), 모든 것을 로드된 상태로 유지하는 대신 새로 관련된 스킬을 선택하고 읽습니다.
무엇을 로드하고 그 이유를 알리십시오. 예: "Godot (project.godot) 감지됨. 컨트롤러를 위해 godot-2d-movement를, 점프 감각을 위해 platformer를 로드합니다. 카이요트 타임/버퍼링을 원하시면 플랫포머 스킬의 feel-tuning.md 참조를 열겠습니다."
5. 구성 규칙
- 하나의 엔진 세트, 가산적 개념. 정확히 하나의 엔진 스킬 세트; 작업에 필요한 분야를 추가하고 일반적으로 최대 하나의 장르를 추가합니다. 작업 흐름은 독립적으로 첨부됩니다.
- 순서: 엔진 기본 → 분야 개념 → 장르 오케스트레이션 → 작업 흐름.
- 중복 시 소유권: 엔진 스킬은 API/구문을 소유합니다. 분야 스킬은 이식 가능한 개념/알고리즘을 소유하고 코드에 대해 엔진 스킬에 위임합니다. 장르 스킬은 구조/접착제를 소유하고 기본 요소를 다시 가르치는 대신 외부로 연결합니다.
- 인계: 장르의
composes가*-2d-movement와 같은 슬롯을 지정하면 감지된 엔진에 바인딩합니다. 해당 엔진에 정확한 스킬이 없으면 §6 및references/routing-table.md("바인딩 격차")를 참조하십시오.
6. 알 수 없는 엔진 및 스킬 없음 폴백
엔진을 알 수 없음 (지문 없음, 엔진 이름 없음):
- 요청에서 일반 텍스트 엔진 이름("Unity에서", "Phaser 사용")을 확인합니다. 발견되면 채택합니다.
- 작업이 순수한 개념/장르/작업 흐름 질문인 경우 엔진에 구애받지 않는 분야/장르/작업 흐름 스킬로 직접 라우팅합니다. 엔진이 필요하지 않습니다("좋은 저장 형식은 무엇인가요?" →
save-systems). - 엔진 선택이 실제로 답변을 차단하는 경우에만, 하나의 목표 질문을 합니다("어떤 엔진을 사용하시겠습니까? Godot, Unity, Unreal, 웹/기타 엔진?"). 사용자가 선호하는 것이 없고 엔진이 필요한 경우 Godot으로 기본 설정하고(여기서 가장 완벽하게 다루는 엔진) 그렇게 말합니다.
- 추측으로 엔진을 만들거나 엔진 스킬을 로드하지 마십시오.
엔진은 알지만 하위 작업을 다루는 스킬이 없음: 가장 가까운 엔진 스킬과 관련 분야를 로드하고 격차를 명확하게 명시합니다(예: "전용 Unity 2D 이동 스킬 없음; unity-csharp-scripting + unity-physics 사용"). 스킬 이름을 절대 지어내지 마십시오.
충돌/다중 장르: 표현에서 지배적인 장르를 선택하고, 보조 장르를 언급하고 사용자가 확인하면 로드하겠다고 제안합니다.
작업 예시
| 요청 | 감지된 엔진 | 로드된 스킬 (순서대로) |
|---|---|---|
| "내 Godot 플레이어에 더블 점프 추가" | Godot (project.godot) | godot-2d-movement → platformer |
| "내 Unity RPG용 인벤토리 만들기" | Unity (Assets/+ProjectSettings/) | unity-scriptableobjects → rpg → save-systems |
| "Godot에서 절차적 던전 로그라이크" | Godot | godot-tilemap → procedural-gen → roguelike |
".yarn 파일의 분기 대화" | (필요 없음) | dialogue-systems (+ 엔진이 감지되면 엔진 UI 스킬) |
| "마이그레이션이 있는 저장 슬롯을 어떻게 설계하나요?" | (없음) | save-systems만 |
| "내 게임을 butler로 itch에 출시" | (모든/없음) | itch-publish만 |
| "게임을 만들고 싶지만 무엇을 사용해야 할지 모르겠습니다" | 알 수 없음 → 묻기, Godot 기본 설정 | 라우터가 한 번 묻습니다. 그런 다음 예: godot-nodes-scenes |
| "내 Godot 게임에서 히트감 있게 만들기" | Godot (project.godot) | game-feel (+ 흔들림을 위한 camera-systems) |
| "카메라가 내 플레이어를 부드럽게 따라가야 합니다" | (감지된 엔진) | camera-systems (+ 엔진 이동 스킬) |
| "내 Unity 게임이 30 FPS로 떨어집니다. 최적화하세요" | Unity (Assets/+ProjectSettings/) | performance-optimization (먼저 프로파일링) → 엔진 스킬 |
참조
- 전체 엔진 지문, 보조 신호 및 명확화:
references/engine-detection.md. - 모든 스킬별 트리거 단어, 엔진 바인딩 및 바인딩 격차:
references/routing-table.md.