
。其实在我看来,Quake早已超越了一个游戏的范畴,应该说它有点像一个3D游戏竞技的
标准平台,一个游戏 *** 作系统。你可以在上面开发任何你能想到的3D游戏(有人居然用Q
uake3引擎开发赛车游戏),而pak文件就是实现这种可能性的重要手段之一。
清楚认识pak文件
pak文件是Quake系列游戏所采用的一种特殊压缩包格式,以利于游戏的开发。由于
是针对游戏的设计和使用而采用的文件结构,所以与一般的压缩文件有所不同,它的特
点如下:
1.声音,地图,3D模型,材质贴图等文件是按着保留目录路径结构的方式压入pak文
件的。
2.pak文件的后缀名在Quake 2里是pak,在Quake 3是pk3。pak包里的文件一般都是零
压缩率,不过Quake3中的扩充包是可以含压缩率的。
3.命名有规定,其名字决定其优先级。
使用pak这种文件格式对于游戏的开发者和玩家都有着无与伦比的方便性和可塑性(
或者说自定义性)。具体如何实现的,等一下我将举例说明。使用pak包这种形式有几点
好处:
1.对于程序开发人员来说资源调用方便,易于管理;
2.由于结构特殊,对初学者有屏蔽作用避免被乱改,对高手却很容易修改,比较方
便;
3.所有模式都是利用这个特点做的;
4.pak包被Quake的引擎视为一个目录,能利用外置pak文件的形式进行升级而无需
删除原有文件。利于增加效果包,新地图,改进界面,增加model等扩展内容;
5.修改还原便利,文件之间互不影响。
实际上稍有一点软件基础和对 *** 作系统懂一点的人就知道,目录和文件从簇的序列
即物理角度观察,唯一的区别是文件的每个簇所包含的指针指向自己文件的下一个簇,
而目录簇所包含的指针则指向它里面的文件在硬盘上的地址。像zipmagic就是利用这个
原理,可以嵌入到资源管理器里直接把ZIP文件当目录处理。当我用Winzip打开和压缩Q
uake3的pk3文件,看到里面的文件几乎全是压缩率为零而且含路径信息时,就想到这可
能就是一个大的目录,只不过Windows把它识别为一个超大文件,而Quake3的执行程序可
以把它识别为一个目录。Quake3好像是一个对用户透明的资源管理器。这与zipmagic直
接把ZIP文件当目录处理是一个道理,只不过Quake的pak文件与ZIP文件在格式上稍有不
同而已。现在来说说前面提到的零压缩率在这里的作用。如果是零压缩率,那么pk3文件
就相当于一个普通的文件夹,Quake3从中读取要调用的文件时只要寻找相应的路径而无
须对其解压;如果是非零压缩率,那么还要经过解压缩包这一步骤。但程序把调用文件
解出后,应该是放在一个临时文件夹里,所以只是进入游戏时慢了一点,在游戏中并不
影响运行速度。
轻松修改pak0.pk3
pk3文件可以用Winzip 8.0打开进行修改,只要最后的修改文件以pk3为后缀名就可
以使Quake3正确识别了。由于Winzip是最常用的解压缩工具,下面就以Winzip为例讲一
下我改造Quake3里的pak0.pk3文件的过程。
首先,用Winzip8.0找到pak0.pk3里的动画文件,那是几个后缀名为RoQ的巨无霸,
当然还有id公司的Logo(我总等不及每次进Quake3时还要看“当当,当,当,当!only
you……” 啊,对不起!唱顺嘴儿了^^)。这些文件是以动画文件的形式出现的,所以
都以RoQ为后缀名。接着就轮到音乐,都是wav文件,全部删掉。如果你有专用的pak文件
浏览器Pakscape,就直接将pak0.pk3里的Music和Video目录删去即可(见图1)。因为W
inzip是以文件为主体,所以删文件会稍微有些麻烦。可以通过按Size按钮让它以文件大
小排序,再寻找大文件(见图2)。按目录寻找在这里效率并不高,因为pak0.pk3里有上
千个文件,找起来很麻烦。
说到这里有必要介绍一下pak0.pk3里每个目录的内容是什么,以便于大家进行取舍:
1.botfiles机器人的文件,设定机器人的AI,对q的喜好,聊天的内容等。
2.demos Quake3的录像文件,建议留下,可以测系统速度。
3.env 地图里用的环境图片,主要是太空里的,但怎么看怎么都是Quake2里直接拿
过来用的,id真懒。
4.gfx主要是准星、数字、血花、武器的d药的材质等图片。
5.icons 各种武器的图标等。
6.levelshots地图的图片,在建立游戏时的地图选单里用来预览的。
7.maps地图以及bot的导航文件。
8.menu主界面里的按钮和菜单的图片。
9.models bot的3D模型文件。
10.music音乐。
11.scripts游戏的参数文件,如地图的列表和机器人的属性描写文件。各种特效的
描述文件。
12.sound声音。
13.sprites不知道为什么要在这里放上五张图片:(
14.textures 材质图片,就是我们看到的墙壁、天花板/跳板等等一大堆贴图。
15.video Quake3里的动画。
16.vm定义Quake3的界面,比较深奥。
值得删除的有地图文件。在maps下的bsp文件就是地图文件,这与Quake2的地图文件
是一样的,可惜不能通用(多新鲜呐!)。还有很多与bsp文件一一对应的.aas文件,好
熟悉是不是?Quake2里有个著名的机器人程序gladiator,它的作者Mr.Exclusive被id
Software专门请去做Quake3的bots。所以在他的gladiator和Quake3里都有aas文件,这
是bots的导航文件,指导bot在地图里应该如何走。删掉q3dm0-q3dm3,q3tourney1这些
地图。
大手术结束后,pak0.pk3从457MB变为172MB!删除那些地图是因为它们太烂,我是
不会去打的,在它们上也不会有好demo,留着没用。本来我只想保留q3t2,q3dm6,q3d
m13,q3t4这四张地图的(我的Quake2就只有q3dm1,q3dm3,q3dm6,ztndm2,ztndm3,ps
trip六张地图),不过考虑到网上有许多Quake3服务器还用其它地图,所以就不敢删得
太多了。
有一点大家千万注意,就是用Winzip修改pk3时,是将文件全部先解压放在其工作目
录后,再根据你的要求删除,然后把剩下的文件打包,再覆盖原有文件。所以你的工作
目录一定要有300多兆的剩余空间用来做虚拟内存。
可以看出,合理的删减pak0.pk3文件可以节约将近300MB空间,且完全不影响游戏。
应该是quake的文件,动态数据链接库,数据库文件。前面这个不知道,dll文件可以用某些特定的软件打开,比如一些pe编辑器
db文件一般是数据库文件,但是每个有他特定的格式,也不一定都能打开。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)