RPGViewer - 档案文件格式概述

或许你经常见到某些游戏安装的时候会拷贝无数小文件到你的硬盘,而某些游戏只有若干个大块头的数据文件。
我们姑且称这些大块头为“档案文件”(Archive或者Package)。它里面包含了成千上万个小文件。

把小文件打包成一个单一的档案文件有若干优点。
首先,类似于我们常用的zip和rar格式,压缩打包之后,可以大大降低占用的磁盘空间。即使不进行压缩,打包之后也便于管理。
其次,打包之后可以简化游戏程序访问资源文件的步骤。我们可以直接通过ID,而不是文件名来标示文件
最后,打包在一定程度上可以提高用户提取游戏资源的成本。
比如加密文件头、使用自己设计的加密或者压缩算法处理数据等等。当然,类似的保护都是脆弱的。

一个好的游戏,应该通过提供开放的接口,使得用户能够定制游戏,甚至制作出不逊于原作的MOD,进而提高游戏本身的耐玩度,扩大收益。而不是局限在把自己的东西包裹的严严实实。
在这一点上,很多日韩的游戏与欧美游戏比较起来,实在相差甚远。

从这十几年来,不同游戏档案文件的格式来看,大致经历了以下三个阶段:
1、DOS时代
简单的把若干个小文件按顺序组合在一起。在档案文件的文件头只纪录每个文件在档案中的偏移地址等信息。
一般不会纪录文件名信息,程序中直接通过序号访问文件
2、Windows单机时代
随着硬盘容量的扩展,档案文件格式也有了多样化的发展。
有的在档案中加入了文件名,程序中也利用文件名(或者文件名的Hash)进行访问。
有的开始模拟文件系统,提供层次目录结构。
档案文件中也开始包含越来越多的内容。
不过此时的游戏数据大多是静态的,并不需要增删或者更新档案中的数据。如果确实需要更新(比如出补丁包或者资料片),那么通常的做法是提供另外一个文件,然后优先从该文件读取即可。
3、网游时代
因为网游必要提供对文件更新的良好支持,此时的档案文件的内容不再是固定不变。因此设计一个灵活的,便于替换、新增文件的格式显得更为重要。
于是我们看到,广泛使用的zip格式成为不少网游的选择。其它的档案格式通常会将存放档案中每个文件信息的内容从原来的文件头移动到文件末尾,以降低新增文件时需要改动的数据量
发布了40 篇原创文章 · 获赞 5 · 访问量 21万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章