再也不用焦虑特效造成的性能问题了

游戏的特效表现,可以说有着“在刀尖上跳舞”的难度,需要在确保流畅展现更好的场景氛围、技能效果、装备展示、打击反馈等特效的同时兼顾色彩冲突、卡顿、发热等影响玩家体验的表现,最终实现完美的效果和性能表现的最佳组合。

那如何运用UWA Pipeline提供的云真机系统实现在研发过程中快速、持续且全自动的特效性能检测呢?本期就向大家分享来自深圳雷霆项目组的实战经验。

一、特效资源的专项检测

特效相关的制作与优化,在项目开发过程中会占到相当的比重。项目团队要花费大量的时间去检验各类特效资源在项目运行时的直观表现,同时也要去排查和定位与之相关的卡顿、发热等问题。

但在项目中对特效资源进行检测时,往往会受到各种因素的干扰。比如身处不同的关卡场景、环境的复杂程度不一、人物选择或装备差异等,都会对特效的展示观察与数据分析带来相当程度的影响,例如:复杂的特效在简单环境下播放时看不出压力,或者GPU耗时等相关数据混杂了场景内其他元素而无法单独分析等。

为了排除这些干扰,雷霆团队的做法是将项目的特效资源单独出包,通过UWA Pipeline实现了“特效包”在批量的真机上自动安装、自动运行并输出特效的性能表现数据。

“特效包”apk在真机运行时,进行特效数为10的播放展示
(可选择左侧栏列表对应的特效)

结合UWA GOT Online性能测评工具,就可以实现特效性能的检测。UWA建议特别需要关注特效在以下几个性能参数的表现:

  1. GPU耗时和GPU Cycles: 直接查看粒子特效在真机播放时的GPU性能开销。研发团队可以设定一定的阈值(例如3或5ms),对于超过开销阈值的特效可以筛查和监控;
  2. DrawCall和Triangle: 可以查看粒子系统的复杂程度,一旦超标就可以及时发现;
  3. 半透明渲染耗时:可以直接看出粒子特效播放时在CPU端的开销。
    再也不用焦虑特效造成的性能问题了_第1张图片

关于“特效包”的播放用例,UWA建议:

  1. 在新建项目内,以默认天空盒或纯色(Solid Color)为背景即可,这样能避免在数据采集时场景和角色等的干扰;
  2. 以特效为单位进行场景分割,这样在查看UWA GOT Online的性能分析报告时,各个特效的数据可以互不干扰,便于定位与分析;
  3. 增加前进、后退、重播和跳转选项,这样无论是脚本运行还是手动测试,都可以随时介入,选择指定特效进行播放与测试;
  4. 在每个特效播放完后,进行清除操作,从而避免内存泄漏。

https://www.youku.com/video/X...
“特效包”的播放示例及GOT Online报告查看


二、UWA Pipeline流水线展示

再也不用焦虑特效造成的性能问题了_第2张图片

如图所示,雷霆团队为实现在批量真机上的特效检测,在UWA Pipeline内单独建立了一条流水线,包含了“Build”、“Upload”和“Test”三个步骤。实现了自动出包、大批量真机设备上的自动安装,特效资源在真机上的自动播放,以及自动调用GOT Online服务生成性能检测数据。

“Build”自动打包步骤我们在此不进行赘述,各个团队可以选择适合自己项目的打包方式,在Pipeline内直接编写命令,或者调用已有的打包脚本,确保每次开展测试时,都能从项目中拉取最新的特效资源,实现项目特效资源的自动化打包。

“Upload”步骤,是将“特效包”上传至Pipeline的包管理,用于后续自动化测试时,在批量真机设备上实现项目的自动安装。
再也不用焦虑特效造成的性能问题了_第3张图片

最后的“Test”步骤,是在流水线内添加了使用GOT Online步骤,选择适用的脚本和真机设备,如此雷霆团队用来实现批量真机“特效检测”的UWA Pipeline流水线就部署完成了。
再也不用焦虑特效造成的性能问题了_第4张图片


三、真机运行、数据反馈

在确保所需的真机设备正常接入UWA Pipeline云真机系统之后就可以开始真机测试了。雷霆团队的测试包可以实现在排除项目原有环境、场景、角色等因素干扰的情况下,直接观察各个特效在不同真机设备上的真实表现,从而找出不合理的粒子、贴图、模型等相关的性能问题。
再也不用焦虑特效造成的性能问题了_第5张图片

同时,可以使用UWA GOT Online准确采集特效播放时的GPU耗时、 DrawCall和Triangle参数,通过分析报告,找出其中可能存在的性能问题,并及时优化。

再也不用焦虑特效造成的性能问题了_第6张图片
GOT Online - Overview模式中的GPU耗时页面


四、另一条通向罗马的路径:多设备调试

如果当前你的项目还无法通过自动化脚本在真机上实现持续且高频的特效播放与测试,这种情况下,就可以使用UWA Pipeline中的另一项功能 - 多设备调试(1拖N)

首先,例如“特效包”等可执行的测试包都可以上传至包管理,然后在真机设备上实现批量化的包体安装,大幅提高效率。
再也不用焦虑特效造成的性能问题了_第7张图片

然后通过多设备调试功能,选定所需的真机设备。在UWA Pipeline网页端,只需一位测试人员,就可以通过对一台真机设备的操控,从而控制整个设备集群。

测试结束时,大家就可以手动上传GOT Online的测试数据(使用UWA Pipeline可以实现测试数据的自动上传),然后就能对性能报告进行查看与分析。


以上便是雷霆团队在UWA Pipeline使用上给我们带来的分享。可以在直观了解特效资源播放表现的同时通过数据及时发现问题,并快速解决。这种将项目特效资源单独成包,并进行常态化真机运行与测试的方式,相信能为大家在项目日常开发过程中关于对特效的优化带来更多的思路与借鉴。

更多UWA Pipeline使用案例分享可以查看:

《一款ARPG游戏是如何搭建云真机系统的》
《乐享元游的 UWA Pipeline 最佳实践分享》

想要实际体验UWA Pipeline?请点击《免费试用 |UWA性能保障体系全体验》,15天Pipeline全服务试用就在眼前!

你可能感兴趣的:(性能优化性能分析性能测试特效)