英特尔帮助优化 Epic 的《堡垒之夜》* 和 Unreal Engine*

英特尔® 开发人员专区(英特尔® DZ)在 Epic Games* 采访了《堡垒之夜》* 的技术负责人 Bob Tellez。您可能知道,Epic 的游戏《堡垒之夜》是 Unreal Engine* 技术的绝佳示例,《堡垒之夜》的开发团队正不断改进游戏,增加支持平台的数量并将这些洞察反馈给引擎。我们想深入了解他们的流程如何影响 Unreal Engine 以及英特尔在协助部署优化中所起的作用。以下是我们的谈话要点。

Fortnite game
图 1.《堡垒之夜》插图,图片来源:Epic Games

英特尔 DZ:《堡垒之夜》因为容易访问而著称,我们从跨平台联机中便可窥见一二。开发《堡垒之夜》时,您一直将可访问性放在首位吗?

Bob Tellez:我们总是努力让游戏在尽可能多的设备和平台上运行。最初构建游戏时,我们首先以 PC 为目标,在设计和核心要求方面向 PC 靠拢。当我们开始与公众交流后,便决定将游戏扩展到游戏机。但是拥有广泛的用户群并使尽可能多的人访问游戏一直是我们的计划。

英特尔 DZ:鉴于你们在自己的引擎中处理大量的工作,无论是《堡垒之夜》的开发还是引擎本身,你们能够利用 Unreal Engine 优化技术或发现吗?

Bob Tellez:当然,我们的文化是最大限度地利用我们的技术。过去几年,我们主要依靠《堡垒之夜》来试验新上市的 Unreal Engine 特性,添加特性时,我们会提供平台支持。基本上,当我们需要在游戏中做某项工作,而这也符合其他 Unreal Engine 用户的诉求时,我们会尽力确保以通用的方式编写代码,以便其他人将其用于自己的项目。我们会在发布游戏的每个平台上这样做,进行细致梳理以确保快速、高效地完成所有任务。

我们怀着激动的心情开发《堡垒之夜》背后的引擎,因为我们所做的一切会使其他 Unreal Engine 被许可人受益。虽然我们有很多问题没有解决,但是我们所有的解决方案都可以帮助他人。每个人都能从我们的工作中受益。

英特尔 DZ:您对哪个特性或改进特别引以为傲?

Bob Tellez:我们对 Unreal Engine 中网络复制的方式进行了重构,使其更基于事件,以节省专用服务器的时间。我们减少了动作之间的延迟,为每个游戏玩家提供了更好的体验。该特性在 Unreal Engine 4.20 和后续版本中提供。

英特尔 DZ:自游戏发布以来,您认为大部分精力都用在网络问题和延迟,以及改进体验上?还是您仍在处理图形、素材和游戏的其他方面?

Bob Tellez:我们一直在所有平台上优化游戏的各个方面,通常也对 Unreal Engine 进行优化。我们的主要工作是使游戏机在 60 FPS 的模式中运行,以及引入动态分辨率扩展。是的,我们始终关注游戏的各个方面,包括网络带宽使用、服务器 CPU 利用率、CPU/GPU 线程、服务器内存等。

英特尔 DZ:您如何将所有优化结合在一起?它们听起来很难协调。

Bob Tellez:我们最终扮演多种角色。我们成立了独立的团队来处理不同的事项,例如,我们使用不同的工程师来优化特定的游戏机或专用服务器,以确保强大的性能。我们的职责主要是协调战略工作,以确定可以优化的部分并帮助各团队提出可行的解决方案。因此,我们会分配工作。

英特尔 DZ:在《堡垒之夜》的早期,你们致力于提升高端设备还是低端设备的性能?

Bob Tellez:我们实际上首先确定目标设备是什么,主要分析我们的潜在玩家群体。弄清楚他们使用的 PC 型号后,我们确定了每个目标设备类型。我们在开发过程中一直以它为标准,偶尔会重新分析会出现什么样的新设备。只面向 PC 优化要简单得多,因为需要跟踪更少的设置和组合,但是我们的决定是很大程度上基于潜在玩家的分析数据。

英特尔 DZ:创意如何进入设计流程?

Bob Tellez:图形工作者制定有关游戏画面的决策,然后,工程师审核游戏设计,以确保它的可行性。至于它的可扩展性,我们一般设定目标后便放手去做。它与艺术风格无关,不管是写实风格还是卡通风格,优化流程都是一样的。

英特尔 DZ:因此,就艺术和创新方向而言,这不是“我们能做到吗”的问题,而是“我们如何做到”的问题。

Bob Tellez:当然,即使像我们这样负责性能的工程师也希望游戏越疯狂、越有趣越好。有时会遇到一些瓶颈,但是我们总是靠集体的力量查明原因。需要指出的是,讨论优化时,我们的方向确实来自于特性。在项目初期,我们为玩家 vs. 环境 (PvE) 模式(亦称“拯救世界”模式)构建了类似于 RPG 的系统,并且我们决定添加我们所谓的游戏能力系统。它更受数据驱动,因此,我们不需要制作单个项目,只需参考属性电子表格。这生成了一整套特性,它们慢慢融入 Unreal Engine 的主要分支,现在已向所有开发人员开放。在渲染方面,由于玩家可以动态地构建墙壁和摧毁建筑物,我们开发了距离场环境遮挡和距离阴影效果,为游戏提供了保真度更高的图形。这些已经发布的特性是必不可少的,因为游戏非常流畅,我们无法预先烘焙所有对象。

英特尔 DZ:制作游戏的过程中,您的优化流程和工作流程是否发生了改变?

Bob Tellez:工作流程当然会随着参与流程的人数波动而有所变化。我们在开发特性的过程中优化,但是随着发布日期的邻近,我们会让更多的人加入,以准备好向公众开放。随着时间的推移,流程无疑变得更完善、更标准。自动执行性能测试和不断获得游戏性能反馈对我们帮助很大。此外,我们还能从内部日常游戏测试中获得性能反馈。

例如,如果我们发现特定游戏机或规格出现丢帧,我们可以在日常报告中调出。质量保证 (QA) 已经收集了游戏机或 PC 的分析报告,并使用我们的工具来指出哪个地方出现了帧故障,这样我们可以发现并优化它。我们将实施新的帧或确定导致性能下降的变动。

英特尔 DZ:你们每天进行测试时,如果发现性能下降,会知道只有一小部分发生了变化,这是否有助于你们缩小范围?

Bob Tellez:是的。我们是一家快节奏公司,我们想尽快推出新技术。事实证明,手动测试太慢,因此我们设计了可以自动执行测试的系统。我们不仅可以当天得到结果,有时几个小时内就可以得到结果。我们的游戏测试频率从每天一次提升至每天多次。条件允许的话,我们会考虑每十分钟一次。

英特尔 DZ:您觉得硬件组合是一种挑战还是乐趣?比如,在相同的平台上融合,将工作分配到 CPU/GPU 计算等。

Bob Tellez:得到一个新硬件,弄清楚它的工作原理,然后了解它的优势和劣势真是太有意思了。随后,我们使用独立于平台的代码修改底层机制,以充分利用硬件的工作原理。

英特尔 DZ:英特尔如何协助优化流程?

Bob Tellez:英特尔在该项目中为我们提供了很大的帮助。英特尔很早就联系我们,表示想帮我们让庞大的客户群体更容易访问游戏。他们偶尔会到总部待一周左右的时间,与我们共同分析英特尔特定的硬件,以了解我们的瓶颈并提出改进方法。

几年前,我们在渲染方面与英特尔合作,他们帮助我们分析英特尔 GPU 上的《堡垒之夜》,以提供有关限制的深入信息;我们是否使用太多绘制调用,我们是否受顶点的限制,我们是否受带宽的限制等。

过去,我们的屏幕空间环境遮挡路径严重受到带宽的限制,因此,英特尔提出了关于如何改进以及设计不同选项的建议。我们共同致力于将其纳入《堡垒之夜》和 Unreal Engine,这样我们便可以专注于更高级的特性和优化,而不用过于担心英特尔特定的硬件。

我们还获得了有关硬件工作原理的深刻见解,通常每次英特尔来访后,我们都会有很大的提升。例如,我们在采用条件表达式的地形中进行了大量的纹理提取,这对于某些硬件来说非常昂贵。我们可能不会注意到它,但是英特尔指出这一点,这使我们大幅恢复了性能。此外,在构建《堡垒之夜》时,英特尔对 Unreal* Tournament 中的多边形目标提供了一定支持,这为我们制定英特尔® GPU 方面的决策提供了依据。

Fortnite game
图 2.《堡垒之夜》第七季插图,图片来源:Epic Games

如欲了解有关如何将英特尔工具用于您的游戏的更多信息,请访问英特尔® 开发人员专区

如欲获取更加个性化的游戏开发人员内容,请加入英特尔® 游戏开发人员计划

standard
有关编译器优化的更完整信息,请参阅优化通知