游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6696|回复: 0

MOBA移动游戏性能分析报告:渲染、UI和逻辑代码是头号杀手

[复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2016-12-16 17:17:25 | 显示全部楼层 |阅读模式
  最近UWA对提交测试的所有MOBA手游进行了客观的分析和汇总,并将其具有属性特征的几大性能模块数据在此分享,希望能给相关行业的研发人员一些更为明确和建设性的意见。

  总体性能

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告398.png

  MOBA游戏类型是目前所有游戏中性能最难把控(CPU开销最大)的游戏类型,在Android中低端机器上流畅运行,是当前MOBA项目最大的挑战。

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告596.png

  1.MOBA游戏中,同屏众多的英雄、小兵和血条HUD等,使得渲染、UI和自身逻辑代码的开销都大大高于引擎的其他系统开销;

  2.在UWA以往优化的MOBA项目中,UI优化是最为难啃的骨头。不仅数量众多,而且出现和消失时机完全随机,如何做到较为理想的动静分离,是MOBA项目中UI性能优化的关键。

  下面我们就来具体分析下这些主流模块的开销情况。

  主流模块性能

  一、渲染模块

  严重程度:噩梦

  Draw Call的主体使用范围为34~142,峰值平均为215;

  渲染三角面片的峰值集中在42K~291K,峰值平均为113K面。

  UWA推荐:渲染三角面片峰值< 100K,目前达标比例: 35.6%。

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告1026.png

  不透明物体的渲染耗时平均为3.3ms,半透明物体的渲染耗时平均为6.1ms。相机后处理特效的CPU耗时主要集中在0.1~10.5 ms。

  小结:

  1.MOBA游戏的场景渲染三角形面片数量普遍较高,仅35.6%的项目能够将场景的渲染三角形面片数峰值控制在10w以下;

  2.半透明物体的渲染开销较高,这主要与UI界面、技能特效、野外树林和草丛量有关。

  建议:

  1.如果渲染面片数过高,则优化可从两方面入手,一是对场景模型、英雄小兵模型尝试进行网格简化,二是对中低端机器上渲染Shader进行简化,尽可能做到单Pass渲染;

  2.如果是UI HUD开销很高(比如CreateVBO较高等),则需要对UI系统进行优化,具体可见UWA之前的UI、文章和PPT对UI模块进行完善。

  二、UI模块

  严重程度:地狱

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告1658.png

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告1792.png

  1.使用NGUI作为UI解决方案的项目占据了相当高的比例,NGUI目前仍然是研发团队对于UI系统使用的主要解决方案;

  2.UI模块的性能开销很高,将近74%的研发团队都面临较为严重的性能问题;

  3.建议研发团队根据UWA之前的UI、文章和PPT对UI模块进行完善。

  三、逻辑代码

  严重程度:地狱

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告2205.png

  1.GC触发频率很高,是造成卡顿的主要原因之一;

  2.90%以上的游戏团队需要对GC的调用进行进一步规划,对代码的堆内存分配进行大力优化。

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告2405.png

  1.Instantiate实例化操作平均每次调用的CPU耗时主要分布在: 1.6~64.4 ms,均值为6.9ms,每1万帧总调用次数主要分布在: 55~5452 次;

  2.Instantiate的频繁实例化是太多数研发团队非常容易忽视的问题。

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告2658.png

  Log输出操作平均每次调用的CPU耗时主要分布在: 4.0~114.0 ms,均值为13.7 ms。

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告2838.png

  1.Shader解析操作平均每次调用的CPU耗时主要分布在: 19.4~257.9 ms,均值为66.8ms;

  2.Shader解析时间较高,且大多数情况是相同Shader的重复开销,值得研发团队密切关注。

  四、粒子系统

  严重程度:地狱

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告3097.png

  五、动画模块

  严重程度:噩梦

  目前仅使用Mecanim动画系统的MOBA游戏项目占比为58.9%,仅使用Unity 3.x老版本动画系统的占比为4.1%,两种系统混合使用的占比为37.0%。

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告3325.png

  小结:

  MOBA类型的动画模块开销是目前所有游戏类型中CPU开销最高的,ARPG可以根据设定好的剧情分布加载和卸载,MMORPG可以根据玩家的位置来动态加载,但MOBA是允许玩家根据小地图快速切屏的,所以以上方式均不适用。经过统计,MOBA游戏中一场5V5战斗基本上需要保证90-110个Skinned Mesh在不停进行动画和蒙皮计算,这是动画系统开销如此高的原因之一。

  建议:

  1.根据场景中角色位置或者视域体范围,对场景中的英雄、小兵和炮塔等需要进行动画计算的GameObject进行分级控制,比如Disable其Animator组件等;

  2.开启Optimize Game Objects选项,一切策划需求为其让路;

  3.善用缓存池,尽可能避免如下图中Animator.Initialize的频繁耗时。

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告3806.png

  内存模块

  目前MOBA项目中的内存占用普遍较高,但泄露问题的占比仅为23.3%,大幅低于其他游戏类型游戏。

  总体内存

  严重程度:地狱

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告4008.png

  总体堆内存

  严重程度:地狱

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告4155.png

  纹理资源

  严重程度:地狱

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告4305.png

  Mesh资源

  严重程度:地狱

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告4454.png


  RenderTexture资源

  严重程度:噩梦

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告4621.png

  字体资源

  严重程度:普通

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告4768.png

  Shader资源

  严重程度:地狱

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告4921.png

  动画资源

  严重程度:地狱

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告5077.png

  音频资源

  严重程度:普通

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告5229.png

  希望以上数据能给大家的开发提供帮助。之后我们将不断与大家分享其他类型的数据,如ACT,SLG等。我们深信数据是会说话的,总有规律值得我们追溯求实、鉴往知来。同时我们也会不断细化评析的标准、划分,以使得这些数据更有代表性和说服力。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-20 04:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表