内存优化

只有管理好游戏所使用的内存大小,才能保证您的游戏可以在更多的设备上运行。减少内存占用,也可以提升游戏性能。

图片

通常来讲,图片是项目中最消耗内存的部分。当您在开发项目时,最好经常在调试界面中检查内存的占用。

唤境Evkworld中的图片加载是一次性都加载完的;通过分段加载资源的方式,优化启动体验,减少玩家等待时长,降低内存占用。

分段加载

分段加载开启后,默认按场景列出所有游戏资源。资源加载顺序的规则为:根据游戏场景跳转顺序,会提前加载下个游戏场景的所有资源。(游戏场景跳转顺序,和场景面板的场景排序不一定一致)

需要注意的是,将游戏预先要加载的资源,放在第一个分段中。比如多个场景都会使用的资源,位于“场景3”中,则一定要将“场景3”放在第一个分段。开启分段加载后,可以自动计算各个场景占用的资源哦。

计算图片内存使用

首先,要记住,图片格式对于内存占用没有影响,只会影响下载大小。这是因为压缩图片没法被直接渲染,所有图片都会被转化为32位ARGB位图格式。这意味着,每个像素会占据4比特,分辨代表透明通道、红色通道、绿色通道和蓝色通道。

有了以上信息,就可以很容易的估算一张图片的内存占用:只要将其像素数乘4就可以了。比如一张100×100的图片,会占用100×100×4=40000字节,大概39kb;而一张1920×1080的图片,会占用1920×1080×4=8294400字节,大概7.9mb。所以,使用大量高清图片会迅速占用大量内存,应尽量避免这类操作。

同时,您应该注意到,内存占用是基于原始图片的,而不是基于它在舞台上的尺寸。图片在舞台上的缩放,并不会影响它的内存占用。所以最有效率的做法是,保证图片在舞台上是100%使用的。而在制作渐变时,可以使用32×32的小尺寸图片,将其在舞台上进行拉伸,以减小内存的占用。

音频

尽管大部分内存最终是被图片消耗了,我们还是很有必要了解一下音频是如何载入的。

唤境Evkworld中的音频会被直接解压到内存中,这样能够保证音频无延迟、无加载的播放。与图片一样,不同格式的音频只会影响下载大小,不会影响内存占用:所有音频都会被解压为PCM波形。

默认状态下,所有音频会在加载阶段,解压到内存中。一般16位、44.1khz的音频,每秒占用86kb的内存;如果是立体声则为172kb。1分钟这样的音频,会占用5mb(单声道)或10mb(立体声)内存。所以,音频应尽量保持简短。