MPQ

资料百科

MPQ 是 Blizzard公司将游戏数据包装在一起的一种档案格式,内容放置采取 Joliet 档案格式 (MS来自-DOS 路径型态+长文件名),与 Unix/Linux 路径型态不同。内部采取可压缩设表向龙门标听计,但对于不同档案型态,斗亲其压缩方式也不同。

  • 中文名称 MPQ
  • 类别 一种压缩文件格式
  • 制造公司 Blizzard 公司
  • 首次使用时间 1996
  • 首次使用游戏 暗黑破坏神

  MPQ,也称MoPaQ,是Mike O'Brien发明的一种压缩文件格式。在1996作为,MPQ油形凯责增回革练问河应用在Diablo(暗黑破坏神)游戏中。

  然而它的版权属于 Blizzard 的父公司 Hava首自处呢毫接s Interactive,并且在Mike O'Brien离开暴雪后兵香血众倒程尼继续使用。正是MPQs由于来自在Diablo(暗黑破坏神)中的出色表现,使其继续应用在Starcraft1&2(星际争霸一&二), Warcraft 2/2X/3/3X(魔兽争霸2/3及其资料片),Diablo 2(暗黑破坏神2), Lords 360百科of Magic(魔法大帝),World of 措事市味板朝右还供国Warcraft(魔兽世界)以及Diablo 3(暗黑破坏神3)中。

  MPQ内部包含了许多文件,包括坐标算法、声音、处王动画、字符串、数字数据和故事情节信息。明显地,M滑肉厚呀令女PQ的潜力很大。要想利用M威真路PQ,那么您就需要了解它。在有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 包360百科含,因为 SCM/SCX 文件也是 MoPaQ文件。但是这些散继议倍函数被加密了,所以只有知识渊博的黑客们才可以使用。对于Blizza言胞着新时针rd 来说不幸的是,有一个这样的黑客,他的名字是 Andrey Lelikov(aka Lelik)。他发现了一种事为州访问这些宝贵的函数的途径,并把这个复杂的过程封装在LMPQAPI.DLL(Lelik's MPQ API Library DLL)文件中。该文件自动破解StarEdit,将这些函数展示在所有的程序员面前。

价格术语

  MPQ是minimum package quantity,即最小包装个数

  一般商品是要有内彩盒和外包箱,一个外包箱里面容纳多少内彩盒因工厂和产品类型而权亲城住不同,一般是容纳10个,也可以变化,但为了运输方便和成本因素,有的工厂是有最小包装量的,不能低于6个或者5个之类的。

标签:
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com