# Game Development

> 游戏开发编排器。根据项目需求路由到平台特定技能。当用户要求'游戏开发'时使用。

- Skill: `kscz0000/game-development` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kscz0000/game-development`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kscz0000/game-development/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kscz0000 (https://skillmd.com/u/kscz0000)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/kscz0000/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  → 读取玩家操作
UPDATE → 处理游戏逻辑（固定时间步长）
RENDER → 绘制帧（插值）
```

**固定时间步长规则：**
- 物理/逻辑：固定频率（如50Hz）
- 渲染：尽可能快
- 在状态之间插值以获得平滑视觉效果

---

### 2. 模式选择矩阵

| 模式 | 使用场景 | 示例 |
|---------|----------|---------|
| **状态机** | 3-5个离散状态 | 玩家：站立→行走→跳跃 |
| **对象池** | 频繁生成/销毁 | 子弹、粒子 |
| **观察者/事件** | 跨系统通信 | 生命值→UI更新 |
| **ECS** | 数千个相似实体 | RTS单位、粒子 |
| **命令** | 撤销、回放、网络 | 输入录制 |
| **行为树** | 复杂AI决策 | 敌人AI |

**决策规则：** 从状态机开始。仅在性能需要时添加ECS。

---

### 3. 输入抽象

将输入抽象为**动作**，而非原始按键：

```
"jump"  → 空格、手柄A、触摸点击
"move"  → WASD、左摇杆、虚拟摇杆
```

**原因：** 支持多平台、可重映射控制。

---

### 4. 性能预算（60 FPS = 16.67ms）

| 系统 | 预算 |
|--------|--------|
| 输入 | 1ms |
| 物理 | 3ms |
| AI | 2ms |
| 游戏逻辑 | 4ms |
| 渲染 | 5ms |
| 缓冲 | 1.67ms |

**优化优先级：**
1. 算法（O(n²) → O(n log n)）
2. 批处理（减少绘制调用）
3. 对象池（避免GC峰值）
4. LOD（按距离细节）
5. 剔除（跳过不可见物体）

---

### 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` 处理网络

---

> **记住：** 伟大的游戏来自迭代，而非完美。快速原型，然后打磨。

## 限制
- 仅当任务明确匹配上述范围时使用此技能。
- 不要将输出替代特定环境的验证、测试或专家审查。
- 如果缺少必要的输入、权限、安全边界或成功标准，请停止并请求澄清。

