我为什么开始用Godot?一个Unity老用户的转引擎经历
用Unity做了两年后,2023年初我因为一个像素风小项目开始接触Godot。起因其实有点狼狈:那个项目的目标是打出一个不到10MB的Windows包,但Unity光引擎自带库就占了将近20MB。我折腾了三天,尝试各种Build裁剪方案,最后包体还是28MB。
然后我在B站看到一个视频,up主用Godot做了一个同样玩法的小游戏,包体4.2MB。我将信将疑地装了Godot,照着做了一遍——真的4.2MB。从此Godot就入了我的工具箱。
现在我在做新项目时,会先评估体量和需求再决定引擎:2D小体量优先Godot,3D或复杂项目用Unity。两台引擎各有优势,没必要当宗教来选择。
Godot到底好在哪?我说三点
第一,体量极小。安装包不到50MB,打开引擎秒开。Unity启动等三分钟这种事,在Godot这里不存在。
第二,节点系统比Unity的组件系统更直观。Unity里一个角色大概要挂一堆脚本组件,而Godot的Scene Tree本身就是树状结构,父节点的变换会自动传递给子节点。做UI的时候尤其明显——一个控制面板只需要在Scene里嵌套几个Control节点,比UGUI的手动锚点调半天舒服很多。
第三,完全免费开源。没有个人版和Plus版的区别,没有启动时的“你使用的是Unity Personal版”水印。我做的一个商业项目在GitHub上同步开源,Godot社区还主动帮我找了几个Bug。
安装和第一个项目:五分钟跑起来
从官网下载Godot 4.3 LTS版本,注意不要下成Godot 3.x,3.x和4.x的语法和API有不小差异。
安装真的很简单——解压双击就行。没有Unity Hub、没有授权登录、没有模块勾选。解压之后双击Godot.exe,直接进项目管理器。
新建项目时,我建议选“2D”标签的模板。Godot对2D支持非常成熟,一路默认设置即可。
接下来,就像Unity里拖Cube一样,在场景里右键加一个Sprite2D节点,把一张图片拖进Texture属性。然后写一行GDScript让它在屏幕上移动。
不需要写Input Manager映射,默认的方向键映射已经配好了。这个体验让当年第一次用Godot的我很意外。
GDScript vs C#:新手到底学哪个?
这是我在游戏宅基地的读者群里被问得最多的问题。
我的观点非常直接:如果只做Godot项目,新手优先学GDScript。原因有三:
1. GDScript和Godot的API深度绑定,不需要思考“这个功能用C#怎么调”的问题 2. GDScript的语法类似于Python,可读性非常强。一个Unity C#脚本三四十行的功能,GDScript可能十行就写完了 3. 社区里的教程和代码片段99%都是GDScript
但有一个例外:如果你将来打算在Unity和Godot之间横跳,或者你的项目需要用到C#成熟的生态系统(比如用Json.NET解析数据),那就用C#版本。Godot 4.x对C#的支持已经比较好了,虽然编译比GDScript慢一些,但运行时性能差不多。
一个真实项目:我用Godot复刻了一个打砖块
为了测试Godot的生产力,我用它完整复刻了一个Unity项目——打砖块游戏。这个游戏在Unity里我做过好几遍了,闭着眼睛都写得出来。
对比结果: - 功能开发时间:Unity 6小时 vs Godot 4.5小时 - 包体大小:Unity 32MB vs Godot 5.1MB - 脚本行数:Unity 486行C# vs Godot 312行GDScript - 从零到可玩Demo:Unity 2.5天(含打包调试) vs Godot 1.5天
当然这不是一个严谨的对比测试,同一功能在不同引擎里的实现复杂度不同。但这个差距确实是真实存在的,尤其是在2D游戏场景下,Godot的效率优势非常明显。
Godot 3D呢?实话实说
我必须要讲点公道话。Godot的3D能力在4.x版本有了大幅提升,加入了Forward+渲染器、SDFGI全局光照和新的粒子系统。但实事求是地说,和Unity/Unreal相比还有差距。
如果你要做高画质的3D游戏,目前的Godot可能还不够成熟。光照烘焙、LOD自动生成、地形编辑这些在Unity里很成熟的功能,在Godot里要么刚起步,要么需要自己写。
但如果是低多边形风格(Low Poly)、体素风格或者2.5D,那Godot完全够用。我用Godot做了一个Low Poly风格的收集游戏,在低配笔记本上跑得很流畅。
Godot社区生态:中文资源够不够?
聊到Godot,中文资料确实不如Unity多。但好消息是,近一两年中文Godot社区发展很快。
比较推荐的中文资源: 1. B站上“开发游戏的老王”的系列教程,从零讲起,进度适中 2. Godot官方文档的中文翻译版已覆盖主要章节 3. Godot中文社区(godot-chinese.cn)有QQ群和论坛,遇到问题可以直接问
另外,英文文档和Stack Overflow的量也够用。毕竟Godot的API设计很直观,很多问题自己查文档就能解决。
如果你想知道更多适合中文开发者的Godot资源,欢迎来游戏宅基地看看。
推广时间
以上是我从Unity转到Godot一年半的真实体验和对比分析。更多引擎选择攻略、实战教程、项目源码分析,尽在游戏宅基地(bacc8.cn)。如果你正在纠结选Unity还是Godot,或者刚接触Godot不知道怎么入手,欢迎来站上留言交流。