《永恒空间2》通过虚幻引擎5设定通往未来的航线

在Lumen的新光照条件下重新发现贝尔特格雷德

大家好,我们是ROCKFISH Games的制作人Caspar Michel和首席视效/环境3D美术师Marco Unger。我们来自于德国汉堡的一支小型团队,专注于制作太空动作游戏《永恒空间》系列。我们的最新作品《永恒空间2》已于2023年4月登陆PC平台,并在同年8月登陆了Xbox和PlayStation。前不久,在2024年4月29日的“入侵”更新中,我们将《永恒空间2》从虚幻引擎4迁移到了虚幻引擎5.3。在这里,我们将分享ROCKFISH在迁移过程中发现的一些好处,以及遇到的一些挑战。我们来自于德国汉堡的一支小型团队,专注于制作太空动作游戏《永恒空间》系列。我们的最新作品《永恒空间2》已于2023年4月登陆PC平台,并在同年8月登陆了Xbox和PlayStation。前不久,在2024年4月29日的“入侵”更新中,我们将《永恒空间2》从虚幻引擎4迁移到了虚幻引擎5.3。在这里,我们将分享ROCKFISH在迁移过程中发现的一些好处,以及遇到的一些挑战。

我们之所以将《永恒空间2》从UE4基础版本升级到UE 5.3,是为了确保游戏的长期可维护性,并为将来顺利开发扩展内容铺平道路。这是一次战略性升级,旨在预防后续开发阶段和更新中出现的扰乱因素,我们的想法是,现在所做的工作将为我们免去日后可能面临的麻烦。
普雷斯科特星际基地混合了环境星光和多种光源的环境为Lumen大显身手提供了绝佳机会(见右图)。
我们倾向于使用最新的技术,并在开发过程中定期升级引擎,我们严重依赖于平台扩展,其中一些扩展在使用过时的SDK时将无法正常工作。如果我们没有继续开发《永恒空间2》的计划,我们很可能会继续使用UE4,但既然我们已经计划创建扩展内容,为过时的工具寻找解决方案会不断耗费大量时间。

启用Lumen

《永恒空间2》被许多人视作当今市场上最具吸引力的太空游戏之一。游戏中的光照尤其让我们感到自豪,我们结合使用了预先计算的全局光照解决方案和屏幕空间全局光照(SSGI),渲染遍布在游戏内多个恒星系中的各类区域。然而,即使使用我们工作室的强大硬件,计算细节高度丰富的光照贴图也需要数天时间。
Lumen的间接全局光照会模拟光线从表面的反射(这通常会花费巨大的计算成本),从而创造更逼真(或者说保真度更高)的阴影细节,为场景或区域增添更多特色(见右图)。
要采用Lumen,只需要将配置(*.ini)中的一个变量设置为“True”即可。这项功能开箱即用,在游戏开发中实属罕见!尽管我们最初对采用动态全局光照和反射系统持怀疑态度,但我们很快就看到,Lumen将本已令人惊叹的视觉效果提升到了更高水平,这在以前的烘焙全局光照贴图中是无法实现的。
启用Lumen后,这种古老生物的骨骼有了更明显的风化侵蚀痕迹(见右图)。
虽然启用Lumen只需点击几次鼠标,但我们还对ini文件做出了额外的调整,这样做是为了增加光线追踪场景剔除半径,以适应我们的大型环境,并启用与Lumen结合使用的屏幕空间环境光遮蔽(SSAO)。这更像是一种美术上的选择,虽然并不特别逼真,但为屏幕上的画面增添了许多深度。

启用Lumen后,最终结果令人惊叹,尤其是在高对比度光照中,星光会反射到太空站、古老建筑和采矿平台的复杂几何结构上。
启用Lumen后的阴影为这片繁忙的采矿殖民地增添了更多细节(见右图)。
但是,并非所有事情都像启用Lumen一样简单。随着迁移的进行,由于Niagara粒子系统经过了重大更改,我们遇到了一些与之相关的问题。一些模块被弃用,另一些模块则被合并,这导致编辑器在尝试自动转换/更新现有系统时出现错误。由于材质置换被移除,我们还必须重新制作大量视觉特效,考虑到这款游戏充满了炫目闪耀的激光和色彩丰富的爆炸,这项任务可谓艰巨。然而,从长远来看,我们认为这些努力是值得的,只有这样才能与即将发布的版本保持一致。

挑战、错误和障碍

我们的程序员总共花了几百小时完成初始迁移,所涉及的工作包括开发、会议探讨、排除故障,以及修复迁移引起的许多错误。

虽然我们有在虚幻引擎4的主要版本之间进行迁移的经验,但在迁移到虚幻引擎5.3时,我们仍然需要面对一些迁移初期的问题。从一开始,我们就必须应对许多错误和系统不兼容问题。出现问题的地方包括着色器损坏、材质、过场动画、视效、粒子、物理、纹理被拉伸、闪烁、用户界面(UI)元素损坏、激光光束中断。尽管这并不是我们所遇到问题的详尽清单,但你们可以看到,我们的质量保障团队和外部测试人员记录了各类错误和问题。

在虚幻引擎5移植项目启动后不久,我们发布了一篇简短的博客文章,展示了一些出现的视觉错误,这不仅向我们的社区分享了我们正在进行的项目,也以有趣的方式揭示了游戏开发的幕后工作。
虽然许多地方看起来已经非常漂亮,但Lumen的光照有助于突出每个小行星的特点,使粗糙的表面更具质感(见右图)。
在打开UE5后,我们立即注意到了一个初期错误:船体的接缝处会发光,这是因为一些材质着色器被错误地关联了。我们的社区当时就要求我们为玩家飞船提供《电子世界争霸战》风格的外观,而我们后来也确实在一个专门的外观支持包DLC中重新创造了这种外观。

我们从2023年11月28日开始迁移引擎,并在整个项目中不断优化。最大的问题是性能全面下降,对PlayStation 5和Xbox Series X/S的影响最为严重。在某些关卡中,PlayStation 5和Xbox Series X的帧率从稳定的60 FPS降到了30 FPS以下,这种情况并不是由单个原因造成的,而是多个小问题的累积。通过从存在问题的区域中移除不需要的背景NPC飞船,对蓝图进行原生化处理,并优化Actor/组件的Tick速率,这些性能问题在很大程度上已经得到解决。
通过Lumen的动态光照,空间站等外太空平台在视觉上得到了极大改善(见右图)。

功能和优势

除了Lumen,通过迁移到虚幻引擎5,我们还将获得一些可在游戏内切换的功能,比如NVIDIA Reflex延迟降低和帧生成、Intel XeSS分辨率提升技术、AMD FSR 3.0分辨率提升技术(利用帧插值实现),以满足具有高端GPU的PC玩家。由于并非所有玩家都拥有合适的硬件来充分体验这些功能,我们还必须为每项功能添加切换开关。

如果没有迁移,《永恒空间2》绝不会像现在这样易于维护,未来内容的开发想必也会更加困难。随着我们迁移到最新工具,虚幻引擎将更好地满足我们的开发需求。我们已经可以预见,虚幻引擎5的新工具和功能(例如,对Unreal Insights分析器的持续改进)将推动即将开始的扩展工作取得更高效的进展。
Lumen可帮助自然表面在白天强烈的光线下显得不那么暗淡(见右图)。

对同行开发者的建议

迁移引擎是一项艰巨的任务,尤其是对于已经进入1.0版本的项目来说,更不能轻率对待。我们认为现在的付出是值得的,因为像我们这类游戏,未来还有着很长的内容支持生命周期。

我们发现Lumen是一项非常值得在《永恒空间2》中采用的功能,而且使用起来比人们想象的要容易得多。我们之前提到过,在UE4中,我们使用了烘焙光照和SSGI的组合,因此我们必须以特定方式构建内容,以支持在每个对象上使用光照贴图UV预计算的光照。但是,由于Lumen是一种动态光照系统,它能够很好地与我们之前使用不同光照解决方案创建的内容相适应。Lumen不关心对象是为动态光照还是为预烘焙光照构建的,这意味着我们几乎不需要调整迁移到UE5的任何内容。

虽然我们的社区对迁移的想法感到兴奋,但我们也敏锐地意识到,玩家表达了对性能问题的担忧。在迁移之前和迁移过程中的里程碑阶段运行自动性能检查,可以为优化机会提供基准和指标。这是我们在项目开始不久就纠正的一个疏忽,我们不得不花费大量时间开发测试方法,在游戏中添加支持功能,并学习如何处理生成的数据。通过尽早发现并解决与性能相关的问题,我们能够解决许多可能影响玩家体验的因素。

时间始终是一项关键因素。出现的问题会比预期的多,尽管产生了许多错误,但大多数都是小问题,容易修复。以轻松的心态对待工作,清楚透明地向社区介绍正在处理的项目,将有助于创造让粉丝感到满意的作品。

最后,这次迁移也为与虚幻引擎5相关联的游戏更新带来了巨大的关注量。媒体和合作伙伴对于引擎的能力以及它带来的功能非常感兴趣。作为一家独立工作室,曝光度至关重要,这是我们在努力过程中取得的意外收获。
启用Lumen后,具有多个光源和多种硬表面的工业区域将摆脱阴影(见右图)。

总结

短期来看,迁移到UE5为我们创造了机会,让我们能够添加新功能,并在实施Lumen等新功能和启用最新分辨率提升插件的同时,重新审视流程。同样重要的是,它使团队有机会了解UE5及其功能,这对后面的项目大有裨益。从长远来看,我们期望,与未启动迁移项目时相比,《永恒空间2》将来的内容开发过程将会变得更顺利。

我们还有一些小的优化障碍需要解决,但我们认为对于团队和《永恒空间2》而言,采用Lumen并迁移到虚幻引擎5是一次成功的尝试。

立即获取虚幻引擎!

获取全球最开放、最先进的创作工具。
虚幻引擎包罗万象,并提供完整的源代码访问权限,开箱即用,诚意十足。