这是大概的过程 一般的高压缩游戏是根据游戏的不同的文件性质然后分开压缩的,最后解压后会自动合并,达到游戏的压缩最大化,这里只是一个最简单的方法说明。
其实还有更多超级压缩的软件,比如 WinUDA UHARCGUI 等等等等
这里只是指路,具体最佳压缩方式还请自行研究。
首先准备的软件
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
解压完成了