欢迎来到曼巴电玩 - 一家专业的3ds汉化游戏资源网站!

【3ds游戏压缩包】_游戏资源的压缩、打包

发布时间:2020-08-28 14:13:30   来源:ycysoft.com   栏目:3ds角色扮演RPG 
字号:
本文有1122个文字,大小约为5KB,预计阅读时间3分钟

9年前,我设计了网易游戏的资源包以及补丁包的数据格式。当初的设计目的是:方便解析,快速定位资源包内的文件,方便更新、每次更新尽可能的节约带宽。这些年来,虽然各个项目修修补补的改进了资源包的格式,但本质上并没有特别大的修改。一开始我们直接把需要打包的文件连接起来,在文件末尾附上文件索引表。当初为了快速定位文件名,文件名做了hash处理,可以用hash值直接定位文件。而资源包里并没有储存文件名信息,而是保存在一个额外的index文件中。这个index文件并不对外发布。所以直接对资源包解包是无法准确还原文件名的。btw,暴雪的mpq文件也是作类似处理的。除非你猜测出文件名,否则也很难对文件名还原。网上许多mpq解包工具都针对特定游戏附了一个额外的文件名列表。和许多其它游戏Client(比如暴雪的MPQ文件)不同。我们的包格式里文件与文件之间是允许有空洞的。这是考虑到资源包文件都比较大。如果用传统的打包软件运作的方式:从包内删除一个文件,就重新打包或移动内部数据。在玩家更新资源的时候,就会有大量的文件IO操作。比如WOW或SC2在更新的时候,下载更新包的时间往往只占整个更新时间的一小部分,大部分时间花在把补丁打在已有的资源包上。如果频繁更新客户端,对于用户,这会有很讨厌的等待。所以当初考虑到这个因素,我们在删除包内文件时,并不移动资源包内的数据,而是把空间留下来。如果新增加的文件较之小,就重复利用这个空间。如果利用不上,就浪费在那里。这有点像内存管理算法,时间久了,资源包内会有一些空洞,但也是可以接受的。

的确,2进制diff的作用有限,现在很多项目改用文本数据格式,很小的修改就会影响整个文件的diff结果。不过原始的设计也有其历史原因。因为10年前硬盘I/O速度很慢,而大话西游在设计时又需要实现无缝加载的大地图。所以地图文件的格式是经过特别设计的。这种方式很适合地图文件的修改和更新。另外,对于未压缩的图片文件的更新也有其意义。

9年前,我设计了网易游戏的资源包以及补丁包的数据格式。当初的设计目的是:方便解析,快速定位资源包内的文件,方便更新、每次更新尽可能的节约带宽。这些年来,虽然各个项目修修补补的改进了资源包的格式,但本质上并没有特别大的修改。一开始我们直接把需要打包的文件连接起来,在文件末尾附上文件索引表。当初为了快速定位文件名,文件名做了hash处理,可以用hash值直接定位文件。而资源包里并没有储存文件名信息,而是保存在一个额外的index文件中。这个index文件并不对外发布。所以直接对资源包解包是无法准确还原文件名的。btw,暴雪的mpq文件也是作类似处理的。除非你猜测出文件名,否则也很难对文件名还原。网上许多mpq解包工具都针对特定游戏附了一个额外的文件名列表。和许多其它游戏Client(比如暴雪的MPQ文件)不同。我们的包格式里文件与文件之间是允许有空洞的。这是考虑到资源包文件都比较大。如果用传统的打包软件运作的方式:从包内删除一个文件,就重新打包或移动内部数据。在玩家更新资源的时候,就会有大量的文件IO操作。比如WOW或SC2在更新的时候,下载更新包的时间往往只占整个更新时间的一小部分,大部分时间花在把补丁打在已有的资源包上。如果频繁更新客户端,对于用户,这会有很讨厌的等待。所以当初考虑到这个因素,我们在删除包内文件时,并不移动资源包内的数据,而是把空间留下来。如果新增加的文件较之小,就重复利用这个空间。如果利用不上,就浪费在那里。这有点像内存管理算法,时间久了,资源包内会有一些空洞,但也是可以接受的。

在公司,有后来的同事质疑过这种方式,觉得其对减少补丁体积的作用不大。反而增量打包增加了许多制作补丁包的时间。主张直接在补丁中放入更新的小文件,然后让最最终用户机上以小文件为单位做patching。的确,2进制diff的作用有限,现在很多项目改用文本数据格式,很小的修改就会影响整个文件的diff结果。不过原始的设计也有其历史原因。因为10年前硬盘I/O速度很慢,而大话西游在设计时又需要实现无缝加载的大地图。所以地图文件的格式是经过特别设计的。这种方式很适合地图文件的修改和更新。另外,对于未压缩的图片文件的更新也有其意义。

【3ds游戏压缩包】_游戏资源的压缩、打包

链接:3ds汉化游戏提取链接

提取码:8dzp

上一篇:【3ds的安卓模拟器下载游戏下载地址】_3

下一篇:【3ds cia格式怎么删游戏】_3ds

×
织梦二维码生成器

图说天下

本文标题:【3ds游戏压缩包】_游戏资源的压缩、打包

本文地址:http://ycysoft.com//juesebanyan/42187.html

我们专注于任天堂3ds switch 等中文游戏的下载以及攻略更新。对于不当转载或引用本网内容而引起的民事纷争、行政处理或其他损失,本网不承担责任。