[ PROMPT_NODE_23266 ]
game-development
[ SKILL_DOCUMENTATION ]
# 游戏开发
> **编排技能**,提供核心原则并根据上下文路由到专门的子技能。
---
## 何时使用此技能
当你正在进行游戏开发项目时。此技能教授游戏开发的原则,并根据上下文引导你使用正确的子技能。
---
## 子技能路由
### 平台选择
| 如果游戏目标是... | 使用子技能 |
|------------------------|---------------|
| 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. 游戏循环
无论平台如何,每个游戏都遵循此模式:
输入 → 读取玩家操作
更新 → 处理游戏逻辑 (固定时间步长)
渲染 → 绘制帧 (插值)
**固定时间步长规则:**
- 物理/逻辑:固定频率 (例如 50Hz)
- 渲染:尽可能快
- 在状态之间进行插值以获得平滑视觉效果
---
### 2. 模式选择矩阵
| 模式 | 使用场景 | 示例 |
|---------|----------|---------|
| **状态机** | 3-5 个离散状态 | 玩家:待机→行走→跳跃 |
| **对象池** | 频繁生成/销毁 | 子弹, 粒子 |
| **观察者/事件** | 跨系统通信 | 生命值→UI 更新 |
| **ECS** | 成千上万的相似实体 | RTS 单位, 粒子 |
| **命令** | 撤销, 重放, 网络 | 输入记录 |
| **行为树** | 复杂的 AI 决策 | 敌人 AI |
**决策规则:** 从状态机开始。仅在性能有需求时添加 ECS。
---
### 3. 输入抽象
将输入抽象为“动作”,而不是原始按键:
"jump" → 空格, 手柄 A, 触摸点击
"move" → WASD, 左摇杆, 虚拟摇杆
**原因:** 支持多平台、可重绑定的控制。
---
### 4. 性能预算 (60 FPS = 16.67ms)