大家好,我是晓衡!
为了写这篇文章,给支持公众号的读者们一个交代,我准备了200+小时,公众号断更11天。我决定,不再选择逃避,不想再欺骗自己了。
2023新年开工,不到十天时间,接二连三有小伙伴找到晓衡,恳求推荐一些 Cocos Creator 3.x 的学习方法或入门课程,而且课程最好是付费的。
承蒙老铁们的信任,让我倍受感动,但又让我感到异常尴尬!
因为有好多东西,我也不会。
还有就是,偌大的一个 Cocos 社区,据我所了解的付费课程,却是九牛一毛。
而我真实体验过的 Creator 付费课程,那是我自己曾在 2020 年时搞的 Creator 修仙训练营了。遗憾的是,那是基于 Creator 2.x 的,Creator 3.x 对晓衡来说,我也只能算是个新手。
付费的课程没有,但 Cocos 社区免费的教程,我倒是知道不少:
放空老师的《快上车》、《3D打飞机》
麒麟子的《方块先生》
Blake老师的《幽灵射手—源码实战分析》
sli97的《Cramped Room Of Death》
巧哥的《3D俯视角割草游戏》
......
不过有小伙伴表示,上面的视频有些也尝试学习过,像引擎安装、下载、换皮......倒是学会了好几遍。
但是,要自己去实现一个功能时,总是在各种小问题上,就被卡住了。
学习资料找了不少,但大佬们分享的游戏源码、技术文章,仍然是看不懂、学不会......只能在大佬面前喊666!
01
上面这些问题,晓衡自问,自己也何尝不是如此?
自从 2020 年开始,我从一名程序员转型自媒体+运营,虽然一直社区中分享 Cocos Creator 相关的教程、案例、资源,但我个人的游戏开发水平,基本上还停留在 Creator 2.x 的时代。
随着 Creator 3.x 的越发普及,越来越多的 3D 相关的游戏、应用、教程、资源等需求不断增涨......我那点技术水平,究竟还能帮助到大家些什么呢?
为此,晓衡再三思量,翻遍了B站上成体系的 Creator 3.x 视频教程,完全以初学者的姿态,去亲身体验、观摩、学习...惊喜地发掘出一条适合 Creator 3.x 初学者的学习路径和修炼方法。
整理出 5 套免费视频教程,来源于 B 站,视频链接我已放到了文章末尾。
请注意,晓衡这里提供的是一条学习路径!需按从上到下的顺序依次学习。
选出的这5套视频教程,我是从内容的宽度、深度、课程节奏感,并结合多年来了解到的新手常见问题,等诸多方面去感受和评估。
遵循由浅入深,循序渐进原则,只要你对游戏开发感兴趣,会使用计算机软件,可以大胆放手去尝试。
可能有人会尖叫,要学5门课程啊?入门教程找一个适合自己段位的,不行吗?为什么要搞这么多呢?
起初我也是这么想的,但正本文开头所说,一些老铁们遇到的情况,以及晓衡这两年来的切身感受。
单门的教程,无法做到同时兼顾引擎知识点的宽度和深度,游戏案例不够多样化,学习效果不太是必然的。
而且从 2D 到 3D 这个跨越难度,不是通过几个小时的视频学习就能轻易跨越,做个不太恰当的比喻,就好像:
在斗破苍穹中,要成为一名斗师,你需将自身的斗气从一段练至九段。
凡人修仙传中,要想成为一名正真的修仙者,需要经过炼气期的一至九层的修炼。
游戏开发,特别是 3D 游戏开发,同样需要先“炼气”打下根基,我总结以下三方面:
引擎功能基础
编程语言表达
游戏开发经验
像麒麟子的《方块先生》不论是在引擎与编程语言上,都力求专一、简洁、纯粹,特别照顾到初学者的体验。
而像巧哥与 sli97 的教程,更偏重引擎、玩法与编程语言相结合的游戏开发实战。
放空、Blake老师的课程,则是侧重可视化编辑器、3D基础概念、引擎API,细致入微的保姆级教程。
如果你没有太多的 3D 经验,就先去学太多的 3D 概念、界面属性、引擎 API,估计就会像我之前一样,越学越怕。
废话我就不多说了,下面我先介绍 0 ~ 6 层的修练功法与路径,它包含两套功法教程,你大概每天抽 2 小时进行学习的话 7 ~ 10 天就能完成,然后就可以开始创作自己构思的游戏了。Let's Go!
02
麒麟子的《零基础游戏开发入门——方块先生》总共时长2小时9分。
视频我完整看了两遍,第一遍是在去年中秋,大概用了3个小时,一次性看完,几乎没有什么压力。但当时没有去做练习,我一直以为这么简单的游戏,自己肯定能搞定,但实际上......呵呵,你懂的!
第二遍是在 2.7 ~ 2.8 两天,大概用了5个小时。我严格跟着麒麟子视频教程中的思路去操作,并按每集视频,还做了分集源码工程。
一起来看下《方块先生》所包含的主要知识点:
Cocos Creator 引擎下载与安装
引擎编辑器窗口功能与基本操作
3D基础概念:模型、材质、光照、阴影、相机
面向对象编程概念,TypeScript 脚本
3D物理:刚体与碰撞实现游戏核心玩法
关卡设计思路,关卡编辑与预制体
游戏UI逻辑设计思路:按钮事件、系统事件、自定义事件
我再简单说下我对这套视频教程的个人感受:
一集视频,一个知识点,游戏案例用不上的一概不会讲,没有干扰,最多提示一下相关专题参考(文末我会给大家整理出来);
一节视频大约5~8分钟,有操作、讲原理、给效果,跟着步骤操作,就能将案例做出来,即时反馈感强;(一定要亲自去练习,不要以为简单,大多数人学不会很大程度上就是自以为是)
项目共计有 6 个 TypeScript 脚本文件,代码量非常少,除去模板和空行,大概自己写的到不150行,学起来会很轻松。(建议学完后,关掉视频,按自己的思路再实现一遍)
麒麟子的《方块先生》这套视频教程,是我目前所接触到,最适合零基础小伙伴入门的 Creator 3.x 视频教程,而且没有之一。
对于一些有过编程经验,但又像晓衡一样,没经历过 3D 项目经验的人来说,你会发现 3D 好像也没那么复杂。
这张图是我在学完《方块先生》后,开始的一个练习小游戏,暂时取名叫《奔跑吧小鸡》,有没有觉得比《方块先生》更带感呢?
《方块先生》推荐人群:
零基础初学者,会中文与26个英语字的同学
有编程经验,但没有做过游戏的程序员
做2D游戏,希望学习 Creator 3D 游戏开发的同学
推荐指数:★★★★★
难度指数:★☆☆☆☆
必练指数:★★★★★
03
如果你能通关《方块先生》并能自己独立完成一遍游戏,大概能达到“炼气期”的第2 ~ 3层的水平,我们继续!
接下来是巧哥的《Cocos Creator 从零开始开发 3D 俯视角割草游戏制作》后面我都简称《3D俯视角割草》。看原名,你有没有看出一点什么?
刚开始晓衡也没注意到,把它当成了一门零基础的教程,当我把视频通看了一遍才发现,上当了!标题是“从零开始开发”,而非“零基础开发”。下来我问过巧哥,他对我说:
这套教程不是给零基础准备的,最好是有一定的编程基础。
项目中用到的引擎 3D 功能并不多,侧重点是从零开始,手写游戏的每一行代码,没有用什么库、框库,完全手打。
教程还没有完结,目前B站视频出到30集。但晓衡发现,这并不妨碍我们通过这套视频来进阶学习 Cocos Creator 3D 游戏开发。原因有三点:
《方块先生》是先讲引擎3D ,后讲游戏UI,而《3D俯视角割草》是先讲游戏UI,再讲3D,最后是3D、游戏逻辑、UI的融合,前期同时会讲更多的引擎编辑器的运用;
如果你有 Creator 2.x 开发经验,可以直接用这套视频上手 Creator 3.x 逐渐从 2D 过渡到 3D;
不用担心会遇到什么复杂的算法,割草不是核心,它仅仅是游戏的核心玩法而已。重点是,一个3D游戏它是怎么炼成的。
因此《3D俯视角割草》我把设定位为《方块先生》的进阶教程,以下是主要学习内容,请注意加粗的文字:
开发环境搭建,代码调试方法;
引擎编辑器窗口功能与操作,项目资源管理;
游戏UI开发设计:屏幕适配、UI策略与管理、自定义UI组件、内置常用UI组件
常用设计模式和工具:事件机制、数据存档、状态机、单例模式、内存池
引擎物理系统:刚体、碰撞、3D角色的物理移动与旋转
动画系统:动画编辑、动画挂点、帧事件
角色设计:玩家、怪物的逻辑实现与管理(游戏开发经验)
技能设计:技能、特效的逻辑实现与管理(游戏开发经验)
整个视频教程的前 20 集,难度比较平稳,主要以实现游戏 UI 逻辑,讲解引擎内置 UI 组件的使用。
同时,巧哥还会分享独特的 UI 开发经验,我也算是个老 UI 程序员了, 而巧哥所讲的 UIRoot 的开发思路,让人别开生面。
但到了最后 10 集左右,难度就开始陡峭起来了,综合运用到以下能力:
更多的引擎 API 的使用,而非可视化的组件
一些你可能没见过 TypeScript 语法表达方式
对代码性能考虑,涉及到的一些编码优化技巧
涉及一些 3D 向量数学的计算
游戏逻辑代码框架,模块化的游戏开发经验
你看视频会发现,UI章节讲完过后,涉及游戏核心玩法部分,巧哥的编码速度、思路比之前要快,一些数学计算、API参数没看懂可以下来查文档,但设计思路、代码逻辑一定要跟上并理解。
而且有一些章节,巧哥在写完代码后,没有立即演示效果,就说拜拜了,可能对新手没有那么友好,我建议你在看完后,一定要去做练习(我猜测,巧哥为了控制每集视频的时长,在后期剪辑时,将一些认为不重要的内容剪掉了)。
《3D俯视角割草》的教程后期,会涉及引擎功能、编程语言、玩法实现、UI逻辑等多方面的融合。
如果没有源码在手,而是要跟着视频一行一行地敲代码,估计你会学得非常辛苦,这也是我为什么要费尽心思,邀请巧哥将代码上架到 Cocos Store 的原因(下载链接我放到了文章末尾)。
初学者经常缺乏这方面经验:学会了游戏引擎的功能,却不知如何将其应用于具体游戏设计中以解决问题。
而巧哥这套《3D俯视角割草》视频教程,除了讲解 Creator 3.x 引擎知识外,同时也是在传授游戏开发的实战经验和设计思路。
如果能将教程中的知识点吸收殆尽,我相信,自己的3D游戏开发水平将会有质的飞跃,至少能冲到“炼气期”的第5层,甚至达到第6、7层。
《3D俯视角割草》推荐人群:
没有引擎基础,但要有点编程经验的同学
做过 2D 游戏开发经验,想尝试学习 3D 游戏开发的同学
对 3D 角色 RPG 游戏感兴趣的同学
推荐指数:★★★★★
难度指数:★★★☆☆
必练指数:★★★☆☆
04
如果你感觉《3D俯视角割草》的后期有一定的难度,可以先放缓一点,有些东西,需要时间的沉淀。
能将源码看明白,就可以接着学习放空老师的《3D打飞机》,这是一套保姆级教程,手把手教学,深入学习 Cocos Creator 引擎编辑器与组件化开发的知识。
还有另外还有两套入门视频教程,晓衡目前只看到60%~70%,还没有总结好,后面找机会再来分享。
我接下来再说一个,常常被初学者忽略,而又是真正的大佬们,经常使用到的两件法宝:官方文档手册 和 引擎API。
Cocos Creator 用户手册
比如,你在闭卷手写《方块先生》时,突然忘记了物理碰撞事件怎么监听了,你可以直接在文档手册中搜索:物理事件。
你在视频教程中接触到的一些专业术语、名词、概念,强烈建议你通过文档手册中搜索出来,并仔细阅读。
有可能你会说,我看过呀,就是看不太懂!这个没关系,现在看不懂很正常的。
打个照面,混个脸熟!你先通过文档了解引擎的大致功能范围,最好是把它当做一本 Cocos Creator 的入门教科书,一本引擎字典大全来对待,有遇到不清楚的就在这里查。
没事就多翻翻,一些灵感或解决方法,或许就来源于一天晚上,你辗转难眠之时,不经意随手翻到的一个API,在此之前,怎么都看不明白。
Cocos Creator 引擎 API 手册
自从去年 Creator 3.4.0 发布,新版 API 手册也同时上线,文档美观易用,一直被社区开发者垢病的 API 文档问题终于被解决。
有遇到搞不明白的引擎接口,直接往这里丟,比如你想了解更多 NodePool 节点池使用方法、接口、示例都可以在这里找到。
浏览、阅读引擎官方文档,是修炼游戏开发的重要途径。如果说将视频教程,看成是技法招式的话,那研读引擎文档,就好比修仙者们日常的冥想、吐纳、练精化气。
因此,只有将视频教程与官方文档相结合的学习方式,才能帮助到你,在脱离教程、源码之后,能独立开发出自己构思的游戏。
05
不论是视频教程,还是文档手册,其实它们都是在做知识的输入,只做到了学习的前半部分『学』字。
而真正想习得一个新的技能,是需要经历一个『学』和『习』的完整闭环,它包含:输入→内化→输入→反馈→再输入的过程,周而复始。
因此,学完教程后的练习是绝对必要的。
我的学习方法是,刚开始先跟着教程中的案例做一遍,后面再尝试关掉视频和源码,并根据自己理解和文档的支持,再实现一遍。
这样可以检验到,我有哪些地方还没搞明白,没记清楚或已经忘记了,先做一遍对内反馈。
再进一步,我会在教程中的游戏案例基础上,对美术外观和游戏玩法加以改进。并将修改后的游戏 Demo 通过H5、小游戏等方式,分享给朋友,分享到社区,这样能够获得更多的外部反馈和有效激励。
在开发的过程中,我也会尝试以图片、视频的方式分享到朋友圈,获得即时的满感。
总之,要尽可能想办法,去完成整个学习的闭环过程,如果再能写出总结性的心得、体会那效果就更好了。
06
没想到写了这么多,如果这篇文章能为你带来哪怕是一丁点的帮助,提升你一点信心,能让你有所期待,遇见更好的自己,也或许在未来的某个时刻,能让你真正的行动起来,我就感到非常地满足了!
最后,特别感谢,一直在 Cocos 社区坚持长期分享技术、经验的大佬们!下面是本文推荐的5门视频教程链接,建议保存收藏,也欢迎分享给需要的朋友 。
麒麟子《方块先生》
https://www.bilibili.com/video/BV1vK411d7vn
好巧啊c《3D俯角割草游戏》
https://www.bilibili.com/video/BV1Jd4y1c7bS
放空《3D空战射击打飞机》
https://www.bilibili.com/video/BV1HY411H7V5
Sli97《Cramped Room Of Death》
https://www.bilibili.com/video/BV1JL4y1M7Y4
Blake《Cocos Creator 3.0 零基础新手入门教程》
https://bilibili.com/video/BV1dF411W7nA
参考资料
Cocos引擎官方文档
Cocos Creator 用户手册
https://docs.cocos.com/creator/manual/zh/#
Cocos Creator API文档
https://docs.cocos.com/creator/api/zh/
麒麟子《3D游戏开发必学引擎知识》
天空盒动态更换与IBL效果
https://forum.cocos.org/t/cocos-creator-3d-ibl/96623
超级实用的后期效果框架
https://forum.cocos.org/t/topic/123519
实时水面渲染方案
https://zhuanlan.zhihu.com/p/486631970
用实时反射Shader增强画面颜值
https://zhuanlan.zhihu.com/p/475696435
感谢关注晓衡公众号,愿我们一起砥砺前行,共同成长!