为什么(以及如何)离开Unity和Unreal,自己打造游戏引擎

当启动一个游戏时,往往会看到Unreal Engine或是“Made with Unity”的启动画面,这两款是目前最常见的游戏引擎。长期从事游戏开发的Rez Graham认为,对于独立开发者来说,这些引擎并不总是最佳选择。在GDC 2024的一次讲座中,他提倡通过现有的框架和库来构建自己的技术,这些工具具有一些重要优势,当然也有开发者需要注意的劣势。

Graham在Electronic Arts负责《模拟人生》系列的工作后,独立开发游戏,并在BleachKitty下进行游戏开发。从他的角度和经验来看,最流行的游戏引擎并不总是最适合开发,而这真的取决于你的目标和你想要制作的游戏类型。这在理论上是有道理的,但在决定是建立自己的技术还是使用现有引擎时,有几个因素需要考虑。

使用第三方引擎需要支付授权费用,长期下来费用会累积增加。Graham表示:“从长期来看,这通常是划算的。我怀疑这个房间里没有人在制作游戏时,就想着‘好的,完成了,我要去当农民了。’” 暗示着你未来也将使用自己的技术进行未来项目开发,而不仅仅是一次性投资。对Graham来说,完全控制引擎及其使用是非常重要的,他继续道:“从长远来看成本效益很高,因为你在投资自己的公司、自己的技术、自己的世界。你构建你想要的东西,而不是其他。所以这非常重要,非常强大。”

基础思维

这个想法是你将拥有一个特别擅长制作你想要制作的东西的基础,正如Graham所说,“你可以说[例如],我正在制作的游戏类型是这种Roguelike风格的游戏。所以我要使用这个框架,然后我将在此基础上构建出我需要的确切系统,这可能让我相当容易地制作出Roguelike游戏。” 然而,引擎构建过程和开发应该有所重叠,他建议说:“我不是说,让我们先花两年时间建造一个引擎。相反,你建立你自己的技术。你制作你的游戏,当需要时再进行提取。”

在使用相互连接的框架方面,Graham举了一个实际例子—如何实际应用,例如使用SDL进行操作系统、渲染、声音和输入(SFML也可以正常工作),然后使用Box2D进行物理引擎、Tiled进行关卡编辑、Tinyxml进行XML加载,以及Sol/Lua。他重申还有大量的免费、开源库可以使用。在所有这些框架协同工作的情况下,你可以创建出一些完全属于你的东西,你拥有完全控制权,并对精简游戏引擎有更深入的理解。

他提到的一个劣势是使用这些框架通常需要懂得C++知识,他说:“即使你实际上不需要让人编写C++,但可能需要低级知识或理解。” 但使用这些工具使故障排除过程更容易,让你能够找出问题并修复,而不是从Unreal或Unity引擎中可能出现的错误消息中寻找问题。

一个显示各种引擎解决方案的图表

虽然使用自己的技术不需要担心授权费,但Graham承认,由于自行构建技术需要时间,因此也存在更高的前期成本。在一个后续问题中,他还承认,对于更大的游戏来说,选择类似Unreal或Unity是最佳选择,并指出《赛博朋克2077》是一个例子。由于该游戏是基于CD Projekt Red的RED引擎构建的,“设计师们正在操作一个不断被建造的平台。游戏引擎在设计师们试图为其制作内容时不断建设,所以对他们来说并不顺利。”

Graham指出的另一个因素是当你开始让其他人参与项目时需要的“自动知识”。你基本上放弃了其他开发人员可能对更主流游戏引擎的机构知识,这意味着你需要自己的文档,并且通常需要懂得至少基本水平的C++的开发人员,当使用上述框架时。

尽管Unreal和Unity可能随处可见,他指出了一些建立在自有技术上的知名独立游戏,其中包括《星露谷物语》、《堡垒》、《黑暗地牢》、《铲子骑士》、《入侵之环》等游戏。Graham重申,构建自己的技术仍取决于你想要制作的游戏类型。

Graham提到的最后一点是,独立游戏可以突破界限,进行实验,尤其在技术创新方面,他说“Epic正在进行他们自己的技术创新,Unity也在进行他们自己的技术创新,但他们也必须做所有人的事情。他们不能走得太远离常规。”

他总结道:“现在有一些非常有趣的独立游戏,他们进行了一些有趣的技术创新……当你构建自己的技术时,你可以做一些很疯狂的事情,这是我们所缺少的。”

游戏开发者和游戏开发者大会是Informa Tech旗下的姐妹组织。