游戏包体大小优化 -- 实用篇
来源:互联网 发布: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+'"')之后运行。 也就把原音频资源拷贝一份出来对比下效果。(大神勿怪我说这么多废话。我是怕小白不懂乱用到时候不成功或出问题又喷我)
直接上图看效果:
最后就是图片资源了:这个比较复杂又关系到包体大小 又关系到运行内存占用。等有时间了我专门开一篇文章说说。
以上音频,视频压缩用好基本可以做到无损压缩。
啊啊啊 好多技术没写出来都快忘完了。草稿箱好几篇,希望能坚持吧.....
- 游戏包体大小优化 -- 实用篇
- 项目总结之优化游戏包大小
- Unity包体大小优化
- 游戏包体大小的那些事
- 【Unity3D游戏开发】性能优化之缩减压缩包大小 (二八)
- 【Unity3D游戏开发】性能优化之如何将包大小减少到极致(三六)
- 浅析:Unity3D开发的游戏如何降低包体大小
- 讨论:如何降低Cocos2d开发的游戏包体大小
- Unity3d优化包的大小
- apk安装包大小优化
- iOS 安装包大小优化
- 压缩游戏包大小的几个方法
- 减小游戏apk安装包大小
- SQLSERVER复制优化之一《改变包大小》
- ionic 打包App优化包大小
- AR手机应用安装包大小优化
- android应用安装包大小优化
- Android混淆、优化包大小 记录
- SQL语句UPDATE
- 及其学习kNN算法matble实现
- 多校联盟#con1 埃蒙的时空航道
- 腾讯云技术大牛教你,MySQL内核深度优化
- 在机器学习中各分类方法的优缺点
- 游戏包体大小优化 -- 实用篇
- 使用jQuery的children()方法遇到的问题
- 创业公司的技术管理
- Leetcode 5
- test
- MyBatis 3.Mapper XML 文件
- webots自学笔记(一)软件界面和简单模型仿真
- iOS 刷新UI控件的问题
- redis讲解及在windows安装方法