游戏开发编排器。根据平台、维度和引擎适配性(网页2D/3D、混合DOM+画布、叙事工具)进行路由。在启动或构建游戏项目、选择框架,或在Phaser、PixiJS、Kaplay、Canvas/WebGL、Three.js、Babylon.js、Godot、Unity或Ink/Twine之间做选择时使用。
游戏开发
编排技能 — 原则加上路由到专业子技能。
何时使用此技能
你正在从事一个游戏开发项目。本技能教授原则,并根据上下文引导你到正确的子技能。
子技能路由
平台选择
| 如果游戏目标平台是... | 使用子技能 |
|---|---|
| 网页浏览器(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 |
| 游戏设计文档、平衡性、玩家心理 | game-development/game-design |
| 多人游戏、网络 | game-development/multiplayer |
| 视觉风格、资源管线、动画 | game-development/game-art |
| 音效设计、音乐、自适应音频 | game-development/game-audio |
核心原则(所有平台)
1. 游戏循环
输入 → 读取玩家操作
更新 → 处理游戏逻辑(固定时间步长)
渲染 → 绘制帧(插值)
固定时间步长规则:
- 物理/逻辑:固定速率(例如50Hz)
- 渲染:尽可能快
- 在状态之间插值以获得平滑视觉效果
混合/UI密集型游戏: 外部应用可以是DOM/事件驱动;仅在canvas/WebGL视口(或模拟滴答的地方)使用经典游戏循环。
2. 模式选择矩阵
| 模式 | 使用场景 | 示例 |
|---|---|---|
| 状态机 | 3-5个离散状态 | 玩家:空闲→行走→跳跃 |
| 对象池 | 频繁生成/销毁 | 子弹、粒子 |
| 观察者/事件 | 跨系统通信 | 生命值→UI更新 |
| ECS | 数千个相似实体 | RTS单位、粒子 |
| 命令 | 撤销、回放、网络 | 输入录制 |
| 行为树 | 复杂AI决策 | 敌人AI |
| 内容即数据 | 设计师无需代码即可发布关卡/事件 | JSON/YAML包 |
决策规则: 从状态机开始。仅在性能要求时添加ECS。
3. 输入抽象
将输入抽象为动作,而非原始按键:
"跳跃" → 空格键、手柄A键、触摸点击
"移动" → WASD、左摇杆、虚拟摇杆
4. 性能预算(60 FPS = 16.67ms)
| 系统 | 预算 |
|---|---|
| 输入 | 1ms |
| 物理 | 3ms |
| AI | 2ms |
| 游戏逻辑 | 4ms |
| 渲染 | 5ms |
| 缓冲 | 1.67ms |
优化优先级: 算法 → 批处理 → 池化 → LOD → 剔除。
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(外壳 vs 客体)→ 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
记住: 伟大的游戏来自迭代,而非完美。快速原型,然后打磨。
限制
- 仅当任务明确匹配上述范围时使用此技能。
- 不要将输出视为环境特定验证、测试或专家评审的替代品。
- 如果缺少所需的输入、权限、安全边界或成功标准,请停止并请求澄清。






