ADPF 最佳实践

Android 动态性能框架 (ADPF) 通过让游戏与系统交互、接收热量洞察(如预测的余量)并影响行为,帮助开发者主动管理设备散热和性能。使用 ADPF 进行智能适配可防止严重的性能限制,并实现更流畅、更长时间的游戏体验。本指南提供了有效使用 ADPF 的实用策略。它侧重于与您的游戏特定质量设置直接关联并由 ADPF 热量数据驱动的自定义、精细缩放。通过实施这些实践,您可以主动管理散热并创建性能更佳、运行时间更长的游戏,从而为玩家带来更可靠、更愉快的体验。

自定义性能缩放

默认的 ADPF 插件缩放可能针对通用引擎预设,例如低、中、高。如果您的游戏使用与这些默认设置不同的独特图形质量选项,插件的假设将与您的内容不符。您必须自定义 ADPF 逻辑,以直接控制游戏的特定质量设置,从而实现有效的散热管理,而不是依赖不匹配的默认设置。使用 ADPF 数据创建精细的缩放逻辑以获得更好的结果

  • 确定关键杠杆:分析您的游戏,找出哪些图形或游戏功能(阴影、分辨率、粒子、效果、视距)对性能和散热影响最大。
  • 制定精细化步骤:为游戏质量选项中的各个设置定义小幅增量调整。根据 ADPF 的热量反馈(例如,利用热量余量数据)逐步应用这些更改,以便在出现严重性能限制之前,温和地减轻系统压力。
Unity MegaCity Metro 中 ADPF 的渲染问题。

上述视频展示了 Unity MegaCity Metro 中 ADPF 的渲染问题。由于 ADPF 根据通用游戏引擎范围而非适合特定游戏内容的范围调整视距,当设备发热时,视距会变得过低,从而导致建筑物不再可见的问题。

隔离图形设置

避免剧烈的预设更改。独立调整各个图形设置可提供更精细的控制,并在应对散热情况时提供更流畅的体验。以下是一些调整设置的技巧:

  • 优先考虑影响:将缩放工作重点放在质量选项中,在分析过程中确定对散热或性能影响最大的设置。
  • 解耦设置:根据需要独立并按顺序修改阴影、分辨率和粒子等设置。
  • 平滑过渡:在可行的情况下,在几帧内逐步过渡视觉设置,以减少突兀感。

查看 Netmarble 如何使用 ADPF 优化《权力的游戏:王者之路》。他们实施了动态分辨率缩放和自适应帧率调整。

提供用户控制

某些玩家更喜欢一致的视觉效果而非动态调整。提供一个选项来禁用 ADPF 驱动的缩放:

  • 实现一个选项:在您的图形菜单中添加一个清晰标记的设置(例如,“启用动态性能调整”)。
  • 解释选择:简要说明它可实现自动质量调整,以获得更流畅的性能和散热管理。
  • 定义行为:启用时(推荐默认),您的自定义 ADPF 缩放逻辑会运行。禁用时,游戏仅使用用户手动选择的设置,并忽略用于缩放的热量数据。

跨设备测试

Android 硬件在散热能力和性能方面差异显著。在不同设备类型上进行全面测试:

  • 定义设备层级:在来自不同制造商和 SoC 供应商的代表性高端、中端和低端设备上进行测试。
  • 测试散热响应:观察不同设备如何处理负载,以及您的 ADPF 逻辑(和用户开关)在每个层级上的有效性。
  • 验证性能目标:确保游戏在 ADPF 启用时达到每个层级的性能目标,并在禁用时表现可预测。
  • 收集反馈:使用 Beta 版计划从各种真实设备收集性能和散热数据。

监控性能并迭代

实施 ADPF 需要持续监控和改进,以平衡持续性能、散热限制和视觉质量:

  • 建立基线和目标:定义可接受的性能(目标 FPS、帧时间),并首先测量没有 ADPF 逻辑时的行为。
  • 使用性能分析工具:在游戏过程中,定期使用 Android Studio Profiler、GPU 供应商工具和游戏内叠加层来跟踪 FPS、帧时间以及 ADPF 热量数据。
  • 实验和调优:测试不同的 ADPF 响应策略。根据热量输入调整设置缩放的速度和激进程度,以找到游戏的最佳平衡点。
  • 测试长时间会话:确保测试包含长时间游戏(15 分钟以上),以观察 ADPF 启用时的持续负载性能和热稳定性。