三个月学习路线与常见误区

5.1 这条路线是怎么定的

三个月是从「完全没做过 Cocos」到「能独立做完一款小游戏并上线微信小游戏」的时长。Skyline Courier 我从零做到上线用了三个月出头,下面的排期就是按这个节奏倒推出来的。这个判断不是拍脑袋,是按产出倒推的:十二周,每周五必须交出一个能跑的东西,中间不许跳过。

我把这十二周分三段。第一段四周做基础,目标是能独立完成移动、碰撞、UI 这三件事;第二段四周做完整玩法,目标是有一个能从头玩到尾的循环;第三段四周做上线,目标是构建出一个能提交审核的微信小游戏包。

先说一句不适合所有人的部分:如果你已经会 Unity 或者其他引擎,前四周可以压缩到两周,把省下的时间挪到第三段。如果你连 TypeScript 都没写过,这套路线要加两个月,没有别的办法。

5.2 第一阶段:第 1 到 4 周

第 1 周。 装 Creator 3.8,跟着手册的快速上手跑通一个 2D 小游戏。这一周只做一件事:把手感建立起来:节点怎么动、节点树怎么组织、组件挂在哪、Console 报错怎么读。我给自己的产出是「一个方块能在屏幕里用键盘移动,点击能换颜色」。看着简单,但这一周不做完,后面每周都会卡。

第 2 周。 脚本基础。这一周学 TypeScript 在 Cocos 里的用法:生命周期回调、属性装饰器、事件、节点查找。重点不是语法,是 Cocos 的那套约定,什么时候用 getComponent、什么时候用 director、事件怎么注册和销毁。我要求自己写一个能复用的对象池,因为后面大量节点需要频繁创建销毁。

第 3 周。 物理与碰撞。这一周踩 2D 刚体、碰撞器、碰撞回调,还有碰撞分组。分组是最容易卡住的一环,明明 A 不该撞 B 却撞上了。原因无非三个:分组掩码算错、碰撞器挂在错的节点上、有一个节点还带着别的碰撞器。我把这三种情况写成了一张排查清单贴在显示器上。

第 4 周。 UI 与场景。这一周做界面层:Widget 对齐、布局、预制体、场景切换。预制体这个概念要吃透,理解「工厂方法 + 生命周期」这层关系之后,写任何功能都会轻松很多。

四周结束的检验标准很硬:我要能在不查文档的情况下,30 分钟内做出一个带按钮弹窗、输入响应和场景切换的小 demo。

周次 主题 本周必须交出的东西 怎么算过关
第 1 周 编辑器与场景 一个能跑起来的移动方块 demo 换台机器打开工程能直接预览
第 2 周 脚本与事件 对象池 + 事件管理器各一份 连续创建销毁 1000 个对象不卡顿、监听器能正确注销
第 3 周 物理与碰撞 一个躲障碍的小游戏 分组配置正确,无误伤
第 4 周 UI 与场景 带主界面和结算界面的流程 界面在不同分辨率下不错位

5.3 第二阶段:第 5 到 8 周

第 5 周开始做真正的东西。我建议以「最小可玩单元」为单位排期:一周做一个可玩的子系统,四周拼起来就是一个完整游戏。

第 5 周做输入和角色控制。虚拟摇杆、键盘、手势三套输入统一成一个接口,后面接什么设备都只改一层。

第 6 周做核心玩法。这一周最耗时也最有价值。我做的是「寻路 + 障碍 + 目标点」这一组,因为它是这个游戏玩法的骨架。做完要能连续玩十分钟不烦。

第 7 周做结算和数值。这一周不好玩,但绕不过去。得分、评级、奖励、掉落概率,全在这里定。前六周堆的债在这一周一起还。

第 8 周做资源接入和表现层:动画、音效、图集、特效。这一周的重点是把占位资源换成正式资源,同时盯住包体增长。

这四周的核心纪律是:不加新功能,只把已有的东西做扎实。想加功能的冲动留到第三阶段。

5.4 第三阶段:第 9 到 12 周

第 9 周做性能。先做 profiling,找出帧率和内存的热点,而不是凭感觉优化。

第 10 周做微信小游戏构建和真机调试。这周十有八九会碰到只在真机上出现的 bug:资源加载路径在浏览器正常、在小游戏失败,字体渲染不对,触摸事件在低端机上延迟。要留出足够的时间做机型兼容测试。

第 11 周做上线准备:隐私授权、图标启动图、分享配置、审核材料、版本号和热更方案。

第 12 周做提交和复盘。提审、等审核、被驳回是常态,要预留修改时间。

周次 主题 本周必须交出的东西 怎么算过关
第 5 周 输入抽象层 一套输入接口 + 三种输入实现 换输入设备不改业务代码
第 6 周 核心玩法 一个能连玩十分钟的循环 有难度梯度,不重复
第 7 周 数值与结算 完整结算流程和数据表 数值集中在配置里,不散落在代码
第 8 周 资源与表现 正式美术音效接入后的构建 包体在目标范围内
第 9 周 性能 一份 profiling 报告 中端机稳定 60 帧,内存不持续上涨
第 10 周 微信构建 真机可跑的构建包 至少三台不同价位设备验证过
第 11 周 上线准备 隐私弹窗 + 提审材料 隐私接口在授权前不触发采集
第 12 周 提交与复盘 一个提交审核的版本 有一份自己看得懂的复盘文档

5.5 十个最常见的误区

新手踩的坑高度重复。我把最常见的十个列出来,每个都写清楚现象、为什么错、怎么改。

误区 现象 为什么错 怎么改
先纠结渲染管线 还没做一个能玩的场景,就在比较 3.8 的可定制渲染管线、各向异性过滤、后处理效果 2D 俯视视角游戏用不到这些,选型讨论对产出没有帮助 先用默认管线把游戏做完,性能数据出来了再决定要不要换
抄别人的工程结构 从 GitHub 下一个完整商业项目,直接在上面改 别人的结构是为别人的玩法设计的,改着改着既不像原项目也不像自己的 新建空工程,从零搭目录;想要参考就只抄目录命名思路,不抄代码
不用版本管理 目录里堆着几十个 final_v3_真的最终版.prefab,改坏了没法回退 编辑器里的改动几乎无法手动还原 第一天就 git init,assets、settings、extensions 一起提交,.meta 绝不能漏;每次能跑通就 commit 一次
只跟视频不查文档 看视频学,看着都会,一上手就报错 视频跳过的是前置知识,视频里的工程往往有作者自己的隐藏前提 每个视频配一篇官方文档;报错先搜报错原文,再搜视频
把编辑器当 IDE 乱改配置 直接改 settings 目录下的 json,改完编辑器行为诡异 那些文件由编辑器生成,手改会和内存状态冲突 只在编辑器面板里改配置;实在要手改就改完重启编辑器验证
忽略真机测试 编辑器预览一切正常,导出到手机上白屏或者卡死 编辑器是浏览器环境,和小游戏运行环境在资源路径、文件系统、渲染后端上都有差异 每周至少一次真机跑;固定两台低端机作为基准机型
过早抽象自己写框架 写了三层 BaseManager 和一个万能 EventBus,接到第二个玩法时推倒重来 抽象需要第二个实例来验证,只有一个实例的抽象是猜测 同样的逻辑写两遍,第三遍再抽象
把 Cocos 当 Unity 用 习惯性去找 Unity 的对应物,用组件去套组件,代码互相引用 3.x 的组件模型和 Unity 差别很大,硬套会写出别扭的代码 先花一周只用 Cocos 官方文档列出的组件建项目,熟悉再谈类比
不做最小复现 一个 bug 出现就翻遍整个工程 排查成本随工程规模线性上升 先用空工程复现,复现不了就是工程配置问题,比对差异
堆素材不优化 几十张大图直接丢进 resources,构建包 40MB 被微信拒 resources 里的东西全部进包,不做分包和纹理压缩迟早超限 从第一天就规划 bundle 和图集,贴图导入时就定压缩格式

这十条里,版本管理和真机测试是最容易被跳过、代价又最大的两条。版本管理只要第一天花二十分钟配好就一劳永逸;真机测试只要养成每周跑一次的习惯。我带过的新人里,栽得最惨的不是不会写代码的那几个,是从不 commit 的那几个。

三个月走完,你手上应该有一个上线的小游戏、一套能复用的工程模板、一份踩坑笔记。这份笔记比游戏本身值钱,因为它是你的经验换来的。接下来的路径取决于你想要什么:想做更复杂的玩法,去啃物理和渲染;想做多端发行,去研究构建选项的差异;想做工具链,去写编辑器扩展。总之,接下来半年不要再学新的引擎,把这一个做透。

给三个月后的自己留一句话:遇到搞不定的问题,先怀疑工程配置,再怀疑引擎,再怀疑自己的代码。这个顺序救过我好几次。

5.6 相关阅读