第 12 章:下一步:3D、架构与练习项目
学习目标
- 总结本课程的 2D 项目能力。
- 知道下一步学习 3D 时重点变在哪里。
- 形成小项目练习路线。
- 避免新手常见的过度架构。
12.1 你现在应该掌握什么
完成本课程后,你应该能独立做出一个简单 2D 小游戏:
- 有主场景、玩家场景、敌人场景、HUD 场景。
- 玩家能移动并受边界限制。
- 敌人能定时生成、移动、离开屏幕后删除。
- 碰撞能扣生命。
- UI 能显示分数和生命。
- 有基础动画、音效和 Game Over。
- 能读常见报错。
- 能用 Git 保存项目历史。
- 能导出桌面或 Web 试玩包。
这已经覆盖了很多小型 2D 游戏的主干。
12.2 学 3D 时变了什么
3D 不是“更高级的 2D”,它多了空间、相机、光照、材质、网格、碰撞体、导航等问题。
| 2D | 3D |
|---|---|
Node2D | Node3D |
CharacterBody2D | CharacterBody3D |
Sprite2D | MeshInstance3D |
CollisionShape2D | CollisionShape3D |
| 2D 坐标 | 3D 坐标和相机 |
建议先把 2D 的场景拆分、信号、状态管理、调试习惯练熟,再进入 3D。
12.3 三个练习项目
项目 1:躲避小游戏增强版
- 增加开始按钮和重新开始。
- 增加两种敌人速度。
- 增加最高分。
- 增加暂停。
项目 2:俯视角收集游戏
- 玩家移动。
- 随机生成金币。
- 收集加分。
- 倒计时结束。
项目 3:简单平台跳跃
- 重力和跳跃。
- 地面和平台。
- 掉落死亡。
- 关卡切换。
每个项目都控制在 1 到 2 周,完成比宏大更重要。
12.4 什么时候需要架构
新手不需要一开始就做复杂框架。先用直接清晰的节点和脚本完成玩法。出现这些信号时再整理架构:
- 同一段逻辑复制了三次。
- 一个脚本超过几百行,既管 UI 又管敌人又管存档。
- 很多节点互相找路径,稍微改结构就全坏。
- 新增敌人类型需要改很多旧代码。
整理方向:
- 把数据放进 Resource。
- 把跨场景状态放进少量 Autoload。
- 用信号减少硬编码节点路径。
- 把可复用对象拆成独立场景。
12.5 学习资料怎么选
选择 Godot 教程时先确认版本。本课程基于 Godot 4.6.3。Godot 3.x 和 4.x 有不少 API 和节点命名差异,4.7 beta 或后续版本也可能出现新功能或行为变化。跟教程做项目时,不要只复制代码,要记录每个节点为什么存在。
判断教程是否适合新手:
- 使用 Godot 4.6.3,或者明确说明和 4.6.3 的差异。
- 不要求大量外部素材。
- 每一步能运行验证。
- 解释节点结构,而不是只贴最终代码。
- 有调试和常见错误说明。
12.6 结课练习
为 DodgeStarter 做一次小版本发布:
- 清理临时 print。
- 确认没有红色错误。
- 更新 README,写明玩法和控制方式。
- 用 Git 创建提交
Prepare v0.1.0 release。 - 打 tag
v0.1.0。 - 导出一个桌面包或 Web 包。
- 找一个没参与开发的人试玩。
- 根据反馈写下一版计划。
检查点
- 你知道下一步练习应该小而完整。
- 你知道架构是为了解决真实重复和复杂度,不是为了显得专业。
- 你能把一个 Godot 项目从空目录做到可试玩版本。