用途
Game Development 是一个编排型(Orchestrator)技能,用于游戏开发项目。它教授游戏开发的通用原则,并根据上下文把工作引导到合适的子技能。当用户正在开发游戏项目时使用该技能。
主要能力
子技能路由
平台选择:
- 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
核心原则(适用于所有平台)
-
游戏循环:每个游戏无论平台都遵循 INPUT(读取玩家操作)→ UPDATE(处理游戏逻辑,固定时间步长)→ RENDER(绘制帧,插值)的模式。固定时间步长规则:物理/逻辑使用固定速率(例如 50Hz),渲染尽可能快,并在状态之间插值以获得平滑视觉。
-
模式选择矩阵:状态机用于 3-5 个离散状态(如玩家 Idle→Walk→Jump);对象池用于频繁生成/销毁(如子弹、粒子);观察者/事件用于跨系统通信(如生命值→UI 更新);ECS 用于成千上万个相似实体(如 RTS 单位、粒子);命令用于撤销、回放、网络(如输入记录);行为树用于复杂 AI 决策(如敌人 AI)。决策规则:从状态机开始,仅在性能需要时加入 ECS。
-
输入抽象:把输入抽象为动作(ACTIONS)而非原始按键,例如 "jump" 对应 Space、手柄 A、触摸点击;"move" 对应 WASD、左摇杆、虚拟摇杆。这样可实现多平台与可重绑定控制。
-
性能预算(60 FPS = 16.67ms):输入 1ms、物理 3ms、AI 2ms、游戏逻辑 4ms、渲染 5ms、缓冲 1.67ms。优化优先级:算法(O(n²) → O(n log n))、批处理(减少绘制调用)、池化(避免 GC 峰值)、LOD(按距离调整细节)、剔除(跳过不可见对象)。
-
按复杂度选择 AI:FSM 简单,用于 3-5 个状态、可预测行为;行为树中等,模块化、对设计师友好;GOAP 高,涌现式、基于规划;Utility AI 高,基于评分的决策。
-
碰撞策略: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 处理网络。
限制
该技能本身是编排层,具体实现细节需依赖各子技能。资料未提供各子技能的具体内容、安装命令、支持的引擎或框架清单、收费与价格信息,这些事实暂未提供。