三个月学习路线与常见误区
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 的那几个。
三个月走完,你手上应该有一个上线的小游戏、一套能复用的工程模板、一份踩坑笔记。这份笔记比游戏本身值钱,因为它是你的经验换来的。接下来的路径取决于你想要什么:想做更复杂的玩法,去啃物理和渲染;想做多端发行,去研究构建选项的差异;想做工具链,去写编辑器扩展。总之,接下来半年不要再学新的引擎,把这一个做透。
给三个月后的自己留一句话:遇到搞不定的问题,先怀疑工程配置,再怀疑引擎,再怀疑自己的代码。这个顺序救过我好几次。
