《Unity 挪动端游戏性能优化简谱》是从 Unity 挪动端游戏优化的一些根底探讨登程,例举和剖析了近几年基于 Unity 开发的挪动端游戏我的项目中最为常见的局部性能问题,并展现了如何应用 UWA 的性能检测工具确定和解决这些问题。内容包含了性能优化的根本逻辑、UWA 性能检测工具和常见性能问题,心愿能提供给 Unity 开发者更多高效的研发办法和实战经验。
明天向大家介绍第一局部,共五大节。残缺内容请返回 UWA 学堂查看。
- 玩家眼中的游戏性能
- 开发者关注的游戏性能
- 如何确定问题
- 如何解决问题
- 如何继续监控性能
前言
1. 玩家眼中的游戏性能
任何一个玩家在玩耍游戏过程中都会碰到相似的疑难:为什么我玩一段时间就会闪退?为什么我的游戏这么卡?为什么我的手机这么烫?为什么手机电量下得这么快?
对于玩家而言,无关手里这款游戏自身的美术是否精良、玩法是否乏味,当上述这些疑难呈现时,其游戏体验会自然而然地变差,并不可避免地导致黏性降落。这是每个游戏开发者都不想看到的后果。
而实情是,对于咱们明天着重探讨的挪动端游戏市场而言,国内市面上各类硬件机型性能跨度很大;如果我的项目要反对海内市场,则往往我的项目所要承当的性能压力更大。那么,如何让持有不同硬件设施的玩家,尤其是通过中低端设施接触到咱们游戏我的项目的玩家也能顺利流畅地体验游戏内容,就是咱们的次要指标之一。
2. 开发者关注的游戏性能
在游戏我的项目的开发过程中,一个十分常见的景象是:对于一个规模较小或教训不够丰盛的开发团队,在新我的项目的中后期往往把全副精力投入到实现性能中去,而疏忽了性能优化的工作;到了游戏中后期甚至邻近上线的时候进行测试,才发现我的项目充斥着大量重大的性能问题,影响到了游戏的失常体验,但却不晓得从何改起,工夫十分困顿。足以见得,性能问题是一款游戏我的项目重要的生命线,须要开发者建立良好的优化意识和优化常识体系,能力让我的项目少走弯路。
和玩家视角不同的是,像闪退、卡顿、发热、耗电这种感官层面的性能问题,UWA 认为在开发者的视角中应该将其次要分为内存、CPU 和 GPU 三个大类的问题。本文的次要内容旨在围绕这三个大类的常见典型问题进行例举和探讨,从而造成一份挪动端游戏性能优化概述。
那么,既然曾经发现了若干性能问题,如何排查确定问题和解决问题就成了最要害的两个步骤。
3. 如何确定问题
发现了性能问题后的第一大步骤就是确定问题。
举例而言,咱们的游戏我的项目运行工夫一长就会闪退,是因为咱们的缓存策略做的不好或者存在冗余景象,导致内存一直回升造成的闪退?还是因为咱们的美术资源内存管制的不好,几个较大的资源就轻易把整体内存给撑大了?
又或者咱们发现一个游戏场景卡顿重大、帧率很低,是因为这里的同屏渲染面片数和 DrawCall 数都太高导致渲染模块压力大?还是因为此处的 UI 过于简单且变动频繁造成的更新耗时?
还或者咱们感到手里的手机烫的惊人,是不是因为以后场景 GPU 压力过大?咱们的带宽、Shader 复杂度、Overdraw、后处理等是不是管制的不够好?咱们在以后机型上做的分级策略并不适合?
以上只是泛滥千奇百怪层出不穷的性能问题中的寥寥几点。后文还将具体探讨一些比拟常见的问题。总之,确定问题的工作自身也是一项挑战。
3.1 计算机语言 / 图形学 / 游戏引擎常识
常识和教训无疑是一个开发者在优化我的项目性能时最贵重的武器,一直地学习和更新也是每一个程序员武装起本人的过程。欠缺而丰满的常识天然不仅仅有利于确定问题,同样有助于解决问题。放在这里说是因为它是咱们有能力着手优化工作的重要前提。
除了查看各类工具源码和文档、跟踪工具更新内容、翻阅大牛撰写的书籍、浏览各类技术论坛和博客等等以外,也能够在 UWA 的技术社区中找到很多优质内容。
UWA 学堂:继续更新各类优质课程,内容从某些开发工具的入门和应用到某个引擎模块的机制原理详解;从最新的挪动端游戏技术实际到精品我的项目案例解说等等。还邀请了泛滥具备多年从业教训的业界大佬和驰名游戏公司合作伙伴撰稿,涵盖面广、品质颇高。更有每年侑虎科技 UWA 主办的 UWA DAY 游戏开发者大会的优良内容。
UWA 问答:帮忙开发者找到更好的答案。是游戏开发者们日常沟通交流技术问题的良好平台。在这里你对游戏制作方方面面的任何问题,都可能失去探讨或解答。通过最间接的技术交换来少走弯路、取得通过实际测验的开发教训,让确定和解决问题的过程变得简略许多。
UWA 开源库:帮忙开发者发现更好的解决方案。不断更新和整合了各种起源的开源我的项目,翻译结束、分类清晰、图文并茂,为开发者提供了更加不便地搜寻发现和获取开源资源的渠道。
UWA Blog:蕴含 UWA 精选的各类技术文章、揭示学堂优质内容上新、整合问答优质问题、介绍 UWA 产品和其更新等各类 UWA 社区动向。
3.2 多种多样的辅助工具
工欲善其事必先利其器。应用工具取得间接准确的性能数据,能更加直观地反映出性能瓶颈,从而达到事倍功半的成果。
随着业界的倒退和成熟,各大引擎、IDE 和硬件厂家都推出并更新着本人的性能剖析辅助工具,也有不少开发者或团队喜爱依据本身我的项目的状况开发本人的性能监控插件。
以引擎而言,Unity Profiler 是很多开发者都会用且在用的工具,能够记录并查看 CPU/ 渲染 / 内存等各模块的实时耗费参数。而 Unreal 4 中也已提供了相似的性能。
以 IDE 而言,Windows、MAC OS/iOS、Andriod 平台都别离有实用的工具,如 Visual Studio 的性能探查器、XCode 的 Instruments、Android Studio 的 Profiler 等。
以硬件而言,SnapDragon Profiler、XCode Metal Frame Capture、Mali Graphics Debugger 等品种就更多了,不一一赘述。
总而言之,依据开发者的应用熟练度、不同硬件平台的兼容性、工具性能的覆盖面等等因素,开发者在筛选适合的性能优化辅助工具时很容易挑花眼。
3.3 UWA 工具
那么有没有一款简略易用、兼容性强、性能全面的性能优化辅助工具呢?
当然有啦——
UWA GOT Online 工具能够通过 UWA 提供的 SDK 疾速集成到测试项目中,在真机上实现测试流程后,在极短的工夫内实现数据的上传和解析,从而主动生成一系列可视化的图表。与此同时,还基于 UWA 丰盛的优化教训和宏大的数据库进行评分,依据各个性能模块提供针对性的剖析倡议和性能参数的变化趋势。
不仅如此,UWA 还提供了 GPM、GOT、真人真机测试服务、在线 AssetBundle 检测、本地资源检测、GPU 专项报告和深度优化等工具或服务,从不同维度满足开发者的优化需要。
4. 如何解决问题
性能的第二大步骤就是解决问题。在有了常识教训和上述工具的加持下,咱们的我的项目越是简单、越是来到前期,就越是会面临一条长长的优化问题清单。在无限工夫里正当地布局并缩短这条清单,就是咱们面临的下一项挑战。
4.1 优化工作优先级
在进行具体的优化工作前,正当的布局往往能节俭大量总体工夫。
布局工作的第一点就是要抓住问题的主要矛盾。在一条长长的优化清单中,把每一项条目按程序齐全优化结束往往是不事实的。此时就须要重新整理这份清单,依照优先级从新进行排序,为优化性价比更高的问题投入更多。
对于优先级的判断,UWA 认为次要参考两点:一是重要性,如果一个问题对以后场景的性能压力影响远大于其余因素、显然是主要矛盾,如果不予修改很难维持失常的游戏体验,那么就应该投入更多的人力工夫集中优先解决;二是易操作性,如果一个问题造成的性能压力相对来说并不大,但只是消耗极少功夫的举手之劳,比方只是在引擎设置中敞开一个开关,就应该优先把它改掉。
4.2 性能和成果的衡量
第二点则是一种取舍,针对资源和渲染等局部的优化往往会影响到游戏的体现成果。为此,程序员往往须要和策动、美工共事增强沟通,在两者之间找到一个平衡点。这种均衡是一种动态平衡,须要结合实际状况操作。比方,一款吃鸡游戏画面变动频繁、且须要晦涩的战斗操作,那么对体现的要求能够适当低一些;而一款养成类游戏把精美的角色作为卖点,其模型和动画就须要十分粗劣,而就义一部分性能。哪怕在同一款游戏中也能够在过场动画和角色展现界面中重视体现,而在战斗场景中关注性能,须要具体问题具体分析。
总的来说,游戏我的项目的优化最终目标是可能在玩家硬件上顺利运行,而为此放弃很大一部分体现成果,也是大多数开发团队的理论抉择。
4.3 分级策略和制订规范
第三点,在每一类机型上都达成上述的均衡就是咱们的分级策略。咱们大能够在高端机乃至旗舰机上开启后处理、应用高分辨率高模;但在中低端机型上则应用另外一套规范。
制订分级策略同样须要咱们依据我的项目类型调整。更细节精确的分级还应参考我的项目发行指标市场的硬件机型和同类游戏的分档教训,具体能够参考文章《基于挪动设施算力的 UWA 性能规范零碎上线》。
另外,开发团队还最好指定一套详尽正当的规范来治理束缚整个开发流程。最常见的就是指定美术资源规范,从而极大水平防止内存问题的失控。Unity 还提供了回调函数在资源导入时就进行归一化设置,具体也能够在 UWA 学堂中找到相干课程《自动化标准 Unity 资源的实际》。
4.4 UWA 倡议
布局结束后就来到了具体的优化工作。这个工作简短且须要急躁,而 UWA 很乐意在这个过程中持续提供帮忙:
你当然能够在 UWA 社区中寻找办法,或者是在 UWA 工具的自动化报告中找到解决方案。你还能够分割 UWA 工作人员,从而提供真人真机测试报告 1 对 1 解说服务或者是更进一步地深度优化服务。UWA 的引擎技术团队将对游戏我的项目进行更加具体的诊断和倡议。
5. 如何继续监控性能
在迈出了性能优化的前两步后,很多开发团队都想要或者走出第三步,也就是继续监控性能的这一步。为此,一些团队安顿专门的引擎优化人员、尝试开发本人的 DevOps 工具。咱们认为这是一种游戏研发的“工业化”趋势的体现。
5.1 游戏研发工业化
随着中国游戏谋求高品质的需要逐年晋升,游戏研发团队对于我的项目研发“工业化”的需要也越来越高。在 UWA 看来,游戏研发“工业化”目前能够分为五个维度:标准化、规范化、专业化、自动化和可定制化。在过来的 2021 中,UWA 在以上各个方面中做了大量工作并积攒了很多教训。
在 2022 年,由侑虎科技主办,行将召开的以游戏开发为主题的第六届 UWA DAY 技术大会中,UWA 将秉持“躬身入局 践行游戏研发工业化”的主题,率领行业开发者品鉴业界的卓越研发理念和实战心得,并携手业内合作伙伴独特构建凋谢共赢的技术交换生态。
在此背景下,UWA 隆重推出了 UWA Pipeline 2.0 版本。它是一款面向游戏开发团队的本地合作平台,旨在为游戏开发团队搭建专属的 DevOps 研发交付流水线。
5.2 UWA Pipeline
UWA Pipeline 次要包含:
- 专属的 DevOps 研发交付流水线
- 公有云真机近程调试
- 可视化配制自动测试
- Pipeline 内疾速创立 UWA 服务
- 反对近程构建
五大性能,提供了专为游戏设计的 DevOps 研发交付流水线,且集成了各项 UWA 工具和服务,构建简略、操作便当。更多详细信息欢送点击下文理解。
《速成,把握 UWA Pipeline 性能和应用办法》
《UWA Pipeline 的应用与自动化流水线的搭建详解》
本文内容就介绍到这里啦,更多内容能够返回 UWA 学堂进行浏览。课程将从内存、CPU、GPU 三个维度探讨以后游戏我的项目中经常出现的一些性能问题。