网易首页 > 网易号 > 正文 申请入驻

从定标准到搭流程,看UWA性能保障体系搭建的实例分享

0
分享至

本次分享选自 UWA DAY 2022 “UWA性能保障体系进一步拓展”议题 ,来自侑虎科技CTO张强的分享。从 “性能评分”、“推荐值”、“设备分档”和“自动化平台”四部分介绍UWA团队近一年来在性能保障上的探索。特别适合游戏初期进行项目质量规划和标准制定的大中型团队,以及正在研发周期过程中的中小型游戏研发团队。后者由于人力物力问题,并没有充足的资源来将质量标准在前期就定制完备,所以需要在整个项目研发阶段过程中对质量标准都不断进行迭代和调优。希望本文可以帮助到上述团队更加方便地达成目标。

以下是演讲实录(部分删改):

大家好,我是UWA公司张强,本次分享由我来带关于性能保障体系的进一步拓展的分享。将分为“性能评分”、“推荐值”、“设备分档”和“自动化平台”四部分,前三个是我们希望针对工业化方向上的“标准化”和“专业化”的完善工作。最后在“How to 性能保障体系”中,我们结合实例说明如何打造一个最简化的性能保障体系。

1

性能评分

性能数据好不好,我们需要通过量化的指标说明。

下图中我们可以看到五个重要的指标,包括FPS 、Jank、内存峰值、耗电和温度,通过这5个指标计算出最终的评级,前两个指标对玩家的体验更直接一些,所以权重更高。

然而,随着越来越多项目对于性能有更精细化的要求,例如在高端设备上预期达到60帧,以及某些海外设备在内存上需要支持2G设备等,研发团队自然也需要一些更为精细的推荐值。

所以,UWA针对项目的目标帧率和目标内存,提供了更为科学的评级分数,并基于分数再给到一套更贴合需求的推荐值。

2

推荐值系统

在 这一年内,我们对于推荐值这个系统做了大量优化,包括:

2.1、基于耗时的推荐值优化

不同帧率目标下,每个引擎模块达到多少阈值是合理的?UWA做了大量的测试和分析得出了一套独有的推荐值系统。例如:图中对于30帧目标的物理模块耗时,与60帧时的耗时是不同的。那么对于追求60帧的项目,这些推荐值就明显更有指导价值。

同样的,根据实际的设备内存去调整资源内存阈值才是更为合理的方式。

2.2、通过设备算力分析不同设备上的参数推荐值

移动端上有一些比较特殊的参数影响着性能表现的,比如渲染面片数。对于GPU耗时来说,只要能够控制在25ms以下时就比较健康。但对于不同档位的设备而言,能渲染的面片数存在巨大差距。下图是小米5X、小米8和小米10能承载的渲染模块的阈值上限。

因此,我们就不仅要从帧率的层面调整阈值,还要从设备本身的算力上调整推荐值。

对于研发团队而言,设备分档也极为重要,尤其是低端机的定义需要尽早确认,越早规划后面返工的概率就越小。 当研发团队有了自定义的设备分档之后,就能对玩家的设备算力进行评估,从而做一些性能和画面的平衡策略。

设备分档比较常见的方式是参照某些设备上能够获取到的部分字段,包括Device Model、SOC、GPU、CPU和内存等。目前更常用的还是针对GPU的型号,例如Mali、Adreno 以及 PowerVR ,可以通过一些固定的模式匹配出某些隐藏的字段,便于我们综合评估它的算力。

也有些额外的情况,例如某些设备虽然配置比较好,但不在已知配置列表中,我们也可以通过特殊的白名单做一些调整;还有某些特殊的设备,可能它的GPU算力评估下来还不错,但它的内存非常小或者它的CPU频率非常低,这就需要我们根据内存和CPU再去做分档的调整。

通过以上的思路可以相对全面地评估一个设备所在的算力档位。当完成设备的分档之后,我们就可以进一步进行性能和画质等方面的平衡设计。

3

分级

3.1、画质分级

在游戏普遍追求高品质的当下,适当的画质分级就显得非常有必要。在和众多团队合作过程中,UWA摸索总结了以下维度,例如帧率、屏幕分辨率、大面积的不透明Shader、大面积特效使用的Shader、以及整体的Overdraw和渲染面片数等,这些都是在做画质分级的时候需要考量的。

3.1.1 场景

3.1.2 特效

另外,在后处理上,像Bloom、DoF和AA的使用,都可以针对高、中、低设备去做不同的设定,从而控制GPU端的压力。

3.2、内存分级

内存部分我们也建议针对性地做一些策略。对于资源内存,我们在不同设备上提供了阈值推荐,如下表;而Mono和Lua,因为其本身是逻辑层面的内存占用,所以通常是一个固定的数值。

内存分级通常会有一些比较快速的方式:给高、中、低配的设备设定不同的Prefab等级;或者是把一个场景一分为三,高配显示三个部分,中配显示两个部分,低配就只显示其中一个部分。

针对纹理,还可以通过Texture Streaming,或是通过QualitySettings.masterTextureLimit直接把纹理分辨率强制下降到1/4;针对网格,尤其是超大的场景,可以考虑结合HLOD替换一些非常远的建筑;如果是一些中距离的建筑,可以考虑针对LOD 0做一些动态的加载卸载。

还有一些比较通用的方式:通过修改缓存策略,比如说特效的缓存、动态的角色、怪物的缓存,通过设定一些上限和缓存的时间也可以有效地控制低端机上的内存。

3.3、测试用例

做了以上这些分级后,我们下一步就需要制定不同的测试用例,以遍历到我们关心的测试场景。

例如在项目的中后期,我们需要就新手流程、UI、 战斗副本做遍历,以及进行压力玩法测试等。

而在项目前中期,也可以设计一些用例,例如场景中放置多个相机去播放动画模拟玩家、测试玩家在不同角度、不同场景的不同位置,检测场景渲染压力是否正常;还可以针对高、中、低不同档位的设备分别做测试,验证画质分级是否合理,从而帮助我们更早地发现制作流程中的问题。

下图是一个性能测试的典型例子。

结合UWA的性能测试工具获取每一段在播放过程时,它的FPS或者是其他维度的性能数据,基本上2~5分钟就可以体现出它的性能压力;这时候如果画质分级已经完成,也可以针对高、中、低不同档位的设备分别测试,验证画质分级的合理性;最后也可以通过类似右下角的统计表,查看每一个相机、每一个子场景的性能数据。

对于这个运行性能的数据检测,我们主要是通过GOT Online做日常检测。

同时,UWA在这一年中也增加了很多GPU Counter的数据,包括:Overdraw、ShaderCycles、带宽和图元,便于发现一些更为细节的性能瓶颈。具体的注意点如下:

Overdraw

研发团队要特别留意粒子系统是否比较多,或者面积比较大;一般我们建议低端设备上常驻的粒子特效的Overdraw尽量不要超过2层。

Shader Cycle/带宽

Shader Cycles可以比较综合地评估画面在渲染层面上的压力,因为它是像素着色相关的综合指标。不同GPU芯片上的Shader复杂度计算都不一样(即使同一个Shader),所以没有绝对的数值可以参考,但可以通过相对值查看局部是否有问题。

图元

我们建议关注“被剔除的图元数”的占比,一般来说该值通常是小于50%的。如果这个值明显高于50%,那多数可能是美术同学在场景里面放了一些非常巨大的模型,导致相机只照到一部分但整个模型都参与了渲染,造成了比较大的浪费。通过这个数据检测,我们就能够尽早地去暴露出美术制作层面上的问题,从而优化制作流程。

4

自动化测试

完成以上这些工作后,如何得到性能数据就成了重中之重。 项目、用例、设备的不同组合会产生庞大的测试工作量,从而占据大量人力。 而QA本应该集中精力于测试用例的维护,以及数据的分析与统计,从而更好地服务于项目制作与流程的优化。 所以,自动化平台就承担了非常重要的角色。 而UWA Pipeline就能很好地满足这一需求: 可以管理真机、进行多设备调试、上传下载脚本等日常需求 。

目前UWA Pipeline上使用的测试用例脚本是Airtest与Poco的组合,可以通过Poco的UI树或者图像识别的方式完成。UWA会持续优化这方面的稳定性和维护性。

对于上文我们提到的场景/特效测试,这部分测试流程是不依赖于点击操作的,可以通过Airtest+Poco+RPC接口调用的方式实现整个测试框架的搭建,在持续性和维护性上都非常好。

同时,UWA GOT Online也与Poco SDK进行了深度的结合,项目组可以在Poco的代码中调用接口实现GOT Online的自动测试开启、区间标记和数据上传。

由此我们就可以实现“测试用例 -> UWA测试工具集成 -> 测试设备指定 -> 自动化测试 -> 自动上传数据”的全自动过程。后续通过对报告数据的整理分析,形成对项目的持续监控。一旦发现数据中的隐患,团队就可以及时地应对。同时,通过UWA的推荐值系统,进一步方便大家定位不合理的性能指标。

5

UWA性能保障体系

到此,我们已经可以通过自动的方式获取性能数据,这些数据借助UWA平台又可以得到优化方向,再把这个循环持续往复,就可以确保整个开发、制作流程,以及游戏层面所表现出来的性能的健康度。

那么,要把这样的功能点落地会涉及到哪些细节的步骤呢?我们以一个常见的需求为例。

5.1、需求描述

a. 项目已经制作好了若干个场景,也布好了一些相机点位,通常是玩家经常会遍历的地方;

b. 项目组希望能够搭建自动化平台,需要指定高中低的设备以及测试用例,每天或每周定时在这些设备上测试;

c. 美术同学还会每周往里面新增各种资源,完善里面的一些细节。

希望实现了这个平台后,项目组每周都可以查看最新的性能数据,分析这周的制作过程里有没有出现问题。我们可以把这样的预期效果认为是非常简单的一套保障体系的缩影。

5.2、搭建流程

第一步我们需要在工程里面去做一些配置,包括:

a. 集成UWA GOT SDK

b. 集成Poco SDK

c. 通过C#脚本实现切换相机点位的代码,并添加Poco的RPC调用逻辑

第二步就是自动化的配置:

当我们已经做好工程的一些配置,并且打包之后,我们可以通过Airtest的IDE连接到一个固定的测试机,安装好游戏后就可以开始编写测试用例。

整个耗时基本上控制在一小时之内,包括可能学习Airtest IDE的用法、UWA SDK提供的一些接口方法以及一些调试工作。

接下来就是UWA Pipeline的搭建了,简要的步骤如下:

a. 需要安装一个主节点

b. 需要打包的子节点

c. 准备自动化测试的子节点( 如果 需要控制的设备量比较大,可以考虑用工控机作为子节点)

5.3、制作流水线 & 数据查看

接下来就是制作流水线,这个步骤可以在局域网内的其他电脑上进行。

我们首先在Pipeline文件夹里添加自定义的流水线,在这个流水线里我们可以去配置整个流程。

a. SVN的更新,就是把我们的仓库同步到打包节点上,更新资源信息

b. 触发工程打包,打出APK

c. 这个APK上传到“包管理”

d. 执行自动化测试。在UWA Pipeline的自动化测试的节点里有一个“GOT Online” Stage ,完成具体的配置后,一旦流水线走到这个Stage, 它就会按照这些配置去执行自动化测试。

a~c三步都是在Pipeline里内置好的,只要配一下对应的这个路径即可。

整条流水线运行完之后,数据就会被上传到UWA云端解析。每条流水线会有运行记录,我们就能看到这一次流水线的运行总共生成了多少份性能报告和报告信息。

如此一来,整个流程就可以自动化地运转起来了:

美术同学添加资源 -> 流水线自动地去拉最新的资源 -> 打包测试生成数据 -> QA查看数据,做简单的分析统计 -> QA反馈性能隐患

通过这样的方式,可以让项目组的场景制作流程以比较稳健的方式持续下去,而对于美术而言,也可以慢慢形成一个良好的制作习惯。

这些量变改善的最后,我们会发现性能优化的工作开展变得容易且从容了许多。从根本上讲,大幅度返工的工作变得很少了,即使有问题,都在项目开发人员的掌控之中了。

在工作流程中,即使是认可性能保障的团队,如果在以上任意一环中缺少方法或工具,内部推动都可能会阻力重重,因此希望以上性能保障的拓展分享给大家有所启发或借鉴;当然UWA也会持续深耕该领域,期待明年给大家更落地更深入的实践分享。

本文《UWA性能保障体系进一步拓展》的课题视频可前往UWA学堂( https://edu.uwa4d.com/course-intro/1/487)免 费浏览。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
霍伊伦:Siuu是为了致敬C罗不是冒犯,他是我的偶像

霍伊伦:Siuu是为了致敬C罗不是冒犯,他是我的偶像

懂球帝
2026-10-02 08:19:06
亚运会“省榜”出炉!国内各省队硬刚亚洲各国,浙江太强

亚运会“省榜”出炉!国内各省队硬刚亚洲各国,浙江太强

生活新鲜市
2026-10-02 01:01:00
深圳骗局升级!全国女性被精准收割,有人损失超50万,报警也没用

深圳骗局升级!全国女性被精准收割,有人损失超50万,报警也没用

再来一杯冰美式
2026-09-28 14:52:01
比亚迪的“终身”,是有条件的终身。特斯拉的8年,是随车的8年

比亚迪的“终身”,是有条件的终身。特斯拉的8年,是随车的8年

娱乐圈的笔娱君
2026-10-01 11:26:59
辣椒再次被关注!研究发现:脑出血吃一次辣椒,等于给血管添堵?

辣椒再次被关注!研究发现:脑出血吃一次辣椒,等于给血管添堵?

叙说医疗健康
2026-10-02 08:00:56
俄罗斯总统普京确认了:已签署总统令,收紧卢布现金出境管控,自然人赴七国携带上限100万卢布,法人、个体户禁止携带卢布现金出境

俄罗斯总统普京确认了:已签署总统令,收紧卢布现金出境管控,自然人赴七国携带上限100万卢布,法人、个体户禁止携带卢布现金出境

吉刻新闻
2026-10-01 14:34:38
数据见证换代!阿根廷阵容年龄直降6岁,梅西的退出意义远超赛场

数据见证换代!阿根廷阵容年龄直降6岁,梅西的退出意义远超赛场

嘴角上翘
2026-10-02 02:02:44
东航空姐下跪事件升级!目击者发声,咆哮男子辱骂威逼,官方通报

东航空姐下跪事件升级!目击者发声,咆哮男子辱骂威逼,官方通报

据说说娱乐
2026-10-01 13:48:22
为什么如今大家开始抵触“中式恐怖”?网友:没有对比就没有伤害!

为什么如今大家开始抵触“中式恐怖”?网友:没有对比就没有伤害!

小椰的奶奶
2026-09-12 18:15:02
博通 1612 亿美元、谷歌 1111 亿美元、AWS 1100 亿美元、xAI 845 亿美元、微软 314 亿美元、AMD 200 亿美元

博通 1612 亿美元、谷歌 1111 亿美元、AWS 1100 亿美元、xAI 845 亿美元、微软 314 亿美元、AMD 200 亿美元

云头条
2026-10-02 09:19:57
离开火只差一步!中方不再忍让,解放军三舰堵住菲律宾“国门”

离开火只差一步!中方不再忍让,解放军三舰堵住菲律宾“国门”

史之韵
2026-10-02 10:16:57
原来有些人不容易生病真不是因为身体好,又是涨知识的一天

原来有些人不容易生病真不是因为身体好,又是涨知识的一天

周哥一影视
2026-10-01 00:05:46
2020年克林顿坦言出轨原因,莱温斯基:拉开裤链后他要用雪茄助兴

2020年克林顿坦言出轨原因,莱温斯基:拉开裤链后他要用雪茄助兴

万国明信片
2026-06-28 18:07:20
台湾第一千金蒋孝章有多美?29岁在爷爷寿宴上留影,尽显优雅风采

台湾第一千金蒋孝章有多美?29岁在爷爷寿宴上留影,尽显优雅风采

开箱历史
2026-08-25 10:55:09
已婚少妇被小伙强奸 换上情趣内衣诱惑对方将其反杀

已婚少妇被小伙强奸 换上情趣内衣诱惑对方将其反杀

胖胖侃咖
2024-12-18 08:00:08
出道39年不温不火,老婆却靠一首歌吃了38年,如今成春晚常客

出道39年不温不火,老婆却靠一首歌吃了38年,如今成春晚常客

完善法
2026-09-30 10:24:30
一名乘客母亲讲述以色列航班发生的情况:当时喊着“救命,救命”

一名乘客母亲讲述以色列航班发生的情况:当时喊着“救命,救命”

阿晪美食
2026-10-01 07:18:48
“我能击败任何人” 郑钦文国庆当天2-1险胜世界第231 提奖金24万元

“我能击败任何人” 郑钦文国庆当天2-1险胜世界第231 提奖金24万元

风过乡
2026-10-01 15:01:00
高校八大乱象:行政越来越强势,学术越来越弱势

高校八大乱象:行政越来越强势,学术越来越弱势

职场资深秘书
2026-10-01 18:02:09
标题:晚年最好的养生,就八个字:好色,多情,好好活着

标题:晚年最好的养生,就八个字:好色,多情,好好活着

小影的娱乐
2026-09-26 06:08:14
2026-10-02 11:28:49
侑虎科技UWA incentive-icons
侑虎科技UWA
游戏/VR性能优化平台
1628文章数 987关注度
往期回顾 全部

游戏要闻

PS5全新技术QSSR太强!画质显著提升 性能不变

头条要闻

牛弹琴:普京再提2014年"政变" 称有件事他一直想不通

头条要闻

牛弹琴:普京再提2014年"政变" 称有件事他一直想不通

体育要闻

“今天的表现,我们可以昂首离开球场”

娱乐要闻

奚梦瑶晒四太豪礼!22只龙凤镯近300万

财经要闻

珠宝黑马爆雷,老板全家跑路泰国!

科技要闻

“分手”15天后,华为与赛力斯签约新五年

汽车要闻

2027款极氪001将于明年一季度上市 现款猎装同步推新配色

态度原创

本地
时尚
艺术
房产
军事航空

本地新闻

中秋逛白塔寺,体验国医妙荟雅集

在米兰,用时装唤醒内心的自我

艺术要闻

第四届中国美术奖铜奖获得者——李卓

房产要闻

4000+/平!华侨城,直接把海口楼市的地板给掀了!

军事要闻

美国将向中东增派第三艘航母和多达1万名兵力

无障碍浏览 进入关怀版