遊戲開發協調器。根據平台、維度與引擎適合度(網頁 2D/3D、混合 DOM+Canvas、敘事工具)進行路由。當你開始或規劃遊戲專案、選擇框架,或在 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 |
架構 / 工具
| 如果你需要... | 使用子技能 |
|---|---|
| 引擎/框架選擇、shell vs guest、適合度分級 | game-development/engine-selection |
| GDD、平衡、玩家心理 | game-development/game-design |
| 多人連線、網路 | game-development/multiplayer |
| 視覺風格、素材管線、動畫 | game-development/game-art |
| 音效設計、音樂、自適應音訊 | game-development/game-audio |
核心原則(所有平台)
1. 遊戲迴圈
輸入 → 讀取玩家動作
更新 → 處理遊戲邏輯(固定時間步長)
渲染 → 繪製畫面(插值)
固定時間步長規則:
- 物理/邏輯:固定速率(例如 50Hz)
- 渲染:越快越好
- 在狀態之間插值以獲得流暢視覺
混合 / UI 密集型遊戲: 外層應用程式可能由 DOM/事件驅動;僅在 canvas/WebGL 視埠(或需要模擬 tick 的地方)使用經典遊戲迴圈。
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 | 矩形,快速檢查 |
| 圓形 | 圓形物件,低成本 |
| 空間雜湊 | 許多大小相似的物件 |
| 四叉樹 | 大型世界,多種尺寸 |
反模式(通用)
| 不要 | 要 |
|---|---|
| 每幀更新所有東西 | 使用事件、髒標記 |
| 在熱迴圈中建立物件 | 物件池 |
| 什麼都不快取 | 快取參考 |
| 未經分析就最佳化 | 先分析 |
| 混合輸入與邏輯 | 抽象輸入層 |
| 根據 hype 選擇引擎 | 根據遊戲類型、團隊與發布目標選擇引擎 |
路由範例
「瀏覽器 2D 平台遊戲」
→ game-development/engine-selection → game-development/web-games → game-development/2d-games → game-development/game-design
「UI 密集的網頁遊戲,帶有小街機挑戰」
→ game-development/engine-selection(shell vs guest) → game-development/web-games → game-development/2d-games(僅限 guest)
「手機解謎遊戲」
→ 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
切記: 偉大的遊戲來自迭代,而非完美。快速製作原型,然後打磨。
限制
- 僅在任務明確符合上述範圍時使用此技能。
- 請勿將輸出視為環境特定驗證、測試或專家審查的替代品。
- 如果缺少必要的輸入、權限、安全邊界或成功標準,請停止並要求釐清。






