mcpField
R
router

router

github.com/gamedev-skillsAgent 工作流5.4k7.4k 次安装1 天前更新
代码仓库

关于 router

面向游戏开发任务的技能路由器:根据项目特征识别引擎,并按请求筛选最少的专用技能,指导读取与组合。它负责分发而不讲解引擎 API。

主要功能

  1. 01按项目特征识别引擎
  2. 02根据请求分类任务
  3. 03选择最少的相关技能
  4. 04安排技能读取与组合
  5. 05引擎未知时提供回退流程

适用场景

  1. 01开始制作或调试游戏
  2. 02判断某项游戏任务应加载哪些技能
  3. 03任务转向新引擎或开发关注点时重新路由

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill router

安装后在 Claude Code 中输入/router确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
engine-detection.md
routing-table.md

详细介绍

主路由器 — 游戏开发技能分发器

游戏开发任务的入口。它会识别项目特征以选出一个引擎,根据请求对任务进行分类,列出最少的一组专业技能,并要求你在采取行动前阅读这些技能。它负责分发和组合,不会重新讲解引擎 API。

何时使用

  • 在任何游戏开发请求开始时使用——无论是构建或调试游戏、关卡、玩家角色、敌人、着色器、UI、存档系统、多人游戏、输入、音频、AI、对话、程序化内容还是视觉资源集——以确定要加载哪些技能。
  • 当用户指定引擎或类型、说“做个游戏”,或询问“我该使用哪项技能?”时使用。

何时不要使用:加载了正确的技能,且任务明确属于该技能的范围后,就根据该技能开展工作——不要在每一轮都重新运行路由器。只有当任务转向新的引擎或关注点时,才重新路由(路由器第 6 步)。

路由算法

  1. 检测引擎和版本——项目特征 → 至多一组引擎技能(或“未知”),然后读取项目的版本来源。§1。
  2. 对任务分类——措辞 → 领域 + 至多一个类型 + 工作流。§2。
  3. 解析——最少集合:引擎技能 + 领域 + 类型 + 工作流。§3。
  4. 阅读(披露)——仅打开选定的 SKILL.md 正文;仅在需要时查阅 references/。§4。
  5. 组合——顺序:引擎基础知识 → 领域概念 → 类型衔接 → 工作流。§5。
  6. 回退——引擎未知或没有合适的技能 → 询问或默认使用 Godot;说明存在的缺口。§6。

1. 引擎检测(项目特征)

扫描置信度最高的信号;只选择一个引擎。遇到第一个匹配项时停止。

#引擎主要信号技能集根目录
1Godotproject.godotskills/godot/
2Unreal*.uprojectskills/unreal/
3UnityAssets/ 和 ProjectSettings/ProjectVersion.txtskills/unity/
4BevyCargo.toml 中含有 bevy 依赖skills/other-engines/bevy-ecs/
5Phaserpackage.json 依赖 phaserskills/web-engines/phaser-*
6PixiJSpackage.json 依赖 pixi.jsskills/web-engines/pixijs-rendering/
7three.jspackage.json 依赖 threeskills/web-engines/threejs-*
8LÖVEconf.lua / main.lua 调用了 love.*skills/other-engines/love2d-core/
9pygame*.py 中包含 import pygameskills/other-engines/pygame-core/
10Roblox*.rbxl(x) / *.project.json(Rojo)skills/other-engines/roblox-*

有关次要信号、Godot-C#/Unity/Bevy 和多个 Web 引擎的消歧规则、单体仓库,以及纯文本中的引擎名称,请阅读 references/engine-detection.md。

识别引擎后,在选择 API 前,从项目元数据或依赖锁文件中读取其版本。除非用户要求迁移,否则现有项目应保留其锁定的版本;目录基准版本仅适用于新项目。具体的版本来源见检测参考文档和 ../docs/VERSION-SUPPORT.md。

2. 任务分类(措辞 → 类别)

确定引擎后,读取请求中的任务信号(以下三类可叠加):

  • disciplines(跨引擎概念):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。 由概念词触发(“精灵表”“美术指导”“纹理”“寻路”“存档槽”“片段着色器”“屏幕震动”“摄像机跟随”“HUD/菜单”“优化/低 FPS”)。
  • genres(完整游戏模板):platformer、roguelike、rpg、fps-shooter、 tower-defense、card-game、visual-novel、survival-crafting、puzzle。由游戏类型词触发 (“制作一款 roguelike”“牌组构筑游戏”)。
  • workflows(流程/发布):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;2D godot-2d-movement、godot-tilemap;3D godot-3d-essentials;物理 godot-physics;UI godot-ui-control;动画 godot-animation;着色器 godot-shaders;数据 godot-resources;音频 godot-audio; 网络代码 godot-multiplayer;无头 CLI 测试 godot-gdscript-headless-testing;发布 godot-export。
  • Unity(skills/unity/):脚本编写 unity-csharp-scripting;输入 unity-input-system; 物理 unity-physics;动画 unity-animation;数据 unity-scriptableobjects;2D unity-tilemap-2d;AI 导航 unity-navmesh;发布 unity-build-pipeline。
  • Unreal(skills/unreal/):可视化脚本 unreal-blueprints;C++ 游戏玩法 unreal-cpp-gameplay;输入 unreal-enhanced-input;AI unreal-behavior-trees;VFX unreal-niagara;发布 unreal-packaging。
  • Web(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 基础 roblox-luau、持久化 roblox-datastores、UI roblox-ui、远程调用/安全 roblox-networking、角色生命周期 roblox-characters、模拟/查询 roblox-physics,以及 Studio 内操作 roblox-studio-workflow。
3b. 学科 — 与引擎技能一起加载(概念 ↔ 引擎 API)
概念(says:)学科技能配合使用(引擎 API)
美术指导、游戏资源、精灵、图块集、纹理、图标、3D 道具create-game-assets引擎导入/渲染技能;若可用,使用 imagegen
敌人 AI、行为树、寻路、转向game-aiunity-navmesh / unreal-behavior-trees / Godot 导航
BT 运行时、黑板、装饰器、选择器/序列、效用 AI、响应曲线、考量项ai-behavior-trees-utility-aigame-ai(模型选择)/ unreal-behavior-trees(引擎资源)
程序化、噪声、种子、地牢生成器procedural-gen引擎图块地图/网格技能
对话、Yarn、Ink、对话树dialogue-systems引擎 UI 技能
保存/加载、存档槽、持久化save-systemsroblox-datastores / 引擎 IO
自适应音乐、混音器、闪避、音效audio-designgodot-audio / Unity AudioMixer
着色器、片元、溶解/描边shader-programminggodot-shaders / 引擎材质
抖动、穿透、固定时间步长physics-tuninggodot-physics / unity-physics
白盒、灰盒、图块布局、节奏level-designgodot-tilemap / unity-tilemap-2d
重新绑定、游戏手柄、输入缓冲input-systemsunity-input-system / unreal-enhanced-input / Godot InputMap
屏幕震动、受击停顿、爽感、挤压与拉伸、“让它更有冲击力”game-feel引擎动画/补间 + camera-systems(震动)
摄像机跟随、死区、前视、环绕、第一人称camera-systemsgodot-2d-movement / godot-3d-essentials / Cinemachine
HUD、菜单、UI 布局、缩放、安全区域、焦点导航game-ui-uxgodot-ui-control / Unity UI(UGUI/UI Toolkit)
FPS 低、优化、绘制调用、GC 峰值、对象池、分析器performance-optimization引擎分析器 + physics-tuning

对于 Roblox,将跨引擎概念与针对性引擎技能组合使用:HUD/菜单请求使用 roblox-ui + game-ui-ux(+ 游戏操作绑定使用 input-systems);远程利用或 复制请求使用 roblox-networking + roblox-luau;重生/角色绑定请求使用 roblox-characters;物理模拟/查询请求使用 roblox-physics(+ 稳定性调优使用 physics-tuning);直接编辑场景也使用 roblox-studio-workflow。

3c. 类型 — 组合引擎 + 学科(将 * 绑定到检测到的引擎)
类型(says:)组合
平台跳跃、跳跃、二段跳godot-2d-movement(或引擎物理)+ godot-tilemap/unity-tilemap-2d + level-design + camera-systems + game-feel
Roguelike、程序化地牢、永久死亡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(游戏创作活动、48 小时、Ludum Dare/GMTK)· prototype-fast(垂直切片、MVP、灰盒)· steam-publish(Steam、Steamworks、内容库;steam_appid.txt)· itch-publish(itch.io、butler; .itch.toml)。

如需查看详尽的技能触发条件列表和每种引擎的绑定方式,请阅读 references/routing-table.md。

4. 阅读协议(渐进式披露)

  1. **预加载:**上下文中仅包含每项技能的 name + description。根据这些信息和指纹做出判断——不要提前读取正文。
  2. 选定后:读取每项选定技能的正文 skills/<category>/<name>/SKILL.md,且只读取这些技能。切勿一次性加载整个类别。
  3. **按需读取:**只有在子任务需要深入了解时,才读取技能附带的 references/ 文件(技能正文会说明何时需要)。
  4. **任务转向时重新路由:**如果任务发生变化(从移动转为存档),请选定并读取新相关的技能,而不是继续加载所有内容。

说明你加载了什么以及原因,例如:“检测到 Godot(project.godot)。加载 godot-2d-movement 以处理控制器,并加载 platformer 以调整跳跃手感;如果你需要土狼时间/输入缓冲,我会打开平台游戏技能的 feel-tuning.md 参考文件。”

5. 组合规则

  • 一组引擎技能,概念可叠加。恰好使用一组引擎技能;添加任务所需的学科技能,通常最多添加一种游戏类型技能。工作流可独立附加。
  • **顺序:**引擎基础 → 学科概念 → 游戏类型编排 → 工作流。对于资源制作,先确认视觉目标再生成一组资源,最后完成引擎导入设置并进行上下文捕获。
  • **职责划分:**遇到重叠时,引擎技能负责 API/语法;学科技能负责可移植的概念/算法,并将代码交由引擎技能处理;游戏类型技能负责结构/衔接,并通过链接指向相关内容,而不是重复讲解基础概念。
  • **交接:**当游戏类型技能的 composes 指定了类似 *-2d-movement 的槽位时,将其绑定到检测到的引擎。如果该引擎没有完全匹配的技能,请参阅 §6 和 references/routing-table.md(“Binding gaps”)。

6. 未知引擎与无技能时的回退方案

引擎未知(没有指纹,也未指定引擎):

  1. 检查请求中是否以纯文本提到引擎名称(“在 Unity 中”、“使用 Phaser”)。如果有,就采用该引擎。
  2. 如果任务纯粹是概念/游戏类型/工作流问题,直接路由到与引擎无关的学科/游戏类型/工作流技能——无需引擎(“什么存档格式比较好?” → save-systems)。
  3. 只有当引擎选择确实会影响回答时,才提出一个有针对性的问题(“你使用哪种引擎——Godot、Unity、Unreal,还是 Web/其他引擎?”)。如果用户没有偏好且必须选择一种,默认使用 Godot(此处覆盖最全面的引擎),并说明这一点。
  4. 切勿臆造引擎,或凭猜测加载引擎技能。

已知引擎,但没有技能覆盖该子任务:加载最接近的引擎技能和相关学科技能,并明确说明缺口(例如:“没有专门的 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 中制作程序化生成的地牢 Roguelike"Godotgodot-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(先进行性能分析)→ 引擎技能
"制作一套风格统一的像素风玩家角色和敌人"(已检测到引擎)create-game-assets → 对应的引擎导入/渲染技能

参考资料

  • 完整的引擎特征、次级信号和消歧信息:references/engine-detection.md。
  • 各技能详尽的触发词、引擎绑定和绑定缺口:references/routing-table.md。

评论

支持 Markdown