首页 > 游戏工具 > 【工具】关于游戏的极限压缩
2019
04-01

【工具】关于游戏的极限压缩

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

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

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

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

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

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

打包步骤:
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

解压完成了

最后编辑:
作者:厨子
厨子一声吼,食材抖三抖!

留下一个回复