首页 > 其他分享 >爆肝200+小时,总结出的 Creator 3.x 入门修炼指南!全免费

爆肝200+小时,总结出的 Creator 3.x 入门修炼指南!全免费

时间:2023-03-02 14:25:20浏览次数:57  
标签:200 教程 游戏 Creator 引擎 UI 全免费 3D

大家好,我是晓衡!

为了写这篇文章,给支持公众号的读者们一个交代,我准备了200+小时,公众号断更11天。我决定,不再选择逃避,不想再欺骗自己了。

file

2023新年开工,不到十天时间,接二连三有小伙伴找到晓衡,恳求推荐一些 Cocos Creator 3.x 的学习方法或入门课程,而且课程最好是付费的。

file

承蒙老铁们的信任,让我倍受感动,但又让我感到异常尴尬!

因为有好多东西,我也不会。

还有就是,偌大的一个 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 站。

image-20230209104059859

请注意,晓衡这里提供的是一条学习路径!需按从上到下的顺序依次学习。

选出的这5套视频教程,我是从内容的宽度、深度、课程节奏感,并结合多年来了解到的新手常见问题,等诸多方面去感受和评估。

遵循由浅入深,循序渐进原则,只要你对游戏开发感兴趣,会使用计算机软件,可以大胆放手去尝试。

可能有人会尖叫,要学5门课程啊?入门教程找一个适合自己段位的,不行吗?为什么要搞这么多呢?

起初我也是这么想的,但正本文开头所说,一些老铁们遇到的情况,以及晓衡这两年来的切身感受。

单门的教程,无法做到同时兼顾引擎知识点的宽度和深度,游戏案例不够多样化,学习效果不太是必然的。

而且从 2D 到 3D 这个跨越难度,不是通过几个小时的视频学习就能轻易跨越,做个不太恰当的比喻,就好像:

在斗破苍穹中,要成为一名斗师,你需将自身的斗气从一段练至九段。

凡人修仙传中,要想成为一名正真的修仙者,需要经过炼气期的一至九层的修炼。

游戏开发,特别是 3D 游戏开发,同样需要先“炼气”打下根基,我总结以下三方面:

  • 引擎功能基础
  • 编程语言表达
  • 游戏开发经验

像麒麟子的《方块先生》不论是在引擎与编程语言上,都力求专一、简洁、纯粹,特别照顾到初学者的体验。

而像巧哥与 sli97 的教程,更偏重引擎、玩法与编程语言相结合的游戏开发实战。

放空、Blake老师的课程,则是侧重可视化编辑器、3D基础概念、引擎API,细致入微的保姆级教程。

如果你没有太多的 3D 经验,就先去学太多的 3D 概念、界面属性、引擎 API,估计就会像我之前一样,越学越怕。

废话我就不多说了,下面我先介绍 0 ~ 6 层的修练功法与路径,它包含两套功法教程,你大概每天抽 2 小时进行学习的话 7 ~ 10 天就能完成,然后就可以开始创作自己构思的游戏了。Let's Go!

02

麒麟子的《零基础游戏开发入门——方块先生》总共时长2小时9分。

割草视频教程目录.002

视频我完整看了两遍,第一遍是在去年中秋,大概用了3个小时,一次性看完,几乎没有什么压力。但当时没有去做练习,我一直以为这么简单的游戏,自己肯定能搞定,但实际上......呵呵,你懂的!

第二遍是在 2.7 ~ 2.8 两天,大概用了5个小时。我严格跟着麒麟子视频教程中的思路去操作,并按每集视频,还做了分集源码工程。

image-20230210145345283

一起来看下《方块先生》所包含的主要知识点:

  1. Cocos Creator 引擎下载与安装
  2. 引擎编辑器窗口功能与基本操作
  3. 3D基础概念:模型、材质、光照、阴影、相机
  4. 面向对象编程概念,TypeScript 脚本
  5. 3D物理:刚体与碰撞实现游戏核心玩法
  6. 关卡设计思路,关卡编辑与预制体
  7. 游戏UI逻辑设计思路:按钮事件、系统事件、自定义事件

我再简单说下我对这套视频教程的个人感受:

  • 一集视频,一个知识点,游戏案例用不上的一概不会讲,没有干扰,最多提示一下相关专题参考(文末我会给大家整理出来);
  • 一节视频大约5~8分钟,有操作、讲原理、给效果,跟着步骤操作,就能将案例做出来,即时反馈感强;(一定要亲自去练习,不要以为简单,大多数人学不会很大程度上就是自以为是)
  • 项目共计有 6 个 TypeScript 脚本文件,代码量非常少,除去模板和空行,大概自己写的到不150行,学起来会很轻松。(建议学完后,关掉视频,按自己的思路再实现一遍)

麒麟子的《方块先生》这套视频教程,是我目前所接触到,最适合零基础小伙伴入门的 Creator 3.x 视频教程,而且没有之一。

对于一些有过编程经验,但又像晓衡一样,没经历过 3D 项目经验的人来说,你会发现 3D 好像也没那么复杂。

奔跑吧小鸡

这张图是我在学完《方块先生》后,开始的一个练习小游戏,暂时取名叫《奔跑吧小鸡》,有没有觉得比《方块先生》更带感呢?

《方块先生》推荐人群:

  • 零基础初学者,会中文与26个英语字的同学
  • 有编程经验,但没有做过游戏的程序员
  • 做2D游戏,希望学习 Creator 3D 游戏开发的同学

推荐指数:★★★★★

难度指数:★☆☆☆☆

必练指数:★★★★★

03

如果你能通关《方块先生》并能自己独立完成一遍游戏,大概能达到“炼气期”的第2 ~ 3层的水平,我们继续!

image-20230210094338297

接下来是巧哥的《Cocos Creator 从零开始开发 3D 俯视角割草游戏制作》后面我都简称《3D俯视角割草》。看原名,你有没有看出一点什么?

刚开始晓衡也没注意到,把它当成了一门零基础的教程,当我把视频通看了一遍才发现,上当了!标题是“从零开始开发”,而非“零基础开发”。

下来我问过巧哥,他对我说:

这套教程不是给零基础准备的,最好是有一定的编程基础。

项目中用到的引擎 3D 功能并不多,侧重点是从零开始,手写游戏的每一行代码,没有用什么库、框库,完全手打。内容从 Cocos Creator 3.x 2D UI 到 3D 核心玩法,这样一套,完整的游戏开发、设计、编码过程的一套视频。

教程还没有完结,目前B站视频出到30集。但晓衡发现,这并不妨碍我们通过这套视频来进阶学习 Cocos Creator 3D 游戏开发。原因有三点:

  1. 《方块先生》是先讲引擎3D ,后讲游戏UI,而《3D俯视角割草》是先讲游戏UI,再讲3D,最后是3D、游戏逻辑、UI的融合,前期同时会讲更多的引擎编辑器的运用;
  2. 如果你有 Creator 2.x 开发经验,可以直接用这套视频上手 Creator 3.x 逐渐从 2D 过渡到 3D;
  3. 不用担心会遇到什么复杂的算法,割草不是核心,它仅仅是游戏的核心玩法而已。重点是,一个3D游戏它是怎么炼成的。
  4. 因此《3D俯视角割草》我把设定位为《方块先生》的进阶教程,以下是主要学习内容,请注意加粗的文字:

因此《3D俯视角割草》我把设定位为《方块先生》的进阶教程,以下是主要学习内容,请注意加粗的文字:

  1. 开发环境搭建,代码调试方法;
  2. 引擎编辑器窗口功能与操作,项目资源管理
  3. 游戏UI开发设计:屏幕适配、UI策略与管理、自定义UI组件、内置常用UI组件
  4. 常用设计模式和工具:事件机制、数据存档、状态机、单例模式、内存池
  5. 引擎物理系统:刚体、碰撞、3D角色的物理移动与旋转
  6. 动画系统:动画编辑、动画挂点帧事件
  7. 角色设计:玩家、怪物的逻辑实现与管理(游戏开发经验
  8. 技能设计:技能、特效的逻辑实现与管理(游戏开发经验

整个视频教程的前 20 集,难度比较平稳,主要以实现游戏 UI 逻辑,讲解引擎内置 UI 组件的使用。

同时,巧哥还会分享独特的 UI 开发经验,我也算是个老 UI 程序员了, 而巧哥所讲的 UIRoot 的开发思路,让人别开生面。

但到了最后 10 集左右,难度就开始陡峭起来了,综合运用到以下能力:

  • 更多的引擎 API 的使用,而非可视化的组件
  • 一些你可能没见过 TypeScript 语法表达方式
  • 对代码性能考虑,涉及到的一些编码技巧
  • 涉及一些3D向量数学的计算
  • 游戏逻辑框架,代码的模块化

你看视频会发现,UI章节讲完过后,涉及游戏核心玩法部分,巧哥的编码速度、思路比之前要快,一些数学计算、API参数没看懂可以下来查文档,但设计思路、代码逻辑一定要跟上并理解。

而且有一些章节,巧哥在写完代码后,没有立即演示效果,就说拜拜了,可能对新手没有那么友好,我建议你在看完后,一定要去做练习(我猜测,巧哥为了控制每集视频的时长,在后期剪辑时,将一些认为不重要的内容剪掉了)。

《3D俯视角割草》的教程后期,会涉及引擎功能、编程语言、玩法实现、UI逻辑等多方面的融合。

如果没有源码在手,而是要跟着视频一行一行地敲代码,估计你会学得非常辛苦,这也是我为什么要费尽心思,邀请巧哥将代码上架到 Cocos Store 的原因。

image-20230210183628509

初学者经常缺乏这方面经验:学会了游戏引擎的功能,却不知如何将其应用于具体游戏设计中以解决问题。

而巧哥这套《3D俯视角割草》视频教程,除了讲解 Creator 3.x 引擎知识外,同时也是在传授游戏开发的实战经验和设计思路。

如果能将教程中的知识点吸收殆尽,我相信,自己的3D游戏开发水平将会有质的飞跃,至少能冲到“炼气期”的第5层,甚至达到第6、7层。

  • 虚拟摇杆:UIJoyStick
  • 图片美术字:UIIMageLabel
  • 资源管理器:ResourceManager
  • UI管理器:UIManager
  • 音效管理器:AudioManager
  • 特效管理器:EffectManager

如果能将教程中的知识点吸收殆尽,相信你的游戏开发水平将会有质的飞跃,大概能冲到“炼气期”的第5层,甚至达到第6层。

file

《3D俯视角割草》推荐人群:

  • 没有引擎基础,但要有点编程经验的同学
  • 做过2D游戏开发经验,想尝试学习3D游戏开发的同学
  • 对3D角色RPG游戏感兴趣的同学

推荐指数:★★★★★

难度指数:★★★☆☆

必练指数:★★★☆☆

04

如果你感觉《3D俯视角割草》的后期有一定的难度,可以先放缓一点,有些东西,需要时间的沉淀。

能将源码看明白,就可以接着学习放空老师的《3D打飞机》,这是一套保姆级教程,手把手教学,深入学习 Cocos Creator 引擎编辑器与组件化开发的知识。

还有另外还有两套入门视频教程,晓衡目前只看到60%~70%,还没有总结好,后面找机会再来分享。

我接下来再说一个,常常被初学者忽略,而又是真正的大佬们,经常使用到的两件法宝:官方文档手册引擎API

Cocos Creator 用户手册

image-20230210190151705

比如,你在闭卷手写《方块先生》时,突然忘记了物理碰撞事件怎么监听了,你可以直接在文档手册中搜索:物理事件

image-20230210200738552

你在视频教程中接触到的一些专业术语、名词、概念,强烈建议你通过文档手册中搜索出来,并仔细阅读。

有可能你会说,我看过呀,就是看不太懂!这个没关系,现在看不懂很正常的。

打个照面,混个脸熟!你先通过文档了解引擎的大致功能范围,最好是把它当做一本 Cocos Creator 的入门教科书,一本引擎字典大全来对待,有遇到不清楚的就在这里查。

没事就多翻翻,一些灵感或解决方法,或许就来源于一天晚上,你辗转难眠之时,不经意随手翻到的一个API,在此之前,怎么都看不明白。

引擎API手册

自从去年 Creator 3.4.0 发布,新版 API 手册也同时上线,文档美观易用,一直被社区开发者垢病的 API 文档问题终于被解决。

image-20230210190420714

有遇到搞不明白的引擎接口,直接往这里丟,比如你想了解更多 NodePool 节点池使用方法、接口、示例都可以在这里找到。

image-20230210202852698

浏览、阅读引擎官方文档,是修炼游戏开发的重要途径。如果说将视频教程,看成是技法招式的话,那研读引擎文档,就好比修仙者们日常的冥想、吐纳、练精化气。

因此,只有将视频教程与官方文档相结合的学习方式,才能帮助到你,在脱离教程、源码之后,能独立开发出自己构思的游戏。

05

不论是视频教程,还是文档手册,其实它们都是在做知识的输入,只做到了学习的前半部分『学』字。

而真正想习得一个新的技能,是需要经历一个『学』和『习』的完整闭环,它包含:输入→内化→输入→反馈→再输入的过程,周而复始。

image-20230211105022772

因此,学完教程后的练习是绝对必要的。

我的学习方法是,刚开始先跟着教程中的案例做一遍,后面再尝试关掉视频和源码,并根据自己理解和文档的支持,再实现一遍。

这样可以检验到,我有哪些地方还没搞明白,没记清楚或已经忘记了,先做一遍对内反馈。

再进一步,我会在教程中的游戏案例基础上,对美术外观和游戏玩法加以改进。并将修改后的游戏 Demo 通过H5、小游戏等方式,分享给朋友,分享到社区,这样能够获得更多的外部反馈和有效激励。

奔跑吧小鸡

在开发的过程中,我也会尝试以图片、视频的方式分享到朋友圈,获得即时的满感。

总之,要尽可能想办法,去完成整个学习的闭环过程,如果再能写出总结性的心得、体会那效果就更好了。

06

没想到写了这么多,如果这篇文章能为你带来哪怕是一丁点的帮助,提升你一点信心,能让你有所期待,遇见更好的自己,也或许在未来的某个时刻,能让你真正的行动起来,我就感到非常地满足了!

最后,特别感谢,一直在 Cocos 社区坚持长期分享技术、经验的大佬们!

上面五套视频教程链接,我放在了公众号,回复【888】直接领取。

更多精彩请关注Creator星球游戏开发社区

标签:200,教程,游戏,Creator,引擎,UI,全免费,3D
From: https://www.cnblogs.com/creator-star/p/17171617.html

相关文章

  • 洛谷P4051 [JSOI2007]字符加密 题解 后缀数组sa的应用
    题目链接:https://www.luogu.com.cn/problem/P4051题目大意:给定一个长度为\(n\)的字符串\(s\),每次将\(s\)的首字符取出放到末尾……这样能得到\(n\)个字符串。将......
  • 500mA,TPS73512QDRBRQ1开关稳压器200mA,TPS72325QDBVRQ1电路图
    1、TPS735-Q1低压降(LDO),低功耗线性稳压器系列产品能够提供出色的交流性能,同时还能保证极低的接地电流。可提供高电源抑制比(PSRR)、低噪声、快速启动以及出色的线路和负载......
  • NEERC2002解题报告
    比赛传送门A.AmusingNumbers题意:定义\(n\)以内\(k\)的排名为,数字大小在\(1\simn\)的数字中,字典序小于等于\(k\)的数字个数。给定\(k,m\),求最小的\(n\),使得......
  • NEERC2009解题报告
    B.BusinessCenter有\(m\)个电梯,每个电梯有两个权值\(a,b\),初始在第\(0\)层。你可以选择一个电梯,进行恰好\(n\)次操作,每次要么升高\(a\)要么下降\(b\)。要求......
  • BL200UA采集工业现场数据对接MES系统方案
    OPCUA选择为MES系统接入协议的原因有很多。首先,OPCUA具有跨平台、跨系统和跨设备的能力,可以实现不同系统之间的互操作性;其次,它支持高安全性,可以实现安全的数据传输;此外,OP......
  • 用C#制作含万年历的台历(2009年样张)之1
    先贴出图片,有空用C#程序实现1901-2049年的台历制作(用微软.netFramework2.0可实现到2100年)。图1 2009年7月台历正面样式图2 2009年8月台历正面样式图3 2009年9月台历......
  • 用C#制作含万年历的台历(2009年样张)之2
     上篇《用C#制作含万年历的台历(2009年样张)之1》给出了台历的各种实样图,从这篇开始我将用程序写出各个台历样式的实现。本篇说说大致的框架,好象建房子一样,先搭框架,框架答好......
  • 元旦了,发布一个2009年的年历模板
     元旦了,发布一个2009年的年历模板。(下载地址在这里找到“2009年万年历模板”之后点击下载,下载之后的文件名为:ChineseCalendar4c_3r.png)你可以使用Photoshop或其他图像处理......
  • 距离北京奥运还有359天,发布WPF版本的北京2008标志(下)
    图片显示效果: XAML代码:<ViewboxWidth="463.548828"Height="370.816895"xmlns="​​​http://schemas.microsoft.com/winfx/2006/xaml/presentation​​​"xmlns:x=......
  • NOIP2007
    importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);intn=input.ne......