[ PROMPT_NODE_23278 ]
pc-games
[ SKILL_DOCUMENTATION ]
# PC/主机游戏开发
> 引擎选择与平台特定原则。
---
## 1. 引擎选择
### 决策树
你在开发什么?
│
├── 2D 游戏
│ ├── 重视开源? → Godot
│ └── 团队/资源庞大? → Unity
│
├── 3D 游戏
│ ├── AAA 视觉质量? → Unreal
│ ├── 跨平台优先? → Unity
│ └── 独立/开源? → Godot 4
│
└── 特殊需求
├── DOTS 性能? → Unity
├── Nanite/Lumen? → Unreal
└── 轻量级? → Godot
### 对比
| 因素 | Unity 6 | Godot 4 | Unreal 5 |
|--------|---------|---------|----------|
| 2D | 好 | 优秀 | 有限 |
| 3D | 好 | 好 | 优秀 |
| 学习曲线 | 中 | 易 | 难 |
| 成本 | 收入分成 | 免费 | 100万后 5% |
| 团队 | 任意 | 个人-中型 | 中型-大型 |
---
## 2. 平台特性
### Steam 集成
| 特性 | 目的 |
|---------|---------|
| 成就系统 | 玩家目标 |
| 云存档 | 跨设备进度 |
| 排行榜 | 竞技性 |
| 创意工坊 | 用户模组 |
| 状态显示 | 展示游戏状态 |
### 主机要求
| 平台 | 认证 |
|----------|--------------|
| PlayStation | TRC 合规 |
| Xbox | XR 合规 |
| Nintendo | Lotcheck |
---
## 3. 手柄支持
### 输入抽象
映射动作,而非按钮:
- "确认" → A (Xbox), 叉 (PS), B (任天堂)
- "取消" → B (Xbox), 圆圈 (PS), A (任天堂)
### 触觉反馈
| 强度 | 用途 |
|-----------|-----|
| 轻 | UI 反馈 |
| 中 | 碰撞冲击 |
| 重 | 重大事件 |
---
## 4. 性能优化
### 优先分析
| 引擎 | 工具 |
|--------|------|
| Unity | Profiler Window |
| Godot | Debugger → Profiler |
| Unreal | Unreal Insights |
### 常见瓶颈
| 瓶颈 | 解决方案 |
|------------|----------|
| 绘制调用 (Draw calls) | 批处理,图集 |
| GC 尖峰 | 对象池 |
| 物理计算 | 简化碰撞体 |
| 着色器 | LOD 着色器 |
---
## 5. 引擎特定原则
### Unity 6
- 使用 DOTS 处理性能关键系统
- 使用 Burst 编译器优化热点路径
- 使用 Addressables 进行资源流式传输
### Godot 4
- 使用 GDScript 进行快速迭代
- 使用 C# 处理复杂逻辑
- 使用信号 (Signals) 进行解耦
### Unreal 5
- 使用蓝图 (Blueprint) 给设计师
- 使用 C++ 保证性能
- 使用 Nanite 处理高模环境
- 使用 Lumen 实现动态光照
---
## 6. 反模式
| ❌ 错误做法 | ✅ 正确做法 |
|----------|-------|
| 盲目跟风选择引擎 | 根据项目需求选择 |
| 忽视平台指南 | 研究认证要求 |
| 强行