关于 game-development
game-development 是面向游戏项目的编排技能,结合通用开发原则并引导至专门子技能,帮助开发者按平台、维度、设计和技术需求查找指导。
主要功能
- 01按目标平台和维度分流
- 02游戏循环结构指导
- 03常见系统的模式选择
- 04输入抽象原则
- 05AI 与碰撞策略参考
适用场景
- 01为浏览器、移动端或 PC 游戏选择子技能
- 02规划 2D 或 3D 项目的架构
- 03为实体和游戏系统选择模式
- 04查找多人游戏、音频或美术指导
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill game-development安装后在 Claude Code 中输入/game-development确认已加载。
详细介绍
游戏开发
编排器技能——原则,以及路由到专用子技能。
何时使用此技能
你正在开发游戏项目。此技能介绍原则,并根据上下文引导你使用合适的子技能。
子技能路由
平台选择
| 如果游戏面向…… | 使用子技能 |
|---|---|
| Web 浏览器(HTML5、WebGL、WebGPU) | game-development/web-games |
| 移动平台(iOS、Android) | game-development/mobile-games |
| PC(Steam、桌面端) | game-development/pc-games |
| VR/AR 头显 | game-development/vr-ar |
维度选择
| 如果游戏是…… | 使用子技能 |
|---|---|
| 2D(精灵、瓦片地图) | game-development/2d-games |
| 3D(网格、着色器) | game-development/3d-games |
架构 / 工具
| 如果你需要…… | 使用子技能 |
|---|---|
| 引擎 / 框架选择、外壳与来宾、适配层级 | game-development/engine-selection |
| GDD、平衡性、玩家心理 | game-development/game-design |
| 多人游戏、网络 | game-development/multiplayer |
| 视觉风格、素材管线、动画 | game-development/game-art |
| 音效设计、音乐、自适应音频 | game-development/game-audio |
核心原则(所有平台)
1. 游戏循环
INPUT → Read player actions
UPDATE → Process game logic (fixed timestep)
RENDER → Draw the frame (interpolated)
固定时间步长的起点(并非每款游戏都必需):
- 物理 / 逻辑:固定频率(例如 50Hz)
- 渲染:与显示器 / 帧调度器同步,并遵循选定的功耗预算
- 适当插值;暂停后限制累积延迟 / 子步数,以避免追赶螺旋
**混合型 / UI 密集型游戏:**外层应用可以由 DOM / 事件驱动;仅在 canvas/WebGL 视口(或任何模拟按刻度更新的区域)使用经典游戏循环。
2. 模式选择矩阵
| 模式 | 适用场景 | 示例 |
|---|---|---|
| 状态机 | 3-5 个离散状态 | 玩家:待机→行走→跳跃 |
| 对象池 | 频繁生成 / 销毁 | 子弹、粒子 |
| 观察者 / 事件 | 跨系统通信 | 生命值→UI 更新 |
| ECS | 数千个相似实体 | RTS 单位、粒子 |
| 命令 | 撤销、回放、网络 | 输入录制 |
| 行为树 | 复杂的 AI 决策 | 敌方 AI |
| 内容即数据 | 设计师无需编写代码即可发布关卡 / 事件 | JSON/YAML 包 |
**决策规则:**从状态机开始。仅在性能需要时添加 ECS。
3. 输入抽象
将输入抽象为操作,而非原始按键:
"jump" → Space, Gamepad A, Touch tap
"move" → WASD, Left stick, Virtual joystick
4. 性能预算示例(60 FPS = 16.67ms)
| 系统 | 预算 |
|---|---|
| 输入 | 1ms |
| 物理 | 3ms |
| AI | 2ms |
| 游戏逻辑 | 4ms |
| 渲染 | 5ms |
| 缓冲 | 1.67ms |
选择优化方案前,应在目标硬件上分析 CPU 和 GPU 路径;这些技术没有通用的优先级顺序。
5. 按复杂度选择 AI
| AI 类型 | 复杂度 | 适用场景 |
|---|---|---|
| FSM | 简单 | 3-5 个状态、行为可预测 |
| 行为树 | 中等 | 模块化、便于设计师使用 |
| GOAP | 高 | 涌现式、基于规划 |
| 效用 AI | 高 | 基于评分的决策 |
6. 碰撞策略
| 类型 | 最适用场景 |
|---|---|
| AABB | 矩形、快速检测 |
| 圆形 | 圆形物体、开销低 |
| 空间哈希 | 大量尺寸相近的物体 |
| 四叉树 | 大型世界、物体尺寸各异 |
反模式(通用)
| 不要这样做 | 应该这样做 |
|---|---|
| 每帧更新所有内容 | 使用事件、脏标记 |
| 在热点循环中创建对象 | 使用对象池 |
| 什么都不缓存 | 缓存引用 |
| 不做性能分析就优化 | 先进行性能分析 |
| 将输入与逻辑混在一起 | 抽象输入层 |
| 跟风选择引擎 | 根据游戏类型 + 团队 + 发布目标匹配引擎 |
路由示例
“浏览器 2D 平台游戏”
→ game-development/engine-selection → game-development/web-games → game-development/2d-games → game-development/game-design
“包含小型街机挑战的 UI 密集型网页游戏”
→ game-development/engine-selection(外壳与访客端的选择)→ game-development/web-games → 仅访客端使用 game-development/2d-games
“移动端益智游戏”
→ game-development/mobile-games → game-development/game-design
“多人 VR 射击游戏”
→ game-development/vr-ar → game-development/3d-games → game-development/multiplayer
“带有简单属性的分支叙事”
→ game-development/engine-selection(Ink/Twine)→ 选择任意宿主 UI
请记住: 优秀的游戏源于不断迭代,而非追求完美。快速制作原型,再进行打磨。
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 不要将输出视为环境特定验证、测试或专家评审的替代品。
- 如果缺少必要的输入、权限、安全边界或成功标准,请暂停并要求澄清。