作者:Caspar Michel & Marco Unger
文章来源:https://www.unrealengine.com/zh-CN/tech-blog/everspace-2-sets-a-course-for-the-future-through-unreal-engine-5?tags=tech-blog
文章类型:原文转载
大家好,我们是ROCKFISH Games的制作人Caspar Michel和首席视效/环境3D美术师Marco Unger。我们来自于德国汉堡的一支小型团队,专注于制作太空动作游戏《永恒空间》系列。最新作品《永恒空间2》已于2023年4月登陆PC平台,并在同年8月登陆了Xbox和PlayStation。
在2024年4月29日的“入侵”更新中,我们将《永恒空间2》从虚幻引擎4迁移到了虚幻引擎5.3。在这里,我们将分享ROCKFISH在迁移过程中发现的一些好处,以及遇到的一些挑战。
我们之所以将《永恒空间2》从UE4基础版本升级到UE 5.3,是为了确保游戏的长期可维护性,并为将来顺利开发扩展内容铺平道路。这是一次战略性升级,旨在预防后续开发阶段和更新中出现的扰乱因素,现在所做的工作将为我们免去日后可能面临的麻烦。
我们倾向于使用最新的技术,并在开发过程中定期升级引擎。同时,我们非常依赖于平台扩展,但这会导致其中一些扩展在使用过时的SDK时将无法正常工作。
如果后续没有继续开发《永恒空间2》的计划,我们很可能会继续使用UE4,但既然我们已经计划创建扩展内容,为过时的工具寻找解决方案将会不断耗费大量时间。
《永恒空间2》被许多人视作当今市场上最具吸引力的太空游戏之一。游戏中的光照尤其让我们感到自豪,我们结合使用了预先计算的全局光照解决方案和屏幕空间全局光照(SSGI),渲染遍布在游戏内多个恒星系中的各类区域。然而,即使使用我们工作室的强大硬件,计算细节高度丰富的光照贴图仍然需要数天时间。
而采用Lumen,只需要将配置(*.ini)中的一个变量设置为“True”即可。这种开箱即用的功能,在游戏开发中实属罕见!尽管我们最初对采用动态全局光照和反射系统持怀疑态度,但我们很快就看到,Lumen将本已令人惊叹的视觉效果提升到了更高水平,这在以前的烘焙全局光照贴图中是无法实现的。
虽然启用Lumen只需点击几次鼠标,但我们还是对ini文件做出了额外的调整。这样做是为了增加光线追踪场景剔除半径,以适应大型环境,并启用与Lumen结合使用的屏幕空间环境光遮蔽(SSAO)。这对我们来说,更像是一种美术上的选择,虽然并不特别逼真,但为屏幕上的画面增添了许多深度。
启用Lumen后,最终结果令人惊叹!尤其是在高对比度光照中,星光会反射到太空站、古老建筑和采矿平台的复杂几何结构上。
但是,并非所有事情都像启用Lumen一样简单。
随着迁移的进行,由于Niagara粒子系统经过了重大更改,我们遇到了一些与之相关的问题。一些模块被弃用,另一些模块则被合并,这导致编辑器在尝试自动转换/更新现有系统时出现错误。
由于材质置换被移除,我们还必须重新制作大量视觉特效。考虑到这款游戏充满了炫目闪耀的激光和色彩丰富的爆炸,这项任务将非常艰巨。但是,从长远来看,我们认为这些努力是值得的,只有这样才能与即将发布的版本保持一致。
虽然我们有在虚幻引擎4的主要版本之间进行迁移的经验,但在迁移到虚幻引擎5.3时,我们仍然需要面对一些迁移初期的问题。我们的程序员总共花了几百小时完成初始迁移,所涉及的工作包括开发、会议探讨、排除故障,以及修复迁移引起的许多错误。
从一开始,我们就必须应对许多错误和系统不兼容问题。出现问题的地方包括着色器损坏、材质、过场动画、视效、粒子、物理、纹理被拉伸、闪烁、用户界面(UI)元素损坏、激光光束中断等等,我们的质量保障团队和外部测试人员记录了各类错误和问题。
比如说,在打开UE5后,我们立即注意到了一个初期错误:船体的接缝处会发光,这是因为一些材质着色器被错误地关联了。社区当时就要求我们为玩家飞船提供《电子世界争霸战》风格的外观,而后来也确实在一个专门的外观支持包DLC中重新创造了这种外观。
而在从2023年11月28日开始的整个迁移引擎的工程中,即使做了许多优化,但我们面临的最大问题仍是性能全面下降,对PlayStation 5和Xbox Series X/S的影响最为严重。
在某些关卡中,PlayStation 5和Xbox Series X的帧率从稳定的60 FPS降到了30 FPS以下,这种情况并不是由单个原因造成的,而是多个小问题的累积。通过从存在问题的区域中移除不需要的背景NPC飞船,对蓝图进行原生化处理,并优化Actor/组件的Tick速率,这些性能问题在很大程度上已经得到解决。
除了Lumen,通过迁移到虚幻引擎5,我们还将获得一些可在游戏内切换的功能,比如NVIDIA Reflex延迟降低和帧生成、Intel XeSS分辨率提升技术、AMD FSR 3.0分辨率提升技术(利用帧插值实现),以满足具有高端GPU的PC玩家。由于并非所有玩家都拥有合适的硬件来充分体验这些功能,我们还必须为每项功能添加切换开关。
如果没有迁移,《永恒空间2》绝不会像现在这样易于维护,未来内容的开发想必也会更加困难。随着我们迁移到最新工具,虚幻引擎将更好地满足我们的开发需求。我们已经可以预见,虚幻引擎5的新工具和功能(例如,对Unreal Insights分析器的持续改进)将推动即将开始的扩展工作取得更高效的进展。
迁移引擎是一项艰巨的任务,尤其是对于已经进入1.0版本的项目来说,更不能轻率对待。我们认为现在的付出是值得的,因为像我们这类游戏,未来还有着很长的内容支持生命周期。
我们发现Lumen是一项非常值得在《永恒空间2》中采用的功能,而且使用起来比人们想象的要容易得多。我们之前提到过,在UE4中,我们使用了烘焙光照和SSGI的组合,因此我们必须以特定方式构建内容,以支持在每个对象上使用光照贴图UV预计算的光照。但是,由于Lumen是一种动态光照系统,它能够很好地与之前使用不同光照解决方案创建的内容相适应。Lumen不关心对象是为动态光照还是为预烘焙光照构建的,这意味着我们几乎不需要调整迁移到UE5的任何内容。
我们游戏的社区对迁移的想法感到兴奋,但我们也敏锐地意识到玩家对性能问题的担忧。
解决方案是:在迁移之前和迁移过程中的里程碑阶段运行自动性能检查,可以为优化机会提供基准和指标。这是我们在项目开始不久就纠正的一个疏忽,我们花费了大量时间开发测试方法,在游戏中添加支持功能,并学习如何处理生成的数据。通过尽早发现并解决与性能相关的问题,我们能够解决许多可能影响玩家体验的因素。
时间始终是一项关键因素。出现的问题会比预期的多,尽管产生了许多错误,但大多数都是小问题,容易修复。以轻松的心态对待工作,清楚透明地向玩家介绍正在处理的项目,将有助于创造让玩家感到满意的作品。
最后,这次迁移也为与虚幻引擎5相关联的游戏更新带来了巨大的关注量。媒体和合作伙伴对于引擎的能力以及它带来的功能非常感兴趣。作为一家独立工作室,曝光度至关重要,这是我们在努力过程中取得的意外收获。
短期来看,迁移到UE5为我们创造了机会,让我们能够添加新功能,并在实施Lumen等新功能和启用最新分辨率提升插件的同时,重新审视流程。同样重要的是,它使团队有机会了解UE5及其功能,这对后面的项目大有裨益。从长远来看,我们期望与未启动迁移项目时相比,《永恒空间2》将来的内容开发过程将会变得更顺利。
虽然我们还有一些小的优化障碍需要解决,但我们认为对于团队和《永恒空间2》而言,采用Lumen并迁移到虚幻引擎5是一次成功的尝试。