MPQ
压缩文件格式
MPQ 是 Blizzard公司将游戏数据包装在一起的一种档案格式,内容放置采取 Joliet 档案格式 (MS-DOS 路径型态+长文件名),与 Unix/Linux 路径型态不同。内部采取可压缩设计,但对于不同档案型态,其压缩方式也不同。
简介
MPQ,也称MoPaQ,是Mike O'Brien发明的一种压缩文件格式。在1996作为,MPQ应用在Diablo(暗黑破坏神)游戏中。
然而它的版权属于 Blizzard 的父公司 Havas Interactive,并且在Mike O'Brien离开暴雪后继续使用。正是MPQs由于在Diablo(暗黑破坏神)中的出色表现,使其继续应用在Starcraft1&2(星际争霸一&二), Warcraft 2/2X/3/3X(魔兽争霸2/3及其资料片),Diablo 2(暗黑破坏神2), Lords of Magic(魔法大帝),World of Warcraft(魔兽世界)以及Diablo 3(暗黑破坏神3)中。
MPQ内部包含了许多文件,包括坐标算法、声音、动画、字符串、数字数据和故事情节信息。明显地,MPQ的潜力很大。要想利用MPQ,那么您就需要了解它。在有MPQ格式之前,一直使用的是WAR格式,在Warcraft 2,甚至在Warcraft 1中存放游戏数据。然而WAR格式是简单的,不精制的,是由缺乏经验的程序员所编写的文件格式。文件在档案中仅使用参考序数和是否被压缩做为唯一可选择调用的方法。
尽管如此它仍然完成了它的任务。它提供了压缩格式下的文件调用。但很快缺点开始出现。调用时使用参考序数,意味着一长串文件接口的名单必须被保留和被咨询,当程序员需要使用其中一个文件,那么则需要极长的时间,工作变得越来越繁琐。当时这些问题并没有那么严重,所以有人坚持使用WAR格式,但是一切在使用 Battle .net(战网)后,问题变得不能接受。
程序特点
如被提及以前,MPQ格式一直被用做修正WAR的设计缺陷。但是他们也想增加一些全新的特点到MPQ。在暴雪的游戏中,MPQ格式的特点总结为以下几点:
1.Security. 安全
暴雪一定不希望在游戏中玩家可以修改数据。或许他们提早知道MPQ格式可以为Starcraft使用。不管怎样,安全是最重要的,由此他们显然做了极大的努力去维护游戏的安全性。
2.Efficiency. 效率
MPQs要求执行时先简单预先输入的各种各样的任务数据然后实时放出。对于预先输入数据,时间并不重要。但是实时放出就是另一件事了,其中的数据必须快速地被解压使用。
3.Multilinguality.多语言的计算机处理
在最开始的时候,暴雪就计划发布其游戏在全球游戏市场,因此他们尽可能的做到多语言。在创新时,他们决定设计多语种能写入MPQ格式。
4.Expandability.扩展
显然的,在游戏中需要使用独立的数据。太大的数据不仅是效率低并且减慢游戏速度,如果补丁修改了,也是很麻烦的。暴雪明白这个道理,因而MPQ格式的要求就是有能力完全,高效率的,从多个档案数据中调用需要的数据。
程序模块
相比在程序模块中复制函数,多数程序员喜欢把相同代码放到shared libraries(共享程序库)里。shared libraries是包含了任意程序功能的函数模块。不仅能避免多余,并且能缩小程序大小。
正因为如此,暴雪使用一个称为Storm的共享程序库(PC机上为Storm.dll,MAC机为Storm.bin)。
所有现代的暴雪游戏中都使用storm存放重要功能,比如读取MPQ,Battle .net和一些图形化例程
当暴雪要发布新版本的游戏,只需要增加功能到storm,无需改变原有功能。这意味着旧版本的游戏只用升级新版本storm就可以了,这就是我们俗称的安装补丁。
就像所有共享程序库,任何想使用它的程序都可以访问到它的函数。这就是为什么storm只包含MPQ读取功能。
编写功能
虽然 Storm 没有包含任何编写MPQ的功能。但是 StarEdit 包含,因为 SCM/SCX 文件也是 MoPaQ文件。但是这些函数被加密了,所以只有知识渊博的黑客们才可以使用。对于Blizzard 来说不幸的是,有一个这样的黑客,他的名字是 Andrey Lelikov(aka Lelik)。他发现了一种访问这些宝贵的函数的途径,并把这个复杂的过程封装在LMPQAPI.DLL(Lelik's MPQ API Library DLL)文件中。该文件自动破解StarEdit,将这些函数展示在所有的程序员面前。
价格术语
MPQ是minimum package quantity,即最小包装个数
一般商品是要有内彩盒和外包箱,一个外包箱里面容纳多少内彩盒因工厂和产品类型而不同,一般是容纳10个,也可以变化,但为了运输方便和成本因素,有的工厂是有最小包装量的,不能低于6个或者5个之类的。
参考资料
最新修订时间:2022-05-04 16:32
目录
概述
简介
参考资料