• 欢迎访问夏天爸爸记录站,WordPress信息,WordPress教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入SUmmerdad BLOG

关于游戏的极限压缩

应用技术 summerdad 1年前 (2018-07-27) 79次浏览 已收录 0个评论 扫描二维码

其实游戏压缩已经经历了很长时间的技术变革了….

记得 01~02 年那会,那些藏金阁中的高压版游戏,都是要经过无数遍的解压(当然还包括了文件格式转换,比如图
片格式转换(jpg->bmp),声音格式转换(ogg->mp3,ogg->wav))….

随着游戏加密技术的发展,现在的游戏可没以前那么容易解开了,资源也没那么容易搞定,不过压缩技术也在进

目前市面上主流的高压版游戏都是经过多层压缩的(当然以前也是)..

经过几日的反复研究,终于摸索出一些门道

首先准备的软件
1:Precomp (只需要这两个文件precomp.exe,packjpg_dll.dll) http://schnaader.info/precomp.php 
2:FreeArc(其实也就是只需要个arc.exe) http://www.freearc.org/

打包步骤:
1:使用一个压缩格式对需要压缩的文件(通常就是 game 啦)进行打包,注意这里的打包指的是无压缩打包

就是说使用压缩软件把分散的游戏文件打包成一个单个的文件,你可以 7za,winzip,winrar,freearc都可以

常见的集中于 7za 打包和freearc打包,个人倾向于freearc打包,

命令行指令:
arc a -m0 [打包后的文件名].arc [需要打包的文件夹完整|相对路径]
-m0:指的是无压缩量打包,详见freearc的文档

例如:arc a -m0 k1.arc “e:\game” 即将 e 盘的 game 文件夹打包成一个单独的文件 k1.arc

打完后的文件大小应该和源文件夹大小一致!

2:使用 precomp 对打包文件进行预压缩(啥叫预压缩呢,简单的说就是分析文件,将已经压缩的数据流,解压出
来,便于真正压缩时能获得更高的压缩量,所以预压缩后文件会变大,甚至会变成原来的 2 倍大)

命令行指令:
precomp.exe -slow -v k1.arc
-slow:尽量分析数据流多释放些数据
-v:显示执行信息(不想看就省略)
k1.arc:当然就是刚才打包的文件咯

执行后生成 k1.pcf 文件(这就是预压缩后的实际文件)

3:使用freearc对与压缩文件进行压缩,当然尽量压小些的话,压缩参数就要高些,同时压缩时间也越长

命令行指令:
arc a -mx “game.arc” “k1.pcf”
a:添加压缩包
-mx:和前面的-m0 是同一种参数,mx 指最大压缩量,压缩和解压时使用的内存最大
(经过反复的测试,发现机器的内存值越大,压缩量越高,所以在支持 4G 以上内存的 64 位 OS 上压缩量可以达到最
大,当然在 2g 内存下使用一些特殊的参数也能提高一些压缩量,我的参数arc a -mlzma:767m -di -lc-

–cache10m -i2 “game.arc” “k1.pcf”        -di:显示压缩信息,-i2:di 的辅助参数,显示更多信息,-lc-最大压缩
内存使用量, -mlzma=767m 使用 lzma 算法的最大内存占用值,767 是我在 2g 内存下测试的极限值,再大内存就
不够用了,大家可以根据自己机器的实际情况自行测试这个值的大小)

好了经过漫长的等待后文件就压缩好了,通常游戏中的过场动画是没什么压缩量的,所以大家经常看到游戏主
程序和动画分开下载的情况

这样的压缩结果可能比一般winrar压缩,7z 压缩小的多,但是由于多层压缩,压缩时间上并没有什么优势…

所以再次向制作高压游戏的大大们致敬~辛苦了~

简单说一下解压,解压很简单了

一般写个批处理啥的,执行相关的命令即可
arc.exe x -y game.arc
x:解压
-y 确认选项全选 y

解出 k1.pcf

precomp.exe -r k1.pcf
-r:还原预解压的文件

还原出 k1.arc

arc.exe x -y k1.arc

解压完成了


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于游戏的极限压缩
喜欢 (0)
[xiahuanming@gmail.com]
分享 (0)

您必须 登录 才能发表评论!