# Game Development

> 遊戲開發協調器。根據專案需求路由到平台特定技能。

- Skill: `tai-ch0802/game-development` (Agent Skill, multi-file: 11 files)
- Install (CLI): `npx skillmds@latest add tai-ch0802/game-development`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tai-ch0802/game-development/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Tai-ch0802 (https://skillmd.com/u/tai-ch0802)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/tai-ch0802/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. 輸入抽象

將輸入抽象為動作，而非原始按鍵：

```
「跳躍」→ 空白鍵、手把 A、觸控點擊
「移動」→ 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** | 矩形、快速檢查 |
| **圓形** | 圓形物件、低成本 |
| **空間雜湊** | 大量相似大小物件 |
| **四叉樹** | 大世界、不同大小 |

---

## 反模式（通用）

| 不要 | 要 |
|------|-----|
| 每幀更新所有東西 | 使用事件、髒標記 |
| 在熱迴圈中建立物件 | 物件池 |
| 不快取任何東西 | 快取參考 |
| 不分析就最佳化 | 先分析 |
| 混合輸入和邏輯 | 抽象輸入層 |

---

> **記住：** 優秀的遊戲來自迭代，而非完美。快速原型，然後打磨。

