EVE进化项目:提高游戏帧数,减少CPU占用
致追求性能的克隆飞行员:
最近发布的EVE进化项目日志探讨了Quasar大幅改进网络通信管理的方式,以便更好地发挥SKINR等功能。本文是聚焦EVE进化项目计划的系列开发日志的最后一篇,在此我们将探讨客户端的性能,以及计划在3月发布的图形渲染改进内容。
Trinity
无论是在小巧精致的死亡空间中,还是在有数千名玩家参加的舰队战斗中,都可能发生数不清的意外状况。这就给EVE Online带来了许多独特的技术挑战,影响着游戏的体验和玩法。
“如何在屏幕上显示所有这些内容?”就是其中一项挑战。为此,EVE使用了自己的渲染引擎——Trinity。渲染引擎极其复杂,总的来说,就是要尽可能快地完成大量复杂的计算,使游戏画面更精美,运行更流畅。
Trinity要解决大量可能出现的问题,尤其是计算机硬件方面的问题。有玩家使用陈旧硬件玩游戏,也有玩家几乎每年都会用最新的尖端技术更新系统。这种差异说明,没有适合游玩EVE的“普适型”硬件配置,而且所有此类系统都必须支持渲染。
从玩法角度来看,EVE的游戏风格千变万化。说到渲染,在空间站中进行交易肯定没问题,但要在零安地区航行时被大型舰队进行热空投,这就有些复杂了。游戏必须将大量资产一同载入内存并全部进行渲染,同时还要尽可能保持较高的帧数。
EVE已上线22年,仍在不断增加新资产,这让问题变得更加复杂。十年前增加的图形功能原本只适用于当时的计算机硬件,但在现代硬件上的运行速度会明显加快。鉴于新伊甸中的模型和贴图素材高达数千种,如何在确保不损坏现有资产的同时为EVE实装最新的渲染功能就成为了一项艰巨的任务。
综上所述,对Trinity引擎的改进必须慎之又慎。
性能
在2023 Fanfest上,我们对一些计划中的变革提出了未来设想。其中,GPU驱动管线这项功能是对CPU和GPU的协同工作方式作出的技术改革。按照传统方式,渲染场景需要先由CPU计算出要发送给GPU的内容,再由GPU执行工作。这一点在链接的演示文稿有更详细的介绍,而更现代化的渲染管线可以让GPU完成更多的计算任务,从而减少CPU开销。这么做有以下优势:
EVE通常是CPU密集型游戏,也就是说CPU才是限制因素,而不是GPU。在这些情况下,释放CPU将大有裨益。
这种方法运用了DirectX 12 (Windows)和Metal (macOS)提供的先进功能,大大加快了渲染速度,使现代GPU能够渲染更多帧。
这种方法可以轻松地为代码库新增或更改功能,让克隆飞行员可以更快体验到改进效果。此外,美术师向游戏导入新资产的流程也得以简化。
每台电脑的CPU和GPU组合方式各不相同,决定了性能的提升效果。当CPU无法为GPU提供足够数据时,提升效果达到最大。这是EVE的常见问题,就算是配置均衡的计算机也不能避免,原因就在于引擎架构和可能推出的涌现式玩法。这个问题在舰队战斗中就有所体现。由于客户端的CPU负载相当高,即使GPU可以分担更多工作,帧数也还是会下降。
在具有平衡组件的典型计算机系统中,这些变化会带来显著改进。在极少数情况下,将处理速度较快的GPU与处理速度较慢的CPU搭配使用,会让性能的提升效果更为可观。
改进Trinity引擎时会用到“EVE探针”这一特殊工具。它的作用就是保证仅对渲染和音频引擎进行测试。这是一种轻量应用,不含游玩EVE Onlin所需的其他系统,如用户界面、网络协议栈,甚至是键盘和鼠标输入设备!在混乱的实时服务器环境之外,可以用这种方法进行可靠的性能测试。
“死亡魔方”是热度最高的测试场景之一,在之前的开发日志中有所介绍。简单来说,这项测试包括1,000艘均匀分布且固定不动的舰船。它们可以互相射击,视觉效果非常震撼!前后对比很明显,性能的提升效果显著。
测试不同硬件后,我们发现DirectX 12通常能将帧数提高10-30%。在某些情况下还能更高:在一次测试中,AMD 6800XT在4k分辨率上的性能提升了约52%!
macOS的情况稍有不同。2020年,苹果发布了将CPU和GPU集成在同一芯片上的“M1”SoC芯片。与典型的Windows系统相比,这些芯片的CPU和GPU完美匹配,能够展开更紧密的协同工作。此外,大多数macOS用户都拥有高分辨率的屏幕,进一步提升了GPU的性能极限。在高分辨率下(4k及以上),两者的性能表现基本持平;但在低分辨率下(如1920x1200),SoC芯片可以轻松提高25%的帧数。
下面列举了部分系统实例,以及它们在EVE探针最高设置下的性能提升情况:
CPU和GPU | 分辨率 | 改进前帧数 | 改进后帧数 | 帧数提升百分比(%) |
i7-7700 CPU搭配GTX 1060 | 1920x1080 | 40 | 53 | +32% |
Ryzen 7 5800X搭配Radeon RX 6800 XT | 3840x2160 | 46 | 70 | +52% |
i7-11700搭配RTX 4070 Ti | 3840x2160 | 44 | 61 | +38% |
Ryzen 7 7800X3D搭配Radeon RX 7800 XT | 3840x2160 | 60 | 68 | +13% |
Mac M1 Max | 1920x1200 | 34 | 43 | +26% |
GTX 1060已推出近9年,因此要求它在最高设置下处理1,000艘舰船信息是相当困难的。降低图形设置通常会进一步提高帧数,因此只需稍作调整,该显卡就能轻松达到60帧。考虑到它的推出年限和需要渲染的内容,这样的表现已经十分出色!
有关性能提升的更新内容计划于3月发布。只需确保启动器已启用DirectX 12即可。如果无法使用DirectX 12,你还可以对DirectX 11进行些许改进。
下一步呢?
要将工作转移给GPU驱动的渲染管线,就必须对Trinity引擎进行重大重构,但可以为未来开发更多功能、提升性能和提高图形保真度奠定良好基础。我们已经在去年的大规模测试中展示了一些改进内容,例如升频和光线追踪阴影。虽然还没准备发布到Tranquility,但这些测试验证了方法的有效性。衷心感谢在去年和上周末参加测试的所有人。你的贡献意义重大!
随着GPU的使用率提高,客户端中受此限制的场景将会更多(即使整体帧数更高)。此时选择升频解决方案将有效提高帧数。更多详情请见后续的开发日志。
聚焦EVE进化项目计划的系列日志到此结束。希望你喜欢这次我们对核心引擎的简要介绍。不要忘记新伊甸一直都在进化发展,并在不断完善和进步。一路顺风,困知勉行。
o7