今天来跟大家唠唠我用过的三款游戏开发引擎:cocos creator、unity 和 godot,给想了解它们的小伙伴一些参考。
cocos creator
我最早是通过 cocos quick 接触到 cocos creator 的,之后用它做了不少项目。说实话,现在它没以前那么火了,但未来发展谁也说不准。
优点
优质论坛:作为国产引擎,它有个对国内开发者超友好的论坛。在这里交流技术、找解决方案都很方便,这是其他国外引擎比不了的先天优势。
小程序市场优势:在小程序游戏开发这块,cocos creator 占了大头,虽说 laya 也分了一杯羹,但 cocos creator 还是更胜一筹,很多爆款小程序游戏都是用它开发的。
开源免费:这意味着我们可以自由修改源代码,根据自己的需求定制功能,对独立开发者和小团队来说,能省下不少成本。
缺点
细节不足:网上很多人吐槽 cocos 官方不太懂开发者的痛点,很多小问题官方解决得很慢,全靠社区力量。就算社区有好的解决方案,官方整合到引擎里也得等很久。
生态欠佳:cocos store 里的资源,不管是数量还是质量,都和其他引擎的资源商店有差距,找合适的插件、素材不太容易。
编辑器性能问题:因为是用 electron 开发的,编辑器的性能不太理想。不管是插件扩展,还是运行时的流畅度,和 unity 比起来都差了一大截。
unity
我在工作中用了一年多 unity,它各方面确实很强大,但之前的收费风波真的让我好感全无。要不是工作需要,我都不想碰它了。
优点
强大生态:网上关于 unity 的资料、教程多如牛毛,unity store 里的资源也丰富得很,不管是模型、脚本还是插件,基本都能找到,大大提高了开发效率。
功能完善:就拿计算着色器来说,unity 早就支持了,而且很好用。反观 cocos creator,虽然也有这个功能,但文档教程不完善,网上也很难搜到使用方法,上手难度大。
编辑器扩展方便:在 unity 里开发自定义插件、扩展编辑器功能都很简单,开发者可以根据自己的工作流定制编辑器,非常人性化。
智能 UI 渲染优化:ugui 有个很厉害的自动调节渲染次序功能。如果 UI 元素没有重叠,渲染时会先渲染兄弟对象,再渲染子对象,这对优化游戏 UI 中像背包这类 drawcall 较高的场景很有帮助。虽然使用时有时需要用些小技巧,比如在父子对象间加个透明对象来调整渲染顺序,但最终能有效降低 drawcall。
缺点
收费争议:之前的收费政策调整引发了很大争议,让很多开发者感到不满,这也影响了它在开发者心中的形象。
不开源:源代码不开放,对于一些想深度定制引擎的开发者来说不太友好,很多底层修改只能靠插件或者等官方更新。
UI 系统混乱:unity 有好几套 UI 系统,这让开发者在选择和使用时容易混淆,增加了学习和开发成本。
godot
我自己用 godot 玩了一段时间,说实话,用起来真的不太习惯。网上都说它简单,但我却各种水土不服,不过它确实有独特的地方。
优点
直击痛点:godot 很关注开发者在开发过程中遇到的困难,针对新手和老手常遇到的耗时功能点,都提供了很好的官方解决方案。比如它的瓦片地图编辑功能就非常强大,操作简单又高效,让人眼前一亮。
独特节点结构:godot 采用纯节点的对象结构,没有传统的组件概念,添加功能就是在 node 下添加子 node。刚开始用的时候很不适应,但从设计理念来看,这种更简洁的方式可能更符合未来的发展趋势,而且对新手开发者来说,学习成本更低。
统一 UI 系统:godot 自身就是用 godot 渲染的,这意味着它的 UI 系统既可以用于游戏开发,也能用于编辑器开发,非常统一和完善,使用起来很方便。
缺点
奇怪的 gdscript:gdscript 作为 godot 的主要脚本语言,真的让人很头疼。语法有些奇怪,虽然也支持 C#,但据说会有类型判定不准确的问题,这对习惯了主流编程语言的开发者不太友好。
外观不太美观:和其他两款引擎相比,godot 的界面设计和整体视觉效果确实不太好看,这可能会影响一些开发者的使用体验。