游戏狂人
形而上的未视感
 
- 贡献度
- 107
- 金元
- 13517
- 积分
- 1780
- 精华
- 0
- 注册时间
- 2011-7-16
|
以下黑字是原理解释,懒得看的可以直接看红字
=====================================================
看了一下新发布的1.3升级档,发现育碧婊真是懒得不行
首先,大多数游戏所调用的资源(模型、贴图等)和数据(参数等)都是打包在一起供游戏的执行文件调用的。那么问题就来了:如果我出于优化或者修复bug的目的,要修改这些资源数据,怎么办呢?
正常游戏(比如《武装突袭3》)更新游戏(升级档)的方式是:将打包好的文件解包,修改那些需要修改的小文件,最后再重新打包好。即是采用一种注入的方式升级。这样的好处是不会产生冗余的旧文件。
但是育碧就讨厌多了。自从《看门狗》开始,育碧发布升级档都是通过外挂独立文件(也就是打补丁)来实现的,《孤岛惊魂4》和《刺客信条:大革命》都是如此。
举例说明:《刺客信条:大革命》中,与游戏中巴黎城有关的文件都打包在DataPC_ACU_Paris.forge, DataPC_ACU_Paris_assets.forge, DataPC_ACU_Paris_gi.forge里的。这次发布的优化补丁要对其中的很多细节进行修改调整。但是呢,育碧并没有把这些forge解包-修改-重新打包,而是干脆发布了DataPC_ACU_Paris_patch文件进行修改。这些patch文件拥有着较高的优先级,游戏的执行程序先会调用patch里的文件,如果找不到,才会调用原来游戏本体的文件。
这种升级档发布方式导致了游戏的体积会随着升级档的更新而越来越大,而且这膨胀的体积并非因为添加了新的游戏元素,而只是不同版本的重复文件造成的
解决思路:将patch文件和本体文件解包,将patch里的文件覆盖本体里的文件,最后打包本体
=====================================================
举例来说,制作一款游戏就像造一辆车。但是有时候你造好的车卖出去之后,才发现车里有些零件不好使,导致这辆车总是出故障。怎么办呢?正常的汽车厂会拆开维修这辆车,把旧的不好使的零件扔掉,用新的好使的零件来替换。这样,当你修好之后,这辆车还是原来的形状。
但是育碧不这么做。育碧的做法是:车门锁不上?在车门外挂个锁头!油箱容量不够?在后备厢里焊一个汽油桶!方向盘转不动?在副驾驶座上安一个方向盘!车灯不亮?在保险杠上挂两个大灯泡!
一通修理之后,车是修好了,跑在路上不会抛锚了。但是车体被修得面目全非,臃肿不堪。原本5吨重的汽车修好之后就变成8吨了。那些报废的零件(旧的车锁、油箱、方向盘)明明没用了却还在车上留着。
那么我们想减轻这辆车的重量要怎么办呢?很简单,把报废的零件拆下来扔掉就好啦~
游戏也是一样的道理。要降低游戏的体积,就要先解包(打开引擎盖),用新文件把旧文件替换掉(扔掉旧零件,安上新零件),再重新封包(关闭引擎盖)
|
|