游戏包体大小优化 -- 实用篇

来源:互联网 发布:win10仿mac os桌面 编辑:程序博客网 时间:2024/05/17 03:53

现在也不乏 几百M,几个G的手游。原因很简单国家政策的倾斜、硬件、软件升级带来的宏利。这是一件好事但是过大的内存占用也有不少坏处,这里又不废话说明了。(懂的人自懂)

重点来了优化了,优化了 ... ...

首先框架+库 优化,别过多的企图从代码上下刀。大多数游戏全套逻辑代码的大小也基本不可能大过几张场景图的大小。但是也不是不可能,前面已经说到了是别过多的企图。哈哈绕了一大圈,代码这边其实也是可以优化的,前面的说法其实是给小白说的。因为操作错误风险无穷.....  既然逻辑代码省不了多少,那么就从框架和外接库下手。删除多余的用不到的库(包括第三方库)(下手请慎重别删错了),去除无用的库函引用(因为平台相关性等原因如果引用了就有可能把库打到包里去)。

 下一步说说视屏吧,HandBrake这个软件很不错for Mac 的我已经发出来了大家可以去下载。用法很简单,可以根据自身需求(对视屏清晰度帧率等需求进行操作)。如果没有大的需求的话可以用它默认的选项。此软件实用性、效果来说统统、统统满分满分(没商量) 。直接看效果:


接着谈谈音频资源的优化吧,这里我手写了一个脚本用于音频的压缩主要是在ffmpeg 的基础上做的,(ffmpeg是可以压缩视屏音频图片的很强大 很强大 非常强大) 要用我这个脚本的话要先控制台安装“ffmpeg”我先上代码:

import osimport re  import shutilimportPath = '/Users/xxxx/Documents/RunFox/res'exportPath = '/Users/xxxx/Desktop/temp/test'arry =[]def processDirectory ( args, dirname, filenames ):    # print 'Directory',dirname    for filename in filenames:        arry.append(dirname+'/'+filename) os.path.walk(importPath, processDirectory, None )for cell in arry:    # print cell    if re.search('(.+?\.wav)|(.+?\.mp3)', cell):        result,nil = re.subn(importPath, exportPath, cell)         m = re.match('(.*)/', result).group()        print m        if not os.path.exists(m):            os.makedirs(m)        # shutil.copy(cell, result)        os.system('ffmpeg -y -i '+'"'+cell+'"'+' -ab 80k -ar 44100 -ac 2 -aq -1 '+'"'+result+'"')

importPath 就是你要压缩的音频资源的目录路径。

exportPath 就是压缩后你要导出的资源路径(根目录)。

ffmpeg 的参数:

-ab是  设置比特率(单位:bit/s,也许老版是kb/s)前面-ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96,转换 默认比特率都较小,要听到较高品质声音的话建议设到160kbps(80)以上。

-ac是设置声道数,1就是单声道,2就是立体声,转换单声道的TVrip可以用1(节省一半容量),高品质的DVDrip就可以用2  

-aq是  设置音频质量 (指定编码)

-ar是设置音频采样率 (单位:Hz),PSP只认24000 一般是二的整数倍

我用的是44100 已经是很高的了,因为我项目需求高质量音质情况下尽量减少包体大小。(我项目中我这样设置后像几kb的就很难压缩了基本大小不变)参数可以根据不同音质需求进行调整。

 

采样速率就是-AR 你音频是多少就<= 这个值就好切记要小于等于。大于是没有用的。

我取消 shutil.copy(cell, result) 注释,然后把音频压缩代码注释 也就是os.system('ffmpeg -y -i '+'"'+cell+'"'+' -ab 80k -ar 44100 -ac 2 -aq -1 '+'"'+result+'"')之后运行。 也就把原音频资源拷贝一份出来对比下效果。(大神勿怪我说这么多废话。我是怕小白不懂乱用到时候不成功或出问题又喷我)

直接上图看效果:


最后就是图片资源了:这个比较复杂又关系到包体大小 又关系到运行内存占用。等有时间了我专门开一篇文章说说。

以上音频,视频压缩用好基本可以做到无损压缩。



啊啊啊  好多技术没写出来都快忘完了。草稿箱好几篇,希望能坚持吧.....

1 0
原创粉丝点击