Communitygithub.com

game-dev-skills/awesome-gamedev-agent-skills

面向AI编程代理的游戏开发技能集:一次安装,主路由器会根据你的引擎和任务自动加载正确的技能。包含66个原始、版本固定的技能(外加一个主路由器),采用便携的SKILL.md格式,可在Claude Code、Cursor、Codex、Copilot、Gemini CLI等多种平台上运行,支持Godot、Unity、Unreal、Web等引擎。

awesome-gamedev-agent-skills 是什么?

这是一个专为AI编程代理设计的游戏开发技能集合。它的核心是一个主路由器(Master Router),能够自动检测项目使用的游戏引擎(如Godot、Unity、Unreal等),然后根据用户的任务描述(如“添加二段跳”、“制作地牢生成器”)智能分类,并加载最小必要技能集合。该集合包含66个版本固定的专业技能,覆盖引擎基础、通用学科(如AI、程序化生成、对话系统)、游戏类型模板(如平台游戏、Roguelike)和工作流(如Steam发布)。所有技能采用标准的SKILL.md格式,确保在Claude Code、Cursor、Codex、Copilot、Gemini CLI等多种AI编码代理中高度便携。路由器通过渐进式披露策略,仅在需要时读取技能本体,避免上下文过载;同时提供完备的降级机制,当引擎未知或缺少特定技能时,路由器会智能提问或默认回退到Godot。

兼容平台✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add gamedev-skills/awesome-gamedev-agent-skills

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

主路由器 —— 游戏开发技能调度器

游戏开发工作的入口点。它通过分析项目指纹来选定一个引擎,根据请求对任务进行分类,确定最少的专业技能集合,并指示你在操作前先阅读这些技能。它负责调度和组合 —— 不会重新教授引擎API。

何时使用

  • 在任何游戏开发请求开始时 —— 无论是构建还是调试游戏、关卡、玩家、敌人、着色器、UI、存档系统、多人游戏、输入、音频、AI、对话或程序化内容 —— 用于决定加载哪些技能。
  • 当用户提到某个引擎或类型、说“制作一个游戏”、或询问“我应该使用哪个技能?”时使用。

何时不使用: 一旦正确的技能已加载且任务明确在该技能范围内,就应依据该技能工作 —— 不要在每一步都重新运行路由器。仅当任务转向到新的引擎或关注点时(参见路由器步骤6)才重新路由。

路由算法

  1. 检测引擎 —— 项目指纹 → 最多一个引擎技能集(或“未知”)。§1.
  2. 分类任务 —— 表述 → 学科(s) + 最多一个类型 + 工作流(s)。§2.
  3. 解析 —— 最小集合:引擎技能(s) + 学科(s) + 类型 + 工作流(s)。§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 和多引擎消除歧义规则、单体仓库以及纯文本引擎提及,请阅读 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/菜单”、“优化/低帧率”)。
  • 类型(完整游戏模板):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;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;发布 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-luau、roblox-datastores。

3b. 学科 —— 与引擎技能一同加载(概念 ↔ 引擎API)

概念(用户提及)学科技能搭配的(引擎API)
敌人AI、行为树、寻路、转向game-aiunity-navmesh / unreal-behavior-trees / Godot导航
程序化、噪声、种子、地牢生成器procedural-gen引擎Tilemap/网格技能
对话、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)
帧率低、优化、绘制调用、GC尖峰、对象池、性能分析器performance-optimization引擎性能分析器 + physics-tuning

3c. 类型 —— 组合引擎 + 学科(将 * 绑定到检测到的引擎)

类型(用户提及)组合方式
平台游戏、跳跃、二段跳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
卡牌游戏、卡牌构筑器、TCGgodot-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. 读取协议(渐进式披露)

  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(“绑定缺口”)。

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帧,优化一下”Unity(Assets/+ProjectSettings/)performance-optimization(先性能分析) → 引擎技能

参考

  • 完整的引擎指纹、次要信号和消除歧义方法:references/engine-detection.md。
  • 每个技能的详尽触发词、引擎绑定和绑定缺口:references/routing-table.md。

相关技能