700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 游戏开发43课 移动游戏性能优化1

游戏开发43课 移动游戏性能优化1

时间:2018-10-12 22:03:51

相关推荐

游戏开发43课 移动游戏性能优化1

1. 前言

很多年前就想将这些年工作中积累的优化经验撰写成文章,但懒癌缠身,迟迟未动手,近期总算潜下心写成文章。

涉及到具体优化技巧时,博主会尽量阐述原理和依据,让读者知其然也知其所以然。要完全读懂这篇文章,要求读者有一定的计算机语言/图形学/游戏引擎基础。希望读者看完后能将自己的游戏性能优化到一定的高度,使得游戏的效果和效率在高/中/低端设备都能符合或超出产品的预期。

Unity为图例,可举一反三用到其他商业或自研引擎中。

1.1 性能优化的重要性

想必玩过游戏的人会经常感叹:游戏怎么那么卡?手机怎么那么烫?耗电怎么那么快?

其实这些问题都归结于性能问题,性能优化对游戏的重要性不言而喻。

对新游戏项目,中前期可能一直在赶需求赶效果,忽略了性能优化的工作,到中后期性能瓶颈必然会凸显。如果前期做到有效组织资源,制定美术规范,完善开发流程和工具链,后期优化起来会顺手很多,少走很多弯路。

1.2 优化Tips

很多年前,就听到一位图形界的大神说过:优化无止境,优化的最高境界是不渲染。

以前不能完全明白他的话,觉得有点夸张,做过几个游戏项目的性能优化工作之后,深有体会,这么多年过去,言犹在耳,应验了真香定律!

优化的本质就是不渲染少渲染用更省的方法渲染

1.2.1 分清主次

优化性能首先要找出性能瓶颈,对性能影响最大的地方先优化,接着对次影响的进行优化,以此类推。如果能遵守这条规则,优化效果和花费时间的曲线关系大致如下图:

即前期的优化效果会非常明显,但随着时间的推移,花的时间越来越多,优化的效果反而逐渐放缓。这告诉我们:

1. 首先找出性能瓶颈,优化效果最明显;

2. 优化无止境,后期优化效果和时间比降低,要适可而止。

1.2.2 善用分析工具

工欲善其事必先利其器。善用分析工具可以快速定位出性能瓶颈,达到事半功倍的效果。性能分析工具请参看:1.3 辅助工具

1.2.3 平衡好性能和效果

每个游戏偏重点不一样,有些游戏偏重效果而不太讲究性能,有些游戏偏重效率而牺牲效果,有些游戏两者需兼顾。

从博主的经验而言,大多数游戏开发者或者玩家,更偏重性能。举个例子,大多数人在玩吃鸡游戏时,为了帧率稳定和耗电慢一点,将所有的画质参数开至最低。

若为性能故,效果皆可抛。

1.2.4 定制优化参考指标

每个项目在优化前,需要定制一个具体的指标参数,比如高中低端机跑在什么设备上,要达到什么样的帧数等等。游戏Z定的参考指标如下表:

此标准是上半年定的,现在可以酌情放宽参数。定好标准后,就以此为依据进行优化,参数指标达到后即可认为优化任务完成。

1.2.5 做好效果等级管理

建议将等级管理逻辑抽象成单独的模块,增加QualityManager的角色,负责统筹管理和实现等级相关的逻辑。其它模块要只要调用这模块的接口,可以轻易实现差异化逻辑。此外,QualityManager可以收集游戏关键参数:fps/网络Ping值/流量,对外提供查询接口。

1.2.6 具体情况具体分析

每个游戏项目的具体情况不一样,不可生搬硬套本文涉及的参数和方法,否正可能适得其反,花费了时间,性能没能很好地提上去。

1.3 辅助工具

目前市面上分析工具很多,特性和适用的平台都不同,下面就简单介绍常用的工具,具体使用方法另行搜索。

1.3.1 引擎分析工具

Unity Profiler

Unity Profiler可以查看CPU/GPU/内存/音频/物理/网络等模块的具体消耗参数,是Unity游戏必备的性能分析工具。

Unreal

Unreal 3及之前的版本要先用命令行生成profiler文件,再通过UnrealFrontend加载生成的文件查看消耗数。Unreal 4提供了类似Unity的Profiler的窗口,更加便捷。更多参看:Unreal Profiler Tool Reference

1.3.2 IDE分析工具

Visual Studio性能探查器

VS只可运行在windows平台,可对当前项目/指定的exe/运行的进程进行CPU和GPU性能采样并查看具体的消耗指标。

XCode Instruments

XCode只可运行在Mac OS,可调试Mac OS和iOS的APP的CPU/GPU/内存等性能参数。

Android Studio Profiler

Android Studio可运行在Windows和Mac OS,但只可分析Android的APP,参数包括CPU/内存/网络等。

1.3.3 GPU厂商工具

几乎每个GPU大厂都提供了调试自家产品的GPU分析工具。它们与引擎和IDE的工具最大的不同点是:可以查看每次Draw Call的渲染状态/引用的资源/绘制的画面,以及其它独特参数。

Tegra Graphics Debugger(NV)

工具本身可运行在各个主流系统,也可以分析OpenGL和Vulkan,但只支持NV旗下的Tegra K1和X1系列GPU。

Mali Graphics Debugger(Arm)

类似于Tegra Graphics Debugger, 但全面支持OpenGL的各种版本,还支持Vulkan和OpenCL的调试。

PVRTrace(Imagination Technology

只可调试使用Imagination Technology公司GPU的App。

Adreno Profiler(高通)

只可调试使用高通旗下GPU的App。

PerfHud(NV)

只支持PC程序,非常强大的GPU调试工具,但无法调试移动设备,需要依赖模拟器。

PerfHud ES(NV)

PerfHud移动版,支持移动设备调试, 需要下载整个CodeWorks for Android开发包。

1.3.4 其它第三方工具

PIX(MS)

只运行在windows平台,只支持DirectX的分析。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。