FPS 手游如何脱颖而出?看《 CF 手游》的性能突破之路

作者:薛阳,腾讯专项技术测试 工程师

商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。

原文链接:http://wetest.qq.com/lab/view/330.html

WeTest导读

俗话说:用户体验不谈性能就是耍流氓。 在PC游戏上的性能问题并没有那么明显, 加个内存换个CPU或者刷个主频就能轻松搞定;到了手游时代后情况则显得比较严峻,捉襟见肘的内存使得资源加载时就像如履薄冰,加上高中低不同配置的机型更加让性能问题显得很突出,一个低端机型上的卡顿就可能造成一大批用户的流失,这当然无法被忽视。

一、项目背景

《穿越火线-枪战王者》(简称:CFM)腾讯游戏在FPS移动领域的重要布局。CFM团队秉承多年来在射击游戏领域的积累,着力打造高品质的FPS手游,“手机端最爽快的射击体验”被广大玩家认可,树立了在移动FPS领域的品质标杆,在公司自有平台和外部渠道,都成功占领FPS领域最大市场份额,其中低端机玩家占比很大,研发团队为了保障用户的体验,需要持续优化客户端性能。

二、技术难点

手游客户端性能与传统app有很大区别,并且游戏玩法、技术实现的不同,游戏引擎的差别,游戏的可能出现性能问题的场景以及性能表现差别会很大。另外CFM很大一部分玩家使用的是较低配置的手机,因此性能优化显得尤为重要和艰巨。CFM采用了Unity引擎,Profiler作为Unity官方的性能采集工具,在引擎层面采集数据,数据全面、可靠,但是不能对数据保存,无法进行二次分析。

三、实现方案

(一)测试的目标

根据手游性能测试团队对腾讯游戏多年的测试经验,测试团队针对CF手游设定了以下性能指标,来检验CF的客户端性能状况。测试工具则采用公司内部运营2年的客户端性能测试工具Cube。

(二)主要测试场景

依据CF的玩法,性能瓶颈主要会在多人PVP场景,选取游戏中不同模式下,外网玩家较多的场景进行专项测试。

①PVP-5V5-竞技模式-团队战(运输船)

②PVP-5V5-竞技模式-爆破战(新年广场)

③PVP-5V5-休闲模式-救世主(生化酒店)

④PVP-16V0-休闲模式-跳跳乐(天空之城)

⑤PVP-4V0-挑战模式-楼兰古墓(困难)

(三)发现问题情况

1、内存峰值超标

在低配置的手机上,PSS内存峰值超过警示线350MB :

2、动画剪辑资源超标

动画剪辑资源超过15M的警示线,查看动画剪辑资源大小top20,以及每个资源的生命周期发现,SanTouLong_Boss_Born资源(boss出生纹理)从加载到场景结束一直未释放,并且资源达到了5.7MB,建议项目组进行优化。

3、楼兰古墓流量达到6K/S以上

楼兰古墓场景,平均每秒的流量消耗达到了6.79KB,观察网络流量趋势图在标记区域中,流量持续很高,建议采取有损服务和降低不必要开销。

4、FPS抖动严重

测试过程发现,部分低配置机型FPS波动比较剧烈,图中可以看出疑似卡顿点数量也明显上升,点击FPS曲线上的点发现,大部分卡顿点处都出现了同一个函数,沟通后发现该函数主要功能为采集UDP的丢包数、错误包数以及收发包量,建议去除该函数。

5、组件侧问题导致FPS在部分机型下降5帧

目前大部分游戏内集合了登录、支付、加速等一些组件,这些组件常常会成为影响游戏性能的凶手。

(四)解决方案

1、去掉不合理的pool缓存,使用GPU Skinning降低SkinnedMesh的内存消耗,优化后的PSS内存趋势如下,整体下降了20MB。

2、释放不需要使用的动画剪辑资源,并且对资源进行压缩,将该场景的动画剪辑资源峰值降为12.07MB。

3、减少不必要的通信,服务器限帧,楼兰古墓降低到3.92K/S。

4、修改后去掉采集UDP的丢包数、错误包数以及收发包量函数,回复正常

5、组件修复后做了对比验证,FPS回归正常

四、最终效果

项目上线前的测试阶段,手游性能测试团队累计为《穿越火线:枪战王者》审核了超过10个版本,在上线前持续优化,确保客户端性能始终如一,保障用户稳定体验。优化效果如下:

FPS均值 25→30

CPU占比率 38%→20%

纹理资源峰值 31.84M→23.04M

Mono内存 36.53M→32.04M

针对手游的性能优化,腾讯WeTest平台的Cube工具提供了基本所有相关指标的检测,为手游进行最高效和准确的测试服务,不断改善玩家的体验。

目前功能还在免费开放中。,欢迎点击链接:http://wetest.qq.com/product/cube 使用。

如果对使用当中有任何疑问,欢迎联系腾讯WeTest企业qq:800024531

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网数据官iCDO

像逛商场一样理解Google Analytics的基本概念

引言:本文此可视说明将帮助您了解GoogleAnalytics用来组织数据的基本术语。

942
来自专栏DevOps时代的专栏

业务安全与 DevSecOps 的最佳实践

2082
来自专栏ImportSource

机会主义重构-Martin Fowler

从我开始谈论和撰写关于重构专题的一开始,人们就问我如何将重构纳入更广泛的软件开发过程。 重构到底应不应该被当做软件开发生命周期的一个阶段,如果应该,那么要在一...

3888
来自专栏程序人生

Tubi 为什么?

在一段旅程行将结束的时候,retrospective 是最好的临别礼物。Tubi 是一家独特的 startup,站在外人的角度,你很难想象这样一家不到三十个工程...

1260
来自专栏海天一树

云技术简介

一、概念 ? “云计算”概念由Google提出,一如其名,这是一个美丽的网络应用模式。云计算是是分布式处理(Distributed Computing)、并...

52510
来自专栏WeTest质量开放平台团队的专栏

数风流人物之六龙争霸--剖析巨人之路(一)

由祖龙娱乐研发,腾讯游戏代理的全球首款千人国战手游《六龙争霸》与11月26日正式公测。凭借着独特的主题,逼真的画面,精美的场景,游戏上线后好评如潮,成为了时下最...

852
来自专栏携程技术中心

干货 | 携程是如何借助“预测式外呼”提高呼叫效率的

作者简介 本文作者为携程基础业务研发部呼叫中心团队,其在传统呼叫中心基础上,结合软交换、智能分配、自动语音语义处理等技术,为携程用户提供人性化、人机互动、便捷的...

4414
来自专栏高性能服务器开发

在北京做Java开发如何月薪达到两万,需要技术水平达到什么程度?

有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top10,或者研究生学历,也或者懂点node,懂点大数据等等,或者...

1002
来自专栏量子位

有了这个新框架,任何游戏都能变身AI训练场

夏乙 编译整理 量子位 出品 | 公众号 QbitAI ? 7小时前,全新的教AI打游戏框架Serpent.AI发布了。 截至量子位发稿时,这个框架在GitHu...

4005
来自专栏无原型不设计

如何做一个完全失败的UX设计师?

人人都说,做一个成功的UX设计师是很难的,你认为做一个的完全失败的UX设计师就会很容易?然而事实并不是这样。如何成为一名彻底失败的UX设计师?至少,你需要做到...

2857

扫码关注云+社区