主路由 — 遊戲開發技能調度器
遊戲開發工作的進入點。它會對專案進行指紋比對以選取一個引擎,從請求中分類任務,命名出最精簡的專門技能組合,並指示你在行動前先閱讀這些技能。它負責調度與組合——而不會重複教導引擎 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 | Cargo.toml 帶有 bevy 相依套件 | skills/other-engines/bevy-ecs/ |
| 5 | Phaser | package.json 相依 phaser | skills/web-engines/phaser-* |
| 6 | PixiJS | package.json 相依 pixi.js | skills/web-engines/pixijs-rendering/ |
| 7 | three.js | package.json 相依 three | skills/web-engines/threejs-* |
| 8 | LÖVE | conf.lua / main.lua 呼叫 love.* | skills/other-engines/love2d-core/ |
| 9 | pygame | *.py 包含 import pygame | 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。由類型詞觸發(「做一個 roguelike」、「牌組構築遊戲」)。 - 工作流程(流程/發布):
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 | 引擎 tilemap/網格技能 |
| 對話、Yarn、Ink、對話樹 | dialogue-systems | 引擎 UI 技能 |
| 儲存/載入、欄位、持久性 | save-systems | roblox-datastores / 引擎 IO |
| 自適應音樂、混音器、閃避、音效 | 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 |
| 畫面震動、hit-stop、果汁感、擠壓與拉伸、「讓它更有勁」 | game-feel | 引擎動畫/補間 + camera-systems(震動) |
| 攝影機跟隨、死區、預先跟隨、環繞、第一人稱 | 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 |
| 類 Rogue、程序化地城、永久死亡 | 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、第一人稱、即時命中判定 | 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 |
| 益智、三消、網格邏輯 | godot-tilemap/unity-tilemap-2d + level-design + game-feel |
3d. 工作流程 — 與引擎無關的流程與發布
game-jam(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 以處理跳躍手感;如果你需要關於 coyote-time/緩衝的設置,將會開啟平台遊戲技能的 feel-tuning.md 參考檔案。」
5. 組合規則
- 一個引擎組合,可疊加概念。 恰好一個引擎技能組合;加入任務所需的學科以及通常最多一個類型。工作流程獨立附加。
- 順序: 引擎基礎知識 → 學科概念 → 類型編排 → 工作流程。
- 重疊時的歸屬: 引擎技能擁有 API/語法;學科技能擁有可攜式概念/演算法,並將程式碼實作委派給引擎技能;類型技能擁有結構/黏合,並對外連結而不重新教導基礎元素。
- 交接: 當類型的
composes命名了一個像是*-2d-movement的插槽時,將其綁定到偵測到的引擎。如果該引擎缺乏確切的技能,請參閱 §6 及references/routing-table.md(「綁定缺口」)。
6. 未知引擎與無技能降級
引擎未知(無指紋、未指定引擎名稱):
- 檢查請求中是否有純文字的引擎名稱(「在 Unity 中」、「使用 Phaser」)。如果找到,則採用它。
- 如果任務純粹是概念/類型/工作流程問題,直接路由到與引擎無關的學科/類型/工作流程技能——無需引擎(「什麼是好的儲存格式?」→
save-systems)。 - 僅當引擎選擇確實阻礙了答案時,才問一個有針對性的問題(「哪個引擎——Godot、Unity、Unreal,還是網頁/其他引擎?」)。如果使用者沒有偏好且確實需要一個,則預設使用 Godot(此處涵蓋最完整的引擎)並說明。
- 絕不憑猜測發明一個引擎或載入引擎技能。
引擎已知但沒有技能涵蓋子任務: 載入最接近的引擎技能加上相關學科,並直接說明缺口(例如「沒有專門的 Unity 2D-movement 技能;正在使用 unity-csharp-scripting + unity-physics」)。絕不虛構技能名稱。
衝突/多個類型: 從措辭中選取主要類型;提及次要類型,並提供如果使用者確認則載入它的選項。
實際範例
| 請求 | 偵測到的引擎 | 載入的技能(依序) |
|---|---|---|
| 「為我的 Godot 玩家添加二段跳」 | Godot (project.godot) | godot-2d-movement → platformer |
| 「為我的 Unity RPG 製作一個物品欄」 | Unity (Assets/+ProjectSettings/) | unity-scriptableobjects → rpg → save-systems |
| 「在 Godot 中製作一個程序化地城類 Rogue」 | 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。