究竟是有多新手,是完全不会变成还是会一点编程?做游戏开发,肯定要会写代码。
下面是我在B站写得一个文章,是专门根据我自己的学习cocos creator的经历写的一个视频教程指路。
<hr/>20221025 增加部分有关论坛学习,自主学习的内容
20201017更新
因为不适应unity的编译速度(每次运行都要4-5秒甚至更多),重新转战cocos creator
20200724更新
个人正在逐步转战unity,cocos的最新消息可能不是很灵通,而且个人也只是做到入门级别而已,不是什么大佬。这篇文章只是推荐给新手入门用的,各位可以有所了解。另外就是个人认为用vscode写cocos的时候其实代码提示不算很充足,不如vs,所以一定一定一定要做好笔记。
以下为原文
在指路之前,想先说一下up主学习cocos creator时的水平以及目前的水平:
小学的时候接触过易语言,不过只会做一个聊天器,还是跟着视频一点一点拼和打出来的,但是有点理解聊天器的原理。
初中的时候学过logo这个小海龟画图的语言。
高中接触了ps和一些剪辑软件。
大学才开始正式学编程,大一上才学会的C语言,跟着一个siki的入门教程
https://www.bilibili.com/video/BV16W411D7sC
做了一个小球跳跳跳捡星星的一个游戏,但是仍然完全不懂C#和unity。因为后面完全没有继续深入学习,只是仿制,为了交学校的作业。
但是后面为了想参加腾讯的微信小游戏大赛,一开始以为只能用cocos来做才能参加,所以就在2020年2月开始的时候学习了cocos,但是因为找的教程不好而且没耐心,没有激情,所以没学下去。最后因为太无聊了,尝试再继续学cocos的时候,女朋友给我推荐了一个教程,正好找到了一些教程对于我来说打好了基础,并且也创造了激情,让我更加有动力学习cocos。
目前的水平:
做了一款游戏《无聊塔防》在taptap上线,得到了一定的反馈,虽然是非常的垃圾的游戏。塔防的思路是我自己设计的。
下面我来介绍一下B站的一系列的cocos教程的优点和缺点,以及推荐理由,希望各位看完。
1、Up主:阿信OL
这是一个号称劝退来当程序员的up主,但是实际上他本身做的很多cocos教程都非常的简单,有意义。
比如以下几个很好玩但是又很好做的悠闲类小游戏。
https://www.bilibili.com/video/BV1TE411v7U1【cocos creator教程】100行代码制作一款小游戏《爆破点点》| 休闲小游戏开发教程-001_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
除了这三个,其实还有其他很有趣有很容易上手的教程,这些教程非常好上手,零基础都可以照着做,做出来的那一瞬间会让你有非常高的成就感,让你更加有动力去学习,并且本身也涉及了一些基础游戏的一些原理以及玩法的基础。阿信本身也做了很多其他的游戏教程比如RPG类的游戏等。算是入门游戏开发的时候应当去看一看的一些教程,因为能够给你成就感,虽然这些可能不是你心目中想做的游戏,但是至少可以从0到1。
优点:快速上手,简单易懂;有针对专门游戏玩法的制作教程。
缺点:缺少完全入门时候比如安装软件过程的演示或者教程。
2、UP主:博毅创为
在说这个up主之前,我要强调一点,基础非常重要!基础可以决定你大施拳脚的程度,而博毅创为的基础是我找了这么多up主和相关资料里面讲的非常透彻的一个。
所以建议阿信ol和博毅创为一起看
博毅创为是一个专门做游戏开发相关教程的商业机构,实际上里面的教程很多都是收费的,但是里面有很多基础教程是免费的。非常的基础,讲的非常透,但是也仅限基础,其他的教程感觉有点啰嗦。另外每节课的视频时长非常的长,如果你不是带着问题来看这个视频的话可能一开始会觉得非常繁琐,所以可以尝试先看一下阿信的教程,找到一些自己疑问的地方,再去看博毅创为的视频巩固基础。
但是有一些问题,博毅创为在做cocos的基础教程的时候使用的cocos版本好像是1.几,比较老,所以有一些知识点和代码和最新版的cocos不太一样,建议大家版本使用2.2.2(目前最新好像是2.3.2,即将移除cc.Action)。也就是阿信常用的版本。这个版本暂时不会做太多的变化
。下面是一些视频教程的推荐
https://study.163.com/course/courseLearn.htm?courseId=1005164022#/learn/video?lessonId=1279542638&courseId=1005164022
博毅创为本身在B站也有一些教程,但是基础教程是在网易云课堂。
B站的教程我就只推一个,好像是转载的,评论下也有博毅创为的官方评论说原作是他本身hhh,个人觉得有点冗长,而且B站的那些教程在网易云课堂都有。
以及博毅创为本身有一些收费教程,我没看过,但是可以看一看,如果习惯他的讲课方式还是非常好的,毕竟长的教程可以得到课堂里更多的细节,得到更多的启发。以及他每天都有直播课,时间多可以看看,个人不太推荐,但是素材可以找他摇一摇。
优点:讲的非常细致,而且从入门到专业都有相关教程
缺点:基础部分版本有点老,代码和用法不同现在;视频较长,有点啰嗦。
以下是个人看过感觉也可以选择的教程。
3、UP主:技术胖
技术胖本身就是做很多的语言和工具的教程,其实技术胖本身这个up主关注一下也可以得到很多干货和行业的知识。
他的cocos教程也是一个入门的过程,算是一个懂编程的程序员摸索cocos的一个教程。
本身来说是一个很好的教程,但是问题和博毅创为一样,版本太久远了,所以很多的用法和现在版本的cocos用法不一样,比如老版本的cc.p和新版本的cc.v2
但是如果是入门阶段,我觉得看一看他的也是比较好的,尤其是
预制体
这个内容,技术胖算是我看过的教程里讲的较为清晰的。
懒得放链接了 因为是从我B站复制粘贴过来的,自己一查就有
优点:较细致,出发点是作为一个新手;预制体部分讲的还不错
缺点:版本过老,很多代码和用法已经不一样了
4、Up主:cocoscreator
这个UP主本身也是做收费教程的,但是他也有一些免费的基础教程,以及收费教程中也有部分的免费教程。但是个人感觉他的基础教程在预制体之后讲的非常混乱,尤其是预制体完全没讲明白,所以个人只推荐预制体之前的部分,其他部分非常不推荐。
这个up主基本上是大家搜索cocos教程就会出现的,质量一般般,前面还是讲的不错的。
优点:前面讲的还不错,涉及一些cocos的一点点坑
缺点:预制体(包括预制体本身)之后的基础课程完全不推荐,完全听不懂。
除了视频教程以外,我想说一下学习cocos的一些其他问题,比如习惯,和耐心,以及如何去寻找自己的成就感。
1、可以做一个简单的游戏,但是在后续过程中要尝试做一个可以逐渐尝到甜头的游戏。
我学习cocos的自我感觉飞速发展的一个阶段,就是我在做我自己做的游戏 无聊塔防 的时候,因为做一个塔防这样的大型游戏,涉及了很多很基本的游戏制作的内容,比如ui的设计,摄像头的移动,炮台分放置,炮台对准敌人,敌人的寻路等等等等非常多的内容,而且很多东西不是教程就可以带来的。无聊塔防是完全是我自己的思路来制作的一个游戏,没有看过任何有关于塔防的游戏教程。很多零碎的代码知识点都是我自己百度,查csdn等方式查到的,更多的是查实现方式而不是思路。而查的过程让我掌握到了很多游戏的细节。
2、选择两款好的浏览器
因为cocos的调试是在浏览器上调试的,所以我个人是准备了一个浏览器用来查资料,一个浏览器测试游戏。这里介绍我使用的两款浏览器,各位可以不用学我,我只是说一下我用的。
QQ浏览器用来查资料,可以更方便的收藏网页。
谷歌浏览器用来调试游戏,兼容性比较好。
3、多看调试出来的信息。
各位在测试cocos的时候,需要经常console.log一下你输出的一些相关信息,来调试你所需要的效果以及测试哪里出了问题。这是一个习惯,反正都是必看的,程序员都得会的。。吧?(我还是萌新)
调试出来的信息就是右下角这种
4、多思考,多自己找一下问题所在,不要马上一遇到就查
制作游戏的一个过程,其实就像在学习其他的语言的时候制作一个项目一样,是一个具有很多逻辑和联系的一个内容。这个阶段我们会遇到很多的bug,但是做一个游戏我们会更加的有逻辑和条理性的去找到我们遇到的那个bug,然后再去根据这个bug去查相应的资料,而不是说一出问题就马上复制报告去查,而是应该先回到你所写的有问题的代码的地方去查看。
5、多百度,多查
因为现在cocos在国内并不算非常非常流行,更多的游戏开发者选择的是unity或者unreal,所以cocos相关的视频教程其实不算特别完善,但是cocos更新的频率又很快,所以更需要在百度上查。
6、如果有可能,找一个朋友一起学习,或者计划参加一个比赛,获得学习动力。
我本身就是非常想去做一个游戏设计师的,所以才会走上游戏开发这条道路。但是我个人仍然是单枪匹马,容易受到没有想到的挫折而放弃,所以在这个时候我结交了很多学习编程或者准备从事游戏开发的朋友。在这里我非常感谢我的高中同学SIDCloud的工作室的大佬,以及学校本身的凌达工作室的大佬,以及我的女朋友给我的支持和鼓励。我想说,首先因为这些人都是从事和你想做的事情有关的事情,游戏开发或者编程,他们多多少少会提供一定的经验。尤其是凌达工作室的大佬,里面有很多学html js css和后端的一些大佬给我意见,因为cocoscreator也是用js来开发的,所以这部分有很多地方是相通的。然后也因为SID他们也打算参加一些创新创业的比赛,然后我们也有了一定的竞争,激发起更多的热情。我也在后面参加了我们学校的游戏设计比赛以及计算机设计大赛,让我有更多的激情去学习cocos以及其他游戏引擎。
7、如果可以,把游戏上传到一些游戏平台
在我的处女座无聊塔防制作出来以后,因为SIDCloud的那个大佬也已经在taptap发布了他的游戏,我个人认为他的游戏质量和玩法不如我的,所以我也打算把我的游戏上传上去。有可能是因为我的游戏的取名取得比较好还是什么其他情况,收到了非常多的人气,以至于大家都给我提出非常多的意见和帮我找出非常多的bug,于是发布以后的几周我花了非常多的时间去维护我的游戏,更新我的游戏版本和玩法。这也算是一种激励的方式。如果你的作品得到了关注,你就会有更多的精力也意愿去维护与创造你的作品。
最后的最后
这里要注意,对于学习,热情这个点真的是非常重要的。无论你的热情来源是什么,有了这份热情与激情,你才会主动投入更多去学习游戏开发。(比如我经常翘了网课去沉迷打代码emmm不要学我)正是这样,才能真正做到持之以恒。
游戏开发和文学创作,音乐创作一样,都是创作作品。我作为一个凡人,更希望的是作品能够得到正面的关注,这样才能让我做出更好的作品,也让我更有动力去创造和完善我的作品。
谢谢各位能看到这里,希望这篇文章可以给你指向一条不错的游戏开发入门的路。
<hr/>
2022.10.25新增 如何学习更多的知识
其实对于一个游戏来说,其实任何人在脑海里都是知道如何大概如何去做一个游戏的。但是在制作游戏的过程中,我们其实会遇到一些我们知道逻辑是怎样的,但是却不知道如何实现。
举个例子,我们想要知道通过摇杆来控制 一个单位的上下左右移动,但是我们却不知道怎么去做摇杆。或者我们知道可以通过摇杆这样的方式去实现,但是怎么来确定摇杆当前定位的位置呢?这个时候其实就需要使用游戏相关的数学函数,来进行角度的计算。这个只是举一个很简单的例子,也就是告诉大家,其实游戏就是由许多小技术,小知识点组成(有的可能比较复杂,比如A*寻路算法,四叉树碰撞检测,RVO2避障算法)是不是听起来很复杂?但是这些是你其实本身就会想到的。
我先说一个我自己常用到的A*寻路算法,我们在知道寻路算法之前,我们是在思考,我们为什么要寻路,那可能是因为,我们的游戏需要有一个敌人跟踪主角并且对主角进行攻击这样一个事情,或者是敌人从起点到达终点,但是路上有障碍物的情况。所以我们在找一种方法,来实现我们想要的功能。
而这些内容,如果你是cocos学习者,有以下几种办法去寻找你想要的功能点如何实现
1、可以很多的去cocos forum去寻找,也就是cocos的官方论坛。cocos官方论坛其实提供了很多技术帖子,又因为cocos是本土化的一个引擎,其实就算因为cocos的发展历程没有unity长,其技术帖子的质量、含金量以及学习门槛是低于一些unity的官方论坛的内容的(虽然unity有许多视频可以补充,但是这正是我接下来要说的
2、可以看unity的技术视频或者帖子。因为游戏引擎之间其实本质上是相通的,比如A*算法并不会局限于你这个引擎能用那个引擎就不能用,尤其是算法层面的东西。个人开发者其实对于很多商业化的高级技术并不是很有大需求,更多的需求应该是尽可能简单但是又能搞得懂的去实现。我A*算法是跟着B站的唐老狮进行学习的,他是一个unityUP主,但是这并不妨碍我最后通过cocos来实现相关的功能(虽然确实需要摸索)。在这期间,我也cocos论坛上找到了如何用孱弱的cocos单线程性能来优化A*算法的性能(比如多边形寻路,比如用队列任务的方式来分配A*算法的计算次数等((时间片轮转算法)考研的,你操作系统复习的怎么样了哈哈哈))
总的来说,第一点,你完全可以好好利用cocos官方论坛来进行学习,毕竟引擎不分家,在论坛里你可以进行查询与提问!论坛里的许多用户也是多引擎学习者,使用者,许多问题其实可以得到很好的解答。第二点就是引擎的许多技术其实是共通的,尤其是一些涉及优化,算法,制作思路这样的内容。无需就是说,你用的是cocos的引擎,你就只能看cocos的教程,那样的话估计一些,比如unity欧拉角之类的概念,因为你只知道查cocos,cocos,而错过了。
诚然,cocos对于unity有许多的优势,比如cocos Web性能好,调试速度快,工作流程流畅性极高等,也有cocos的缺点,比如无法多核优化(可能需要自己去修改引擎实现)等。但是既然选择学习,就不要太局限,完全可以unity,cocos两个一起来嘛!顺带学个unreal可能确实比较吃力,那学个blender混合一下也不是不行?既然都学了游戏开发,建模,美术什么的了,再学个fl做个配乐?直接把自己变得全能一点,以后你开游戏公司的时候岂不是也可以减少人力成本,小赚就是大赚。
以上,共勉。 |