浅谈游戏优化(一)
资源的优化
纹路图片优化
纹路图片紧缩
纹路图片缓存
声音文件优化
游戏功能一直是开发者关注的问题,做好功能优化也是开发者往往会忽略的关键作业。那么怎么做好功能优化作业呢?今天咱们就来谈谈功能优化之资源的优化。
资源的优化
资源的优化,顾名思义讲的是游戏中所需求的资源。而在游戏中占用资源最多的便是纹路图片和声音文件。本文首要讲讲这两种资源的优化。
纹路图片优化
在游戏包体中,纹路图片占有很大部分的体积,纹路图片过大,会影响游戏功能。首要有以下三点:
形成包体过大。影响部分渠道过审问题,以及用户下载时耗费更多流量问题。
形成占用内存空间过大,从而形成游戏奔溃。
在向GPU传递图片数据时,形成内存宽带的占用,从而形成读入大量图片时的卡顿。
那么,针对这些问题进行纹路图片优化该怎么处理呢?首要有两点:纹路图片紧缩和纹路图片缓存。
纹路图片紧缩
传统纹路紧缩仅仅单纯的紧缩纹路图片的数据,在读入到游戏中,还要经过解紧缩的进程,这样其实仅仅缩小了游戏的包体巨细,并没有下降内存中纹路图片所占的巨细,反而添加一个解紧缩的耗时作业。那么该怎么处理呢?拿Cocos2D-X举例,它的烘托底层OpenGL供给了紧缩纹路,能够支撑紧缩纹路图画数据的直接加载,免去解紧缩进程。OpenGL ES 2.0中,核心规范不界说任何紧缩纹路图画数据。也便是说核心机制是能够加载紧缩的纹路图画数据,但没有界说任何紧缩格局。因此,包括Qualcomm(高通)、ARM、Imagination Technologies(iPhone首要供货商)和NVIDIA(英伟达)在内的许多供货商都供给了特定与硬件的纹路紧缩扩展。这样开发者就必须在不同的渠道和硬件上支撑不同的纹路紧缩格局。比如苹果的设备均选用PowerVR GPU支撑PVR格局的紧缩格局。
剖析对比各种格局:
格局 特点
PVR.CCZ PVR的ZIP紧缩方式,程序读入时先解紧缩成PVR,然后再传给GPU
PVRTC 选用有损紧缩,在高对比下图片有瑕疵。和PVR.CCZ不同的是,PVRTC不需求解紧缩。除此之外Android设备基本不支撑PVRTC 格局。
RGB565 RGB和RGBA怎么选?RGB即16位色,也便是没有Alpha透明通道的格局。图片去除Alpha通道能够削减图片文件的巨细,但在实践中,由于传递到OpenGL ES时需求数据对齐,实践在内存中RGB和RGBA所占巨细相同。在16位色中,RGB565质量最高,一共65536种颜色。代表意思:没有透明度,R=5,G=6,B=5,,那么一个像素点占5+6+5=16位(2字节)
RGBA8888 常用格局。由4个8位组成,即A=8,R=8,G=8,B=8,那么一个像素点占8+8+8+8=32位(4字节)
RGBA4444 由4个4位组成,即A=4,R=4,G=4,B=4,那么一个像素点占4+4+4+4=16位 (2字节)
总而言之,根据不同的需求挑选正确的图片格局是功能优化的关键步骤。另外咱们也能够将一张大图拆分红小图的方式来减小图片的巨细,这样能够确保一切的图素尽可能被重复使用,避免剩余图片的糟蹋。关于非渐进的布景,咱们能够使用九宫格图片来削减图片的巨细。
纹路图片缓存
这个知识点我将单独用一个博客来讲解(尽情等待😄)
声音文件优化
纹路之外,声音文件也会在游戏中占有必定的内存巨细,优化声音文件也能够协助下降游戏的峰值内存。优化方式能够从以下两方面考虑:
选用单一声道。这样能够把文件巨细和内存使用都削减一半以上。
尽量选用低的比特率来获得最好的音质作用,一般来说96到128kbps关于mp3文件说够用了。
资源优化处理是无止境的,在质量和功能间尽量做到平衡。