三星游戏优化引擎Adaptive Performance
适者生存,这个法则同样适用于游戏,尤其是运行在CPU和GPU资源都有极大限制的移动平台上。在移动平台上,压榨硬件和系统资源并不能有效提高游戏的用户体验,反而会带来温度升高,性能陡降的负面影响,并影响电池寿命。相反的,有效分析系统环境并实时做出调整才更符合移动平台的生存法则,这样才能更加充分地利用相应的硬件性能并达到理想的结果。自适应性能(Adaptive Performance,简称ADP)就是为了方便达到这个目的,所提出来的方法,它为开发者了解系统环境提供了“上帝视角”。
一. 移动端的温控
不同于PC和主机游戏,移动端的游戏如果要想给用户带来最佳的游戏体验,必须要在系统环境和美术效果间做好平衡。也就是说,如果移动游戏的画面过于复杂,占用了过多的硬件资源将导致发热,并引发温控导致电池寿命缩短,性能下降,从而影响玩家的游戏体验。在游戏开发者们需要同时支持很大范围的低端和高端设备时,会经常碰到类似的问题。
上图显示了,在达到某个临界温度的前后性能的差异,可以发现,在达到临界温度后,触发了手机系统的温控,FPS峰值和稳定性都迅速下降,同时也可以看到,CPU和GPU的工作频率也开始逐步下降。
二. 什么是自适应性能?
自适应性能(Adaptive Performance)是三星GameDev研发团队与移动游戏引擎开发商Unity的深度合作所开发出的性能优化开发包。通过游戏引擎,我们可以为开发者提供更多获取底层信息的接口,比如温度的上升趋势,CPU/GPU频率控制等。开发者们通过这些接口,就可以自主调整游戏的画面和性能,从而控制游戏与设备间的性能平衡,而通过这些有效的实时调整,可以有效地降低温度和功耗,同时在保证画质的情况下带来更流畅的游戏体验。
三星S10是全球首款全面支持Unity引擎Adaptive Performance功能的手机,之后也会有更多新的三星手机加入其中。
下图是在S10上,使用和不使用Adaptive Performance的情况下,Unity Megacity Demo的FPS对比结果。可以看到,使用Adaptive Performance后,游戏平均帧率和帧率稳定性都有了大幅提升。同时测试显示,Adaptive Performance也可以有效改善手机的发热现象。
<图片源自Unity Blog>
三. 如何使用Adaptive Performance?
1. 安装
第一步,我们需要通过Unity Package Manager安装Adaptive Performance开发包:
· Adaptive Performance
· Adaptive Performance Samsung Package
这些安装完毕后,Adaptive Performance和三星GameSDK就会被自动加载进游戏工程中。
2. 回调和响应
2.1 默认流程
基于三星GameSDK所提供的硬件和设备信息(温度状态,升高趋势等),游戏引擎可以对渲染做出实时性的调整,默认流程分为两个部分:
· 性能的自动调节
设置达到目标帧率所需要的最低的工作频率,换句话说,就是持续调整CPU和GPU的频率,直到他们正好能满足运行目标帧率,这样可以有效延长电池寿命,延缓发热,保证玩家拥有更长时间的最佳游戏体验。
· 通过温度信息判断温控发生的时间点
通过设备的温度状态和上升趋势,可以提前判断出温控发生的时间点,从而提前调整目标帧率和游戏的质量,阻止温控的发生。
* 从Adaptive performance 2.0.0版本开始,将支持游戏画面scalable factor 调整功能
下图为Adaptive Performance 默认的控制方案。
2.2 自定义流程
Adaptive Performance提供了一系列的API帮助开发者们监控系统状态并搜集信息。通过这些接口,开发者可以根据他们游戏自身的特点,定制他们自己的优化方案。
· 动态画质调整(极力推荐)
如之前所述,Adaptive Performance默认的功耗控制流程可以有效降低功耗,提高电池寿命,保证玩家拥有更长时间的流程体验。
但是,通过预测温控发生的时间点,我们还能达到更好的效果,更长时间地保证游戏的高性能。
从以上代码可以看见,在性能因为温控发生而下降之前,游戏可以通过lodBias主动调整画质细节,降低温度的上升趋势,从而阻止温控的发生。
这方面具体的内容可以参考以下链接:
四. 未来计划
三星GameDev组将继续和Unity保持深度合作,并不断升级Adaptive Performance的功能。新版本中将加入画质自动调整的功能并支持多刷新率。同时Unity Editor中现在还加入了模拟器的功能,开发者可以通过模拟器方便地观察Adaptive Performance方案的表现。
五. 联系我们
如果您对游戏优化有任何建议或意见:
欢迎发邮件到:rdtpservice@samsung.com
邮件主题:三星游戏优化+APP名
感谢您的关注和参与!