这节课我们来聊聊游戏性能优化。大家在玩游戏的时候可能经常会遇到卡顿,延迟,死机,不流畅等等问题,那么这些问题是怎么引起的呢?如何去尽量的减少这些情况的发生呢?这些问题对于游戏开发者来说是必须要面对的问题, 也是必须要解决的问题!下面就由我来给大家讲讲在开发中我们应该从哪些方面着手去减少或者解决这些情况的发生。
上面我们例举在游戏运行的过程中可能会遇到的一些问题, 每种问题引起的原因有很多多,但是我们可以从大方向对整体游戏进行优化,使游戏整体性能更优,从而减少这些情况的发生。对于性能优化我们大体可以从四个大方向去优化,即:CPU,GPU, 内存以及网络和IO,下面给大家一一讲解:
CPU优化,在手游账号拍卖平台中CPU主要分担着运算的责任,因此像短时间大量的计算从而导致画面不流畅,电量消耗大,发热严重等情况都可能是因为CPU导致的。针对这些情况我们就需要对CPU优化,那么CPU的优化说白了就是对运算的优化,大家应该尽量减少大量运算或者短时间的大量运算,对此大家可以从四方面着手。一是将计算分散到多个逻辑中,减少短时间的大量运算。二是将可以缓存的数据尽量缓存起来,从而避免那些重复的计算。三是减少CPU对资源的申请、销毁与调配。四是使用合理的算法和数据结构,这个也是CPU优化中最重要的。
GPU优化,GPU的职责就是负责游戏中所有的图像、特效的渲染。GPU的消耗过高会导致游戏画面卡顿、画质降低、手机发热等情况,严重影响游戏体验。对于游戏来讲这是致命的。关于CPU优化大家可以从以下几方面入手:
1、资源优化,比如合理规划图集,指定合理的粒子效果,约定模型的三角面数
2、简化着色器,使用多级纹理与材质贴图技术相结合
3、使用LOD技术、遮挡剔除等技术,减少GPU绘制的数量
4、针对不同的系统平台使用对应的压缩格式。
5、优化显存带宽
游戏渲染可以说是游戏的心脏,所以GPU的优化显得尤为重要,需要开发者格外的重视
内存优化,内存的功能我就不多介绍了, 相信大家都了解。由于内存不足所导致的问题有闪退,卡死等。对于内存的优化,一是降低资源的大小,比如剔除不需要的资源、对资源进行压缩等;二是及时动态的加载和卸载资源,这样可以大大的减少瞬时内存的压力,减少因内存浪费而给游戏带来不必要的消耗。三是降低资源的质量,这是一种有损的优化,不到最后一般不用,当然我们也可以根据不同的设备使用不同质量的资源,将损失降到最低。
网络和IO优化, 他们主要负责资源的加载, 可能是网络的或者本地的。网络不好,或者资源加载时间过长会让大大降低用户体验。因此在CPU、GPU、内存优化后我们同时也不能忽略网络与IO优化,对于网络与IO的优化,大家可以从以下几方面入手:
1、限制短时间内的发包率
2、合理优化包大小,减少包的冗余数据,降低网络请求次数
3、对回包进行分帧处理,及时响应
4、使用独立线程、协程等手段优化资源加载。