随着对游戏包文件的深入研究,我还发现不少游戏的包文件存在一种补丁机制。$ r* d+ J6 f* @( l& R
$ W) `7 ~2 m0 |' b7 r' O
补丁机制简述如下# }" v. A& h( m) ^2 P( h. G$ C I$ }
游戏一般会按文件名的字母顺序读入相同后缀的包文件,如果在不同的包文件里存在相同的文件的话,
5 X2 ^% Z( [2 d. K; Z/ L% E则后读入的文件优先度比较高,将会被游戏优先使用。2 F W6 N: s4 J3 e5 Q6 ?9 `
* I% T% t. e/ m \) O& \, Z3 W8 E
举例& ?: f' e, X8 v7 b0 M
假设游戏的包文件是data.pak, 其中含有一个叫a.png的英文图片文件。
" W, c4 w: Y2 r+ a! I我们可以构造一个小的包文件data_p1.pak,其中含有一个叫a.png的中文图片文件。7 D6 a; Y ]( Q; a% g0 s6 e v
由于data_p1.pak在排序后排在data.pak后面,将会被后读入,所以它里面的文件将会取代data.pak包里的同名文件。
! U6 R( K: L) ]所以,最后那个中文图片文件将会被游戏使用。
. Q4 U; I5 U8 h+ [$ C1 S8 v, E0 U' L, s( m8 @5 P2 F! e6 }
我们掌握了这个原理以后,就有可能制作出比较小的汉化补丁。
* {2 T. J/ [$ E热心的朋友可以试试看,playfirst sdk的.pfp文件是否支持这种补丁机制? |