Unity Notes之配置文件基於內容的差異化更新

遊戲項目中各種策劃配置的表格更新最近格式頻繁,因爲策劃要反覆來調節一些數值。這些個調整對於線上版本一般就通過差異化動態更新的方式來更新的玩家的客戶端中。這過程中有一個問題,就是有的時間策劃一更新的內容很小,比如只是在其中增刪了一種物品的配置記錄,而這樣的話也就相當於這個表格整體有了修改,需要全部更新到客戶端上去,這樣做使得更新的資源量比較多。於是就添加了基於xml(這裏用的是xml來做配置表格)的內容差異化更新。

基本思路是這樣的,對於兩個修改前後的表格,不是通過直接比較文件的MD5(或其它標識碼)來做是否有更新的判定,而是直接比較XML中的內容,如果內容有差異的話就提取出其中的差異內容,然後將這些差異內容來做動態的更新;然後,在本地客戶端拉取到這些差異化內容後再與本地的xml表格進行合併,進而得到新的配置表格來使用即可。

整個過程主要有:

1. 對於修改的最新配置文件,使用diff的方法來生成對應的差異內容,並生成應的內容補丁做更新使用;

2. 客戶端拉取到最親的diff內容後與本地的配置文件做merge,得到最終的配置文件來使用;

這樣一來,對應的差異化更新文件就可以小很多。

這裏直接有微軟的XML庫可以直接使用:https://msdn.microsoft.com/en-us/library/aa302295.aspx。對於使用json格式的配置文件這裏也有一個庫:http://npm.taobao.org/package/json-diff

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章