我喜欢Godot。我认为它是一个很棒的引擎,开源游戏开发很重要,我也希望它能成为行业中更重要的部分。

但我也认为,游戏开发社区,尤其是自Unity运行时费灾难以来,开始把Godot谈论得好像是游戏开发的未来,或是Unity/Unreal的一比一替代品,碰巧还是免费开源的。我不太认为这真的已成现实。

以下是我觉得人们需要对Godot更现实一些的地方:

1. 工程资源确实重要

我不是说“更多开发者=更好的引擎”,但值得承认的是,专业游戏引擎背后的团队规模与Godot相比是不同的。

Unity和Epic有成千上万的员工,他们的全职工作就是开发这些引擎及其相关技术。渲染、动画、物理、性能分析、平台支持、构建系统、质量保证、主机集成、奇怪的驱动问题、晦涩的硬件bug等等。

Godot确实有少数付费开发者和非常有才华的贡献者基础,但它完全是在不同的规模上运作。根据GitHub数据,过去12个月内Godot的贡献者最多只有几十人。

这在那些枯燥的工作上最为重要。实现一个酷炫的渲染功能是一回事,但在不同的GPU、操作系统、驱动、硬件配置和奇怪的生产边缘案例中维护它十年又是另一回事。

商业软件拥有更多资源并不自动意味着它更好。Unity无疑证明了你可以雇佣大量工程师但仍然发布有bug的产品,但工时是实实在在的。如果公司A可以投入100名工程师解决一个问题,而项目B只有5名志愿者,那不能保证公司A解决得更好,但假装差异毫无意义是愚蠢的。

2. Unity和Unreal拥有大量积累的生产知识

Godot比过去成熟得多,而且已经有很多真实游戏用它发布,所以我不再认为“用Godot就是在给你自己的引擎做beta测试”这句话完全公平,但其中仍有一些道理。

我认为更好的说法是,使用Unity和Unreal时,别人已经遇到过你的问题的可能性更大。

你的动画系统突然成为巨大的CPU瓶颈,某个着色器在特定AMD显卡上出问题,你的存档系统在周二凌晨4点满月时开始行为怪异,你的UI在某个荒唐分辨率下崩溃,你的项目因为两个系统之间的愚蠢交互需要40分钟才能构建。等等。

很可能已经有人遇到过同样的问题。也许2017年有Stack Overflow的回答。也许某家工作室写过博客。也许有GDC演讲。也许你团队里有人在之前的工作中处理过。也许有专门修复这个问题的插件。人们低估了这有多宝贵。

Unity和Unreal背后有几十年的商业游戏,它们按时交付,经过QA团队和认证要求,以及数百万玩家做出开发者意想不到的奇怪行为。Godot的知识库正在快速成长,但远没有那么深厚。

3. 中间件/插件生态目前还无法相比

现代独立游戏依赖大量的中间件。这没什么不对,我甚至要说,如果符合预算、成熟且能真正解决游戏中的问题,独立开发者应该大方地购买插件,而不是自己构建解决方案。

一个成熟的插件能为你带来多年的bug修复、文档、集成、支持,以及成千上万其他用户在你自己之前发现边缘案例。花100美元买一个能为你节省三周工程时间的系统,对独立工作室来说是笔划算的交易。

对话、任务、存档系统、本地化、Steamworks、分析、音频、网络、行为树、库存系统、主机API、构建工具、崩溃报告、UI框架。显然你可以自己写所有这些,但如果有人已经花了五年做出来一个很好的,为什么还要自己写?

我知道Godot也有插件,有些确实很好,但它们仍处于初期阶段,大部分由开源贡献者而非专业开发者制作,许多流行的Unity/Unreal插件根本没有Godot的对应版本。

Godot的生态系统正在成长,我认为未来几年会变得强大得多,但眼下深度上仍有巨大差异。

4. “Godot能做X”不等于“Godot同样适合做X”

Godot能做一个大型3D游戏吗?能。

Godot能做一个多人游戏吗?能。

Godot能做一个画面惊艳的游戏吗?能。

Godot能发布一个商业成功的游戏吗?能。

但“技术上可行”是一个很低的门槛。

如果你愿意,你可以直接用C++和Vulkan写你的游戏。但这并不意味着这是一个明智的生产决策。

问题应该在于某件事有多困难、有多少支持、有多少工具可用、以及你承担了多少风险。

是的,指着《堡垒之夜》或《FF7重制版》之类的东西说“这就是我用Unreal的原因”,而你在做一个三小时的PS1风格恐怖游戏,这很蠢。但我认为人们又走得太远,假装Unity/Unreal的大量游戏目录毫无意义。

基本上在所有可能规模上都有成功的Unity和Unreal游戏:2D平台游戏、步行模拟器、卡牌游戏、生存游戏、多人游戏、VR、移动端、AA级作品、巨大的AAA年度游戏获奖者。

和成功游戏使用同一个引擎并不能说明你的游戏质量如何,但这是引擎曾经承受过类似生产需求的证据。如果你用Godot做一个更雄心勃勃的项目,你开始进入未知领域。

Godot正在开始建立这样的记录。《杀戮尖塔2》是一个明显的大型Godot游戏例子,我认为随着Unity运行时费灾难过去的时间越长,未来几年我们会看到更多有趣的Godot游戏,但我们还没到那一步。

5. 这些都不意味着我认为人们应该改用Unity/Unreal

这是论点的另一面,也是我仍然对Godot充满热情的原因。

没有人拥有Godot。它完全免费,你永远不必因为使用它而向任何人支付版权费。

我知道我们都翻白眼,某个新开发者在这里声称他的蒸汽产品游戏(可能只会有35个Steam愿望单)却要支付Unreal超过100万美元收入的5%是荒谬的骗局,但这不是重点。

大多数独立游戏是激情项目。人们花几年的生命做这些东西。知道自己游戏的基础不是由一个可能明天醒来就做出疯狂公司决策的公司控制,这很有价值。

如果Godot走向你讨厌的方向,你可以继续使用你的版本。你可以修改它。你可以分叉它。在最糟糕的情况下,你有源代码。也许它从来没为你省过一分钱,但我认为你无法为那种真正拥有自己激情项目技术基础的感觉定价。

Godot也很轻量,迭代快速,使用愉快,GDScript很适合快速完成任务,而且能接触到真正可理解的引擎代码库很棒。

对于很多独立游戏,我会乐意选择Godot。我只是觉得我们不必为了宣传它而假装它还不是的东西。

Unity和Unreal拥有几十年工程、商业使用、中间件、工具和机构知识带来的巨大优势。Godot在开放性、简洁性和控制权方面有巨大优势。

这些是不同的权衡,对许多开发者来说Godot会是更好的选择,对其他开发者则不会。

也许五年后这种区别会完全不同。我希望如此。