NCSoft Lineage W 利用 ADPF 提升持续性能并防止热节流

Screenshot from NCSoft Lineage W

NCSoft Lineage W 是一款由 NCSoft 开发的大型多人在线角色扮演游戏 (MMORPG)。这款游戏传承了初代 Lineage W 的精髓,为来自世界各地的玩家提供了一个环境,让他们可以在全球服务器上合作和竞争。游戏设定在一个独特的中世纪奇幻世界,Lineage W 通过各种职业、技能和战斗系统为玩家提供了深刻的游戏体验。

NCSoft 使用了 Android 动态性能框架来最大限度地提高图形质量,同时防止热节流引起的性能问题。

Android 动态性能框架

Android 动态性能框架 (ADPF) 提供有关资源使用情况的信息,并帮助开发者实时响应不断变化的性能、热量和用户状况。它包括热量和性能提示 API。热量 API 提供有关设备热量状态的信息,而性能提示 API 提供性能提示,帮助 Android 选择最佳的 CPU 工作点和核心放置位置。 热量 API 提供有关设备热量状态的信息,而 性能提示 API 提供性能提示,帮助 Android 选择最佳的 CPU 工作点和核心放置位置。

虚幻引擎 ADPF 插件

虚幻引擎 ADPF 插件 提供了在使用虚幻引擎的游戏中使用 ADPF 的最简单方法。

该插件每秒检查设备的热量状态。当设备过热时,该插件使用默认的虚幻可扩展性设置调整图形质量设置。有四个级别,每个级别都映射到不同的图形质量(分辨率、视野距离、后期处理等)。

如果您已经拥有可由玩家配置的内置游戏设置(例如低、中和高质量),我们建议您使用这些设置,而不是默认的虚幻可扩展性级别。

该插件使用两种方法来检查设备热量:一种是评估热量裕量,另一种是检查热量状态。热量裕量提供更详细的信息,默认情况下已启用。

该插件为游戏和渲染线程创建两个性能提示会话。它每帧向框架报告目标持续时间和实际持续时间,并帮助实现目标每秒帧数 (FPS)。

NCSoft 如何优化性能

图 1. 游戏视频。

《天堂W》使用 ADPF 来防止由热功耗导致的性能问题。他们努力最大限度地利用图形质量设置,以提供显着的性能提升,同时最大程度地减少对实际游戏玩法的影响。NCSoft 在通过余量值调整质量时验证了每个阶段的稳定性和运行情况。需要进行各种测试才能为用户提供在调整图形质量设置的每个值时都能获得良好的游戏体验。

游戏默认情况下以 30 FPS 为目标,但 NCSoft 将目标 FPS 更改为 60 以测试 ADPF 如何提高其 FPS。

Screenshot from NCSoft Lineage W

在 Pixel 6 上运行 Android 13 的 30 分钟游戏测试中,FPS 从 60 FPS 急剧下降到 32 FPS,热余量值在 4 分钟时达到 1.0f(严重热功耗的阈值)。

Screenshot from NCSoft Lineage W

当游戏使用 Unreal Engine ADPF 插件以及默认的 Unreal 可扩展性时,它能够在 15 分钟内保持 60 FPS。这 30 分钟内的平均帧速率也提高到 57.5 FPS。但是,热余量显示出与之前类似的值,这意味着设备以类似的方式发热并遭受热功耗。

Screenshot from NCSoft Lineage W

为了解决这个问题,《天堂W》团队决定需要让 ADPF 更多地控制保真度参数以避免热功耗。在将《天堂W》的游戏内图形质量设置与 Unreal Engine ADPF 插件集成后,他们取得了最佳效果。这种集成带来了稳定的 60 FPS 帧速率,同时保持热余量值低于 1.0,表明热管理效率高。

通过将《天堂W》的游戏内质量设置与 ADPF 结合使用,NCSoft 能够提供更稳定、更愉快的用户体验。

Screenshot from NCSoft Lineage W

由于 ADPF 未得到所有 Android 设备制造商的完全支持,因此 NCSoft 将其作为游戏内选项“自适应性能优化”实施,供玩家选择。

开始使用 ADPF 和 Unreal Engine 插件

有兴趣使用 Android Adaptability 或 ADPF Unreal Engine 插件的开发者应执行以下操作

  • 详细了解 ADPFUnreal Engine ADPF 插件
  • 自定义您的缩放器以适应您的游戏内容,而不是使用 Unreal Engine 可扩展性
  • 监控游戏的性能以确保其符合预期。尝试不同的设置,以找到最佳性能和最小的热量增加。
  • 分别更改图形质量设置以减少突然的性能下降。

无论使用哪种引擎,您始终可以选择直接使用 API。详细了解 Android AdaptabilityUnreal Engine ADPF 插件