Unity手游性能测评报告——MOBA篇

我的毕业设计历程——基于Unity3D的MOBA游戏设计(二) 我的毕业设计历程——基于Unity3D的MOBA游戏设计(二) 一.游戏界面UI 二.功能实现 MobaCommon通用类库 阅读详情

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

UWA曾经发布过MMORPG 和 ARPG 的Unity手游性能测评报告,延续该系列,最近UWA对提交测试(登陆 www.uwa4d.com )的所有MOBA手游进行了客观的分析和汇总,并将其具有属性特征的几大性能模块数据在此分享,希望能给相关行业的研发人员一些更为明确和建设性的意见。

◆◆◆

总体性能

请输入图片描述

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

请输入图片描述

  1. MOBA游戏中,同屏众多的英雄、小兵和血条HUD等,使得渲染、UI和自身逻辑代码的开销都大大高于引擎的其他系统开销;
  2. 在UWA以往优化的MOBA项目中,UI优化是最为难啃的骨头。不仅数量众多,而且出现和消失时机完全随机,如何做到较为理想的动静分离,是MOBA项目中UI性能优化的关键。

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


◆◆◆

主流模块性能

一、渲染模块
严重程度:噩梦
Draw Call的主体使用范围为34~142,峰值平均为215;
渲染三角面片的峰值集中在42K~291K,峰值平均为113K面。
UWA推荐:渲染三角面片峰值< 100K,目前达标比例: 35.6%。
请输入图片描述
不透明物体的渲染耗时平均为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模块进行完善(可以参考UWA公众号的历史推送:uwatech 或者UWA博客:blog.uwa4d.com)。

二、UI模块
严重程度:地狱

请输入图片描述
请输入图片描述

  1. 使用NGUI作为UI解决方案的项目占据了相当高的比例,NGUI目前仍然是研发团队对于UI系统使用的主要解决方案;
  2. UI模块的性能开销很高,将近74%的研发团队都面临较为严重的性能问题;
  3. 建议研发团队根据UWA之前的UI优化相关的视频、文章和PPT对UI模块进行完善(可以参考UWA公众号的历史推送或者UWA博客:blog.uwa4d.com)。

三、逻辑代码
严重程度:地狱
请输入图片描述

  1. GC触发频率很高,是造成卡顿的主要原因之一;
  2. 90%以上的游戏团队需要对GC的调用进行进一步规划,对代码的堆内存分配进行大力优化。

请输入图片描述

  1. Instantiate实例化操作平均每次调用的CPU耗时主要分布在: 1.6~64.4 ms,均值为6.9ms,每1万帧总调用次数主要分布在: 55~5452 次;
  2. Instantiate的频繁实例化是太多数研发团队非常容易忽视的问题。

请输入图片描述

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

请输入图片描述

  1. Shader解析操作平均每次调用的CPU耗时主要分布在: 19.4~257.9 ms,均值为66.8ms;
  2. Shader解析时间较高,且大多数情况是相同Shader的重复开销,值得研发团队密切关注。

四、粒子系统
严重程度:地狱
请输入图片描述

五、动画模块
严重程度:噩梦

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

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

建议:

  1. 根据场景中角色位置或者视域体范围,对场景中的英雄、小兵和炮塔等需要进行动画计算的GameObject进行分级控制,比如Disable其Animator组件等;
  2. 开启Optimize Game Objects选项,一切策划需求为其让路;
  3. 善用缓存池,尽可能避免如下图中Animator.Initialize的频繁耗时。
    请输入图片描述

◆◆◆

内存模块

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

总体内存
严重程度:地狱
请输入图片描述

总体堆内存
严重程度:地狱
请输入图片描述

纹理资源
严重程度:地狱
请输入图片描述

Mesh资源
严重程度:地狱
请输入图片描述

RenderTexture资源
严重程度:噩梦
请输入图片描述

字体资源
严重程度:普通
请输入图片描述

Shader资源
严重程度:地狱
请输入图片描述

动画资源
严重程度:地狱
请输入图片描述

音频资源
严重程度:普通
请输入图片描述

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


unity_MMO游戏视频教程 3dBuzz的unity_MMO游戏开发视频教程,使用C# 立即下载

相关推荐

Unity3D开发的MMORPG游戏服务器和客户端源码

Unity3D开发的MMORPG游戏服务器和客户端 Unity3D开发的MMORPG游戏服务器和客户端源码,服务端是用PhotonServer开发,全部解压后900多mb。 所以请不要商用,仅限学习使用

B3:Unity制作Moba类游戏——加载地图系统

地图的加载其实很简单,涉及到自动寻路,烘焙,遮挡剔除,动态加载,更新等,所以这里建议把地图场景整体打包成assetbundle,然后热更下载加载即可。这一步,就不多做赘述了,现在移除了3v3的,其它就根据不同游戏模式加载不同地图就好了。这个是打包出来的三个场景,包含峡谷5v5,极地大乱斗断桥,还有那个3v3的地图。在淘宝上下载了LOL的峡谷地图,加载进来设置好贴图,然后就是做自动寻路了。我是通过自己放置了面片的方式设置,原始地图是公共区域和野区。福利环节当然不能少咯!最后,祝大家游戏愉快,开发愉快!

. 2031

初学者入门机器学习 (ML)的推荐教程

了解基本的机器学习概念并不难。有大量免费的在线博客文章、视频和编码教程可以引导您了解基础知识——从介绍性内容到常见应用程序,再到算法和应用技能。这篇文章总结了一些用于介绍 ML 的最佳免费选项。它按逻辑顺序排列,每个概念都建立在上一个概念的基础上。

u010542847的博客 4627

Unity3D 测试总结

Unity3D 测试总结

洛西纳的专栏 1156

通俗易懂的图解二叉搜索树、AVL树和红黑树

搜索是一种很常见的需求,当数据较多时,如何找到目标对象时,即需要搜索查找。 那么如何快速找到目标呢,最朴素的思想就是暴力查找,一个一个对比。 显然,当数据量增大时,我们需要优化查找方法获取更快的查找速度,我们可以通过维护一个有序数组,从而实现二分查找,查找速度从O(n)降为O(longn)。 但是数组并不便于插入和删除,链表便成为了最好的选择。 既然是采用二分查找,那么不如直接按照查找的步骤维护一种数据结构,于是二叉搜索树出现了。 二叉搜索树的性质为: 若左子树不为空,则左子树上所有节点值都小于根结点值;

暗色光的博客 758

【详细图解】华为认证考试报名步骤解析(手把手操作)

华为认证报考流程

yuyeconglong的博客 1万+

B4:Unity制作Moba类游戏——小兵AI系统

在LOL对局中,职业选手对兵线的控制可以说是达到了“运筹帷幄之中,决胜千里之外”。其实普通玩家只要控好兵线,在对线中一样可以打开优势。小兵AI系统非常简单!我们会用到这几点技术: 构建易扩展的AI基类和数据结构 有限状态机FSM控制小兵AI行为状态 NavMesh自动寻路系统控制小兵移动 缓存池CatchTool 控制小兵动态创建和销毁

. 3670

【商业化】【msix打包】Python 应用打包为 MSIX 的正确流程:入口点问题与解决方案

发现用msix打包工具打包python做的exe时总找不到程序入口点,后来理了一下才发现自己误会了,需要先生成一个基本的setup.exe,msix的打包是基于这个初始的安装程序进行的。只需要点击Buile-》Compile,然后Open Output Folder就可以得到exe安装程序了。可以使用免费工具inno setup来创建初始安装包。其中{group}这样的变量会自动匹配,不用自己指定。如果点击Run会运行安装程序。

每日出拳老爷子的博客 1105

UWA发布 | 2017 Unity手游体检蓝皮书 — MOBA篇

过去的一年,MOBA手游市场容量变得空前庞大,成了众多CP和发行追捧的对象,同时,其重社交、重玩法、重美术效果的高要求使得该品类游戏也面临着前所未有的性能挑战,那么当下市场上的MOBA手游性能呈什么样的状态呢?我们能从这一年的性能数据中找到什么规律呢?今天,我们将为大家分享MOBA手游性能的深度剖析。

UWA—简单优化,优化简单! 864

Java后端中的链路追踪:使用OpenTelemetry实现全链路监控

在现代的微服务架构中,链路追踪是监控和优化系统性能的关键技术。通过链路追踪,我们可以跟踪请求在系统中的流转,识别性能瓶颈,定位问题根源。本文将介绍如何在Java后端应用中使用OpenTelemetry实现全链路监控,包括具体的实现步骤和代码示例。通过集成OpenTelemetry,您可以实现全面的链路追踪,帮助您识别瓶颈和潜在问题,从而提升系统的可靠性和用户体验。OpenTelemetry是一个开源项目,旨在提供统一的工具集来收集、处理和导出应用程序的遥测数据,包括跟踪、度量和日志。

聚娃科技开发者博客 1730

RK3588更新NPU驱动的方法

想要在 RK3588 上跑一下 deepseek 的大模型,发现目前的内核提供的 NPU 驱动比较低,无法支持新的大模型,所以需要更新一下我们的 NPU 驱动本次更新的NPU驱动仅适用于RK3588和RK3676系列。

荻夜的博客 2152

MOBA手游《小米超神》案例精讲

今天我们为大家带来由福州朱雀网络研发的MOBA手游《小米超神》的UWA测评报告分析。该游戏在各种配置的移动终端设备上,无论是画面表现力,还是性能开销都非常优异。在此,我们将对该款游戏的性能数据进行深度剖析,希望通过这篇文章可以让大家对移动游戏各个模块的运行效率有更为深刻的认知,并对大家的项目研发有所帮助。

UWA—简单优化,优化简单! 5387

Eclipse邂逅Deepseek:本地化部署全攻略

通过前面一系列的步骤,我们成功地在 Eclipse 中完成了 Deepseek 的本地化部署,并且对部署后的功能进行了测试和优化,还解决了可能遇到的一些常见问题。这一过程不仅让我们体验到了将强大的大语言模型与高效的开发环境相结合的魅力,也为我们在软件开发过程中带来了诸多便利。本地化部署 Deepseek 到 Eclipse,使得我们在代码编写过程中能够获得智能的代码补全和精准的问答支持,大大提高了开发效率。同时,本地化部署保障了数据的安全性和隐私性,避免了数据在传输过程中可能面临的风险。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4524

UWA官方Demo新增《小米超神》,全面揭秘重度手游的性能表现!

《小米超神》作为一款重度的MOBA手游,它在不同配置的移动设备上,无论是画面表现力,还是性能开销都非常优秀。我们曾公布过该游戏的主要性能数据,当然其出色性能的背后和各方面的细节处理都有着千丝万缕的联系。为此,我们将该游戏的完整性能数据以UWA demo的形式公开,从而让大家更细致全面地感受其每个引擎模块的具体表现。

UWA—简单优化,优化简单! 1298

YOLOv11改进策略【卷积层】| arXiv 2025 YOLO-Master中的稀疏混合专家ES-MoE 动态路由提适配 + 稀疏激活降延迟,突破精度-效率权衡

ES-MoE(Efficient Sparse Mixture-of-Experts)是为解决传统YOLO类实时目标检测器的静态计算冗余问题而提出的稀疏混合专家模块。现有YOLO架构对所有输入场景采用统一的密集计算模式,导致简单场景资源浪费、复杂场景(如密集小目标、遮挡场景)计算不足,难以平衡检测精度与推理速度。ES-MoE引入实例条件自适应计算,通过动态路由机制为不同复杂度的输入分配差异化计算资源,突破传统静态架构的精度-效率权衡限制,同时适配实时检测的轻量化需求。

Limiiiing的博客 465

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

New | 分“犀”有道,方为优化“利”器!

原文链接:https://blog.uwa4d.com/archives/2287.html2018的号角已经吹响,UWA携新功能,为优化再添助力!作为UWA性能测评报告中的精髓,此次“分析与建议“模块加强了问题的分析力度,它能将数据所反映的表象一层层抽丝剥茧,逐步定位到更里层阶段。目前我们已将其部署到所有测评过的项目中,用户登录官网,在项目测评报告的“分析与建议”中即可查看。我们以渲染模块为例,...

UWA—简单优化,优化简单! 368

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

UWA DAY 2018 精彩盘点| 快、精准、有温度、值得信赖!

原文链接:https://blog.uwa4d.com/archives/UWADAY2018_Summary.html为期两天的UWA DAY 2018顺利落下了帷幕,这次活动的参会人次达到1300+,更有不少朋友不远千里来赴这场干货之约。作为第二届UWA DAY大会,我们的技术内容更丰富、形式更多样、服务更贴心。那么这次活动究竟有哪些不容错过的亮点呢?小编带领大家一一领略。定位:快、精准、有温...

UWA—简单优化,优化简单! 464

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

B1:Unity制作Moba类游戏——Socket帧同步

全体起立!!!卢本伟镇楼!!! 刚上大学就喜欢玩,英雄联盟陪伴了我整个大学生涯,承载了满满的回忆,现在老娘要亲手做一个!!【文末有福利哦~】 相信做开发的小伙伴们都有一个“游戏梦”吧,就是自己动手制作一款自己热爱的游戏,然后发布到热门平台和其它小伙伴在线玩耍~~~ 很多小伙伴觉得自己开发游戏很难,需要大量的时间、精力、资源等。 其实并不是啦~~ 开发一款自己喜欢的游戏其实是非常简单轻松的事情,只要把……模型、动画、地形、渲染、算法、脚本、网络、光影、Editor、内存管理、多.

. 8005

C# 制作类似魔塔小游戏(菜鸟版)

设计一个类似魔塔的小游戏游戏,要求: 一个 30*30 的地图,和一个显示区域。 地图上的每个格子:能通行或不能通行(有障碍或宝物,宝物被拾取后可通行) 有一个人物,可上下左右通行。 通行不同的区域,会使人物的属性产生变化,如:生命、魔力、金钱等。这些基本属性需要 在显示区域中显示出来。        菜鸟成品效果预览:        [img=http://img.bbs.youkuaiyun.com/

菜鸟进化论 1万+

自学Unity之做一个MOBA游戏1——Terrain(地形)

暑期在某司实习,虽然最终拿到了转正offer,但是工作表现不是很让老大满意。于是想在入职前动手实际做几个游戏,提前熟悉自己的工作,也好配得上那份薪水。经过最初的阵痛之后,终于对Unity这个工具有点熟悉了,但是一开始写的实在太凌乱,于是想整理整理思路,从头开始再开发一次,并且把开发的过程记录下来。 首先是绘制Terrain,也就是地形。在GameObject -> 3D Object 里面有。我

wenhao_sjtu的博客 5036

B2:Unity制作Moba类游戏——聊天系统

一场游戏对局中,和队友进行友好的有礼貌的有效的沟通可以极大提升对局胜率。在LOL国服,打字和队友聊天沟通战术是非常常见的行为: 语言的力量是无限的,甚至可以和外国小伙伴效沟通战术: 嗯,对,就是这样,剩下的就交给上帝吧......

. 2126

Unity MMORPG游戏优化经验分享

在优化Unity游戏时,我们一般从四个方面:CPU、GPU、内存、工程配置等入手,它们都可能是影响游戏性能瓶颈的关键。CPU我们平常游戏的很多性能瓶颈都在CPU。例如:MONO内存分配带来CPU开销,当Mono内存从50M、60M、70M,一直增大到100M,这些内存分配都相当于CPU的开销。当在Update函数中存在比较复杂的逻辑时,很容易出现每一帧都触发内存分配,如图01所示。 图 01虽然截...

宁静致远 2998

推荐开源项目:MOBA_CSharp_Unity - 用C构建的轻量级Moba游戏框架

推荐开源项目:MOBA_CSharp_Unity - 用C#构建的轻量级Moba游戏框架 项目地址:https://gitcode.com/gh_mirrors/mo/MOBA_CSharp_Unity 项目介绍 欢迎探索一个全新的开源项目——MOBA_CSharp_Unity,这是一个基于C#开发的Moba游戏框架。灵感源自《英雄联盟》和《风暴英雄》,这个项目旨在提供一个快速开发多人在线战斗竞技...

gitblog_00078的博客 1111

Unity3D测试总结

在iOS平台上,需要检查游戏是否符合苹果的应用商店审核标准,如是否正确处理设备的方向变化、是否支持不同的屏幕尺寸等。例如,对于一个大型3D场景,在高画质设置下,使用不同性能的设备(如高端游戏主机和低端移动设备)进行测试,确保帧率在可接受的范围内。例如,当不断创建和销毁游戏对象时,查看内存是否持续增长,如果是,则可能存在内存泄漏问题,需要检查对象的创建和销毁逻辑。例如,对于一个控制角色移动的脚本,可以编写测试用例来验证角色在不同输入情况下(如按下不同方向键)的移动速度和方向是否正确。csharp复制代码。

tuery1314的专栏 2258

Unity实战篇:MOBA游戏小地图制作(一:小地图的创建以及人物同步)

在许多游戏里,我看到都有小地图这个模块,对于玩家而言很友好,所以今天研究一下。 本人能力有限,利用CustomRenderTexture实现。 环境:Unity2018.2.13f1 Demo下载:https://download.youkuaiyun.com/download/qq_15020543/10765062 (如果没有积分就加我好友,我用QQ发你) 先简单的说一下基本流程。 创建一...

设计师养成记 1万+
上一篇: GPU性能——Overdraw功能
下一篇: Unity中Avatar换装实现
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值