Android 动态性能框架 (ADPF) 允许游戏与系统交互、接收热数据分析(例如预测的余量)并影响行为,从而帮助开发者主动管理设备散热和性能。使用 ADPF 的智能自适应可防止严重节流,并实现更流畅、更持久的游戏体验。本指南介绍了有效使用 ADPF 的实用策略。它侧重于与游戏的特定质量设置直接关联的自定义精细扩缩,并由 ADPF 热数据驱动。通过实施这些做法,您可以主动管理发热,并制作能长时间运行的游戏,从而为玩家带来更可靠、更愉悦的体验。
自定义性能扩缩
默认 ADPF 插件扩缩可能会以通用引擎预设(例如低、中和高)为目标。如果您的游戏使用不同于这些默认设置的独特图形质量选项,则插件的假设与您的内容不符。您必须自定义 ADPF 逻辑,以直接控制游戏的特定质量设置以实现有效热管理,而不是依赖于不匹配的默认值。使用 ADPF 数据创建精细的扩缩逻辑,以获得更好的结果:
- 确定关键因素:分析游戏性能,找出哪些图形或游戏功能(阴影、分辨率、粒子、效果、视角)对性能和发热影响最大。
- 制定精细的步骤:为游戏的质量选项中的各项设置定义细微的渐进式调整。请根据 ADPF 的热反馈逐步应用这些更改(例如,利用热余量数据),以便在出现严重限制之前温和地缓解系统压力。
上面的视频展示了 Unity MegaCity Metro 中的 ADPF 渲染问题。由于 ADPF 会根据常规游戏引擎范围(而不是适合特定游戏内容的范围)调整视图距离,因此当设备发热时,视图距离会变得非常低,从而导致出现建筑物不再可见的问题。
隔离图形设置
避免大幅更改预设。通过单独调整各个图形设置,您可以在响应热条件时实现更精细的控制和更顺畅的体验。以下是调整设置的一些提示:
- 优先考虑影响:将工作重点放在质量选项中,在分析过程中识别到最显著的散热或性能影响的设置上。
- 分离设置:根据需要独立、依序修改阴影、分辨率和粒子等设置。
- 流畅过渡:在可行的情况下,会在几帧上逐步过渡视觉设置,以使其不那么突兀。
查看 Netmarble 使用 ADPF 优化《Game of Thrones: Kingsroad》。 他们实现了动态分辨率缩放和自适应帧速率调整。
提供用户控制权
与动态调整相比,一些玩家更喜欢一致的视觉效果。提供一个选项以停用 ADPF 驱动的扩缩:
- 实施选项:在图形菜单中添加明确标示的设置(例如“启用动态性能调整”)。
- 说明您的选择:简要说明此选项支持自动质量调整,以实现更顺畅的性能和热管理。
- 定义行为:启用后(推荐默认设置),您的自定义 ADPF 扩缩逻辑会运行。停用后,游戏仅使用用户手动选择的设置,并忽略用于缩放的热数据。
跨设备测试
Android 硬件在热容量和性能方面存在显著差异。在不同类型的设备上进行全面测试:
- 定义设备层级:在来自各个制造商和 SoC 供应商的代表性高端、中端和低端设备上进行测试。
- 测试热响应:观察不同设备如何处理负载,以及 ADPF 逻辑(和用户切换开关)在每个层级上的效果。
- 验证性能目标:在启用 ADPF 的情况下,确保游戏在每个层级上都能达到性能目标,并且在停用 ADPF 后能按预期运行。
- 收集反馈:通过 Beta 版计划从各种实际设备收集性能和热数据。
监控性能并不断改进
实现 ADPF 需要持续监控和优化,以平衡持续性能、热限制和视觉质量:
- 建立基准和目标:先定义可接受的性能(目标 FPS、帧时间),并在没有 ADPF 逻辑的情况下测量行为。
- 使用分析工具:在游戏过程中定期使用 Android Studio 性能分析器、GPU 供应商工具和游戏内叠加层来跟踪 FPS、帧时间和 ADPF 热数据。
- 实验和调整:测试不同的 ADPF 响应策略。根据热输入调整设置缩放的速度和幅度,以找到游戏的最佳平衡。
- 测试长时间会话:确保测试包括更长的游戏时间(15 分钟以上),以观察启用 ADPF 时的持续负载性能和热稳定性。