关于 game-development
面向游戏开发项目的编排型技能,提供通用开发原则,并根据平台、维度和专业领域引导至对应子技能。内容涵盖游戏循环、架构模式、输入抽象、性能与 AI 选择。
主要功能
- 01按平台和类型路由子技能
- 02游戏循环与固定时间步
- 03常见架构模式选择
- 04输入抽象原则
- 05性能预算与优化顺序
- 06按复杂度选择游戏 AI
适用场景
- 01确定浏览器、移动端或 PC 游戏方向
- 02为 2D 或 3D 项目选择开发模式
- 03规划多人游戏、音频或美术工作
- 04诊断性能瓶颈并选择优化策略
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill game-development安装后在 Claude Code 中输入/game-development确认已加载。
详细介绍
游戏开发
编排器技能,提供核心原则并路由到专门的子技能。
何时使用此技能
你正在开发一个游戏开发项目。此技能教授游戏开发的原理,并根据上下文引导你找到正确的子技能。
子技能路由
平台选择
| 如果游戏面向…… | 使用子技能 |
|---|---|
| Web 浏览器(HTML5、WebGL) | 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 |
专业领域
| 如果你需要…… | 使用子技能 |
|---|---|
| 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)
- 渲染:尽可能快
- 在状态之间插值以获得平滑视觉效果
2. 模式选择矩阵
| 模式 | 何时使用 | 示例 |
|---|---|---|
| 状态机 | 3-5 个离散状态 | 玩家:Idle→Walk→Jump |
| 对象池 | 频繁生成/销毁 | 子弹、粒子 |
| 观察者/事件 | 跨系统通信 | 生命值→UI 更新 |
| ECS | 数千个相似实体 | RTS 单位、粒子 |
| 命令 | 撤销、重放、网络 | 输入录制 |
| 行为树 | 复杂 AI 决策 | 敌人 AI |
决策规则: 从状态机开始。仅在性能需要时添加 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 |
优化优先级:
- 算法(O(n²) → O(n log n))
- 批处理(减少绘制调用)
- 池化(避免 GC 峰值)
- LOD(按距离细化)
- 剔除(跳过不可见对象)
5. 按复杂度选择 AI
| AI 类型 | 复杂度 | 何时使用 |
|---|---|---|
| FSM | 简单 | 3-5 个状态,可预测行为 |
| 行为树 | 中等 | 模块化,对设计师友好 |
| GOAP | 高 | 涌现式,基于规划 |
| 效用 AI | 高 | 基于评分的决策 |
6. 碰撞策略
| 类型 | 最适合 |
|---|---|
| AABB | 矩形,快速检查 |
| 圆形 | 圆形对象,开销低 |
| 空间哈希 | 大量大小相似的对象 |
| 四叉树 | 大型世界,大小各异 |
反模式(通用)
| 不要 | 要 |
|---|---|
| 每帧更新所有内容 | 使用事件、脏标记 |
| 在热循环中创建对象 | 对象池 |
| 不缓存任何内容 | 缓存引用 |
| 未经性能分析就优化 | 先进行性能分析 |
| 将输入与逻辑混合 | 抽象输入层 |
路由示例
示例 1:"我想制作一个基于浏览器的 2D 平台游戏"
→ 从 game-development/web-games 开始进行框架选择
→ 然后 game-development/2d-games 了解精灵/瓦片地图模式
→ 参考 game-development/game-design 进行关卡设计
示例 2:"面向 iOS 和 Android 的移动端益智游戏"
→ 从 game-development/mobile-games 开始了解触摸输入和商店
→ 使用 game-development/game-design 进行益智游戏平衡
示例 3:“多人 VR 射击游戏”
→ 舒适度与沉浸感请参考 game-development/vr-ar
→ 渲染请参考 game-development/3d-games
→ 网络请参考 game-development/multiplayer
请记住: 优秀的游戏源于迭代,而非完美。快速制作原型,然后再打磨。
评论
支持 Markdown