随着对游戏包文件的深入研究,我还发现不少游戏的包文件存在一种补丁机制。
3 L$ d0 v2 m# b9 O2 F" P- m
0 }, j+ }. G# _0 u' K1 g补丁机制简述如下
A9 w3 j( b4 F8 `2 g7 `游戏一般会按文件名的字母顺序读入相同后缀的包文件,如果在不同的包文件里存在相同的文件的话,
0 f" c% G' D2 f0 s5 _则后读入的文件优先度比较高,将会被游戏优先使用。
/ ]) V& l3 R I5 Y/ K4 j, v
) t: p6 c1 C7 d! O' A7 f3 a举例. b. S: S: P O7 a! ]9 g- P
假设游戏的包文件是data.pak, 其中含有一个叫a.png的英文图片文件。
$ n" M- X2 ]! }6 z9 K* z+ j+ f我们可以构造一个小的包文件data_p1.pak,其中含有一个叫a.png的中文图片文件。
& S; m v: |7 h+ R- L, G5 p由于data_p1.pak在排序后排在data.pak后面,将会被后读入,所以它里面的文件将会取代data.pak包里的同名文件。
" K4 c+ L3 S- m1 x9 V! J0 g所以,最后那个中文图片文件将会被游戏使用。' {' s* N! O3 d& |1 J6 @6 y8 c
U5 W7 v; A+ L. q X# G
我们掌握了这个原理以后,就有可能制作出比较小的汉化补丁。
& G( S( q3 ]% r4 y热心的朋友可以试试看,playfirst sdk的.pfp文件是否支持这种补丁机制? |