大家好,我是小七,一名独立游戏开发者, 目前正在用Godot这款游戏引擎开发着游戏, 填坑之余抽空写了这篇文章, 来简单谈一谈我使用了一年Godot的感受, 如果你打算入坑Godot的话, 那也许可以看看这篇长文。 考虑到有些人可能只对其中一些内容感兴趣, 但又不想看那么长一大段文字, 所以我会以问题的形式来区分我想讲的内容, 正在观看本文章的朋友,可以只看想看那部分。
选择Godot之前:选择Godot之前我是在用Unity开发游戏的,没继续用Unity是因为我虽然学习了挺久Unity,但在我做出游戏之前我就已经对这个引擎疲惫了,因为你要做一个完整的游戏,真的是需要学习相当多的东西的,特别是在你游戏比较复杂情况下,需要看很多很多的教程,投入很多很多的时间和精力去学习,只看官方文档就能自学的人,那是真大佬了,这种大佬一般都会有数年其他引擎的开发经验。
我觉得我学Unity已经比那些真零基础的人容易了,因为我以前有接触过编程,虽然也只有编程初学者那样的实力,但做一些简单的游戏,也够用了,很多东西都是引擎的函数、接口帮我们完成了,但尽管如此,我还是没有在Unity做出过一个完整的游戏。
感觉最大原因,还是自己游戏开发经验太少了,有些东西不知道应该怎么设计运用管理起来,比如说你的游戏有剧情流程,不同的时候有对话有演出,你就需要写个场景类把这些东西管理好,然后怎么设计这个场景类就成了个问题,如果设计得不好,就会导致写了一大堆意粉代码,让游戏变得非常难维护,这在你游戏如果是剧情向,且流程复杂的时候是很致命的。
其次是Unity学的东西,拼凑起来,始终让我觉得有点无聊,也没有开发出独特或者有趣的游戏机制出来,这么说吧在Unity要让游戏有趣起来,要会的东西真的需要很多,并不是随便入个门就能做出游戏来的。还有个原因是我以前是用RPGMaker做游戏的,也做了几款,其中一款还上架Steam了,但我在这个引擎做的都是RPG,我觉得这在一定影响我的学习和开发,所以我一上来想学的东西,反而是那种稍微困难,后面也难管理的功能,比如说游戏对话,游戏背包、游戏存档,这三个功能基本算是RPGMaker最核心的功能了,当我掌握了这些功能之后,感觉有些疲倦,好像我做的东西都是以前的引擎功能有的,让我觉得没什么新意,然后学会这些功能,我自己也不想做RPG了,于是就顺势放下了Unity这款引擎了。
契机:我选Godot的契机,并不是因为易用性,也并不是因为它开源,更不是因为什么强大的功能,只能说是机缘巧合让我选择了它。我只记得是在23年的某个时间,不知道为什么要学Godot,那个时候Godot已经是4.0版本了,结果我又跑去学那种囊括了很多东西的教程,这种教程时长一般都会有10~30H,但很多时候,你看完也不知道自己到底学了什么,也消化不了多少,好的地方就是能让你了解到,引擎的一些基本概念,但也仅此而已,那还不如去看官方文档,一边看一边自己手动去做是最好的,因为这个过程你自己会思考,自己思考得出的结果印象会更加深刻,而不是在那坐着听人灌输一通。
总之我大概也就看了课程的三分之一左右吧,到了我觉得我可以开项目来做游戏的时候,我又放下了…原因是感觉没什么好的想法去开新坑,也不知道做什么了……(所以我才说不要去看这种笼统的教程,真会能把人送走,直接扼杀了做游戏的乐趣)直到Unity“爆种”(安装次数收费事件),Brackeys(YoutubeUnity大佬)又跑回来Godot发教程,跟着他的教程,我又拿起了Godot,做完教程之后,我就开始策划自己的游戏了。
好的方面:在我仅用过的三个游戏引擎中(RPGMaker、Unity、Godot),我体验最好的是Godot,因为他比我想象中的还要易用且有扩展性,Godot有自己的脚本语言叫做GDScript,GDScript学起来和用起来都比较容易,比C#容易,因为C#需要记很多的语法和关键字,语法也比较像Python,但我不怎么喜欢用缩进来表示代码块,不过现在习惯了也就那样了。
然后你要是不喜欢GDScript,你也可以用C#作为脚本语言,我的话,是因为我C#也忘得差不多,重新开始就学点新的脚本语言,要是不适应还是能转回C#的,新手的话,但我个人还是建议用GDScript,因为现在网上几乎所有Godot教程都是用GDScript的,所以新手用GDScript会比较友好。
然后游戏场景是由节点Node组成的,有很多种不同的类型的节点,需要什么功能就用什么节点,节点有很多,功能也比较齐全,节点功能用起来也比较简单、易用,这方面真的对新手很友好,然后我觉得比较好的一点是,你鼠标移到节点检查器的属性,基本是都有提示的,如果你选择中文版Godot还会提示中文,很多东西属性这样移上去一看就搞懂了,不懂的地方,你还可以点击打开该对象的文档,就可以查看这个节点所有的属性和方法,还支持点击搜索帮助,输入你想了解的节点、属性、方法、关键字,就可以跳至到该内容文档查看,然后这个文档如果你选的是中文版Godot,他里面的内容也会显示中文,就这个点真的甩Unity几条街,我用Unity体验比较差的地方,就是自学的时候英文的问题,然后文档也是英文的没有中文版,且内容也没有Godot的清晰、详细,翻了文档也看不懂。
总之我自学Godot基本就是这样来的,搜索关键字,查看内置的文档,这方面的体验真的不错。还有就是输入映射,这个我觉得比Unity好用,只需要新建动作名然后输入动作就可以了,包括手柄映射也是一样设置的。然后Godot里是没有单例的,但他有个全局类,可以把你需要一直挂着的脚本或者场景挂在这上面,就能跨场景调用和传送数据。
还有资源类Resources,这个也是Godot里比较好用的功能,这里我就不介绍了。然后我觉得做得最好的地方,应该是他内置了本地化翻译这个功能,咋看之下这个功能好像也没什么,但如果你想你的游戏支持多语言,就绕不开本地化这件事了,在今天这个时代,就算是独立游戏本地化也是必不可少的存在,因为能让更多人玩到你的游戏,如果你游戏还需要上架平台售卖,那本地化就显得更重要了,然后这个本地化功能我也试过了,运用起来真的很简单,除了文本之外,图片也支持根据语言切换更改。
然后Godot里还有很多好用的插件,好像几乎都是免费的,如果用插件来做游戏会很方便,比如说对话系统、背包系统、存档系统,加上插件的Godot的易用程度,堪比RPGMaker这种模块化功能的软件,一点都不夸张的,所以我也是很推荐在RM圈,但受到RM这款引擎的限制,而呈现不出自己想要的游戏效果的人,试试Godot这款软件,但有些插件可能不能互相兼容,用之前最好还是备份一下项目。
坏的方面:我开头学Godot那会闪退的概率遇到过不少次,我应该是用的4.2,每次闪退都感觉无症状找不到原因,然后闪退的时候你要是忘记保存了,那项目只能回到你未保存之前,然后到现在我用4.3开头没什么,到我装了插件之后,有时经常会无影响卡死,不清楚是不是插件的锅,然后现在开软件运行感觉也没有开头用那会快了,也不清楚是不是我项目越来越复杂的原因,但我做的只是横板2D游戏,所以总体感觉这软件没有想象中那么稳定,性能也没有那么好。
然后其实很多功能都有缺陷,刚入门不久后,我做了一个推箱交互,本来推箱用rigidbody2d是比较合适的,因为可以比较方便的模拟这种物理,但是这个rigidbody2d不太稳定,特别是受到力的作用之后,推着推着突然会有一个力的冲量,导致箱子突然推得很远,然后我去网上搜教程,他们也是用这种方法来实现推箱的,但是他们没有提到这个问题,因为这个问题要仔细测试才会出现,这是做教程的人不会提及的,所以面对这种问题,你可能只能自己去解决。还有就是可能有些功能达不到你的需求,或者是效果没那么好,像粒子系统(场景暂停时粒子上下抖动),导航系统(有时会有奇怪的抖动且不够智能),光照系统(效果不是那么好),我就觉得一般般并且有点小毛病。所以当需求达不到,网上又没有解决方案的时候,要么你就放弃这个功能,或者自己去造轮子,但造轮子也分等级,有一些自己慢慢啃都能造的,有一些是要回懂源码才能造的,所以不会源码的话,那可能轮子也不好造。
然后因为Godot国内少人用,所以Godot的教学真的不多,很多教程都是油管搬运过来的,国外人家有他们的Godot社区,有问题或者卡BUG了可以去问社区的人,国内就没有这样的地方,所以你如果项目卡了复杂的BUG,自己解决不了的情况下,发到网上可能没人帮你解决,因为用Godot的人真的少,隔壁Unity就不一样了。
现在Godot最新版本是4.4,听说这个版本也多了很多不错的功能,这引擎现在更新迭代越来越快了,这本应该是好事,但我听说他之前更新的版本并不总是好的,每次添加新功能的时候,旧的一些功能可能会砍掉,所以你只能在新旧版本做取舍,比如我正式开始学习Godot是用的4.2,然后4.3版本把Tilemap砍了,改成TileMapLayer了,当然你也可以留在旧版,但有些新功能你就用不到了,所以如果你在Godot做复杂且长期的项目,我觉得是不太合适的,我还听过Godot4.0版本的时候一团糟的,有兴趣可以去网上考证一下。
Godot目前只支持导出PC和移动端,不支持导出主机平台,这点在你选择godot开发游戏时也是需要注意的,因为也有越来越多的独立游戏上架主机平台,在如今这个时代全平台并不是像以前那么困难的事了,有的引擎就是不内置给你,或者需要收费,UnityPro版就能支持导出主机平台了我听说Godot的创始人确实是把移植Godot游戏的业务,独立出来了,所以如果你想上主机平台,要么自己搞定移植相关的技术问题,要么向Juan(创始人)交钱获取额外支持,当然也有其他的专门移植的公司,反正应该都要花不少钱。
虽然总体上我是推荐的,但具体我觉得还是要看你自己需求,什么样的需求就用什么样的工具,在做不复杂的2D游戏方面,Godot确实是非常好用的,至少我现在用下来是这么觉得的,节点的功能基本都囊括到了一些常见游戏的功能,开发起来可以很快,不用造什么轮子,直接就是用。
然后现在市面上也有些3D游戏也是出自于Godot的,有兴趣可以去看看,3D能用,但是关键是不是能达到自己的需求,这才是重点,3D方面跟Unity肯定是比不了的,画质渲染这些都算了,但性能差距很大这块应该是没跑的……听说有不少大佬过来摆弄一下Godot,然后就离开了,原因是这个引擎性能真的不太行,只能期待他后面好好更新了,然后Godot经过觉醒事件之后(有兴趣可以自己查查),现在有两个分支Redot与Blazium,如果官方后面拉跨了,可能还能靠这俩救一救呢。
总结一下就是,如果你是零基础新人想做游戏,那我无脑推荐你用Godot,因为他太适合新手了,简单易用扩展性也好,GDScript也很容易就能学会,还能添加强大的插件,没有比这更适合的选择了,特别是做2D游戏。如果你有过其他引擎经验,想试试Godot,那我也推荐试试Godot,可能能带给你不一样的体验,在做小型游戏,可以很快很爽,尽管他有不少瑕疵。如果你想做3D游戏并且想要有很厉害渲染,那就好好的去学Unity和虚幻就好了,其他也没什么选择了。如果你是为了发展前景的话,那还是乖乖Unity和虚幻吧,学好了甚至还能增加一份工作机会,Godot目前只适合独立游戏用,就业机会就不要想了。
(1)不要去看那种囊括了很多东西,只讲概念又点到即止,时长十几个小时那种的教程,看了也没用,我前面也说过了,看完也消化不了,因为Godot真的简单,有些功能你只需要用到的时候去查去看,没必要听这种笼统的教程,不然就是纯浪费时间,最好是找个短一点,几个钟就能学完做出游戏的,比如Brackeys的Godot教程(B站有人搬),虽然只有两集,但入门足够了,如果你想看详细全面一点的入门教程,可以看Heartbeast的教程,我有搬运他的教程,然后看教程,一定要看4.0版本以上,其他的已经太旧了。或者看我的教程~我也做出一些Godot教程,特别是Godot的对话插件Dialogic的教程,看完基本就能用来做视觉小说了,如果有人需要教程链接可以评论留言。
(2)如果你在看教程的时候,理解不了其中的代码,我建议你先抄着代码,很多时候学编程也是这样的,等后面你想通了,问题自然迎刃而解,但要是等你做完整个教程,你还是不明白其中一些东西,那你就需要去问别人了,比如视频评论区、或者加各种交流群。
(3)如果你英文不好,可以在项目管理器界面切换中文,这样方便你自己使用和学习Godot。
(4)如果你一开始就计划有想把你的游戏移植到主机平台上,那就真要考虑要不要换引擎了,因为Godot不支持导出主机平台,想要移植的话,需要找由主创成立的W4移植公司移植,或者去找其他游戏公司帮你移植,但无论如何都是一笔昂贵的钱,除非你能自己搞定,我觉得能自己搞定的人,应该就不用godot了吧……
我认为开发游戏是一件孤独的事,尤其是独立游戏作者,做游戏真正开心的时刻可能只有灵感爆发的那一瞬间,之后把游戏所有需要的东西,慢慢拼凑起来,然后慢慢打磨,最后搓出个完成品,如果在这个过程你一直是一个人,没有人交谈,没有人鼓励,没有人知道你在开发什么,那你就算坚持着做完,那你的游戏可能也无人知晓,我经历过这样的事情好多次了,所以我做出来的游戏总是不好玩,如果只是为了满足自己把游戏做出来,那只会没人愿意游玩你的游戏,做游戏就是要被人玩才有价值,让玩家去发现你创作的价值。
所以挺希望能找到一些有趣的独立游戏人一起交流的,为此我也创了一个群,大家如果有兴趣可以加进来,让我们一起加油,创作自己的游戏把!就算你是用Godot还是Unity又或者是RPG Maker都可以,游戏制作很多东西都是相通,这个群我不想只拘泥于游戏引擎吧,所以我才把名字叫做“独立游戏制作人小屋”{995446653},好了这篇文章,我足足写了6千字!感谢观看!希望本文能帮到正在观看的你!
评论区
共 3 条评论热门最新