游戲大版本更新和熱更新

游戲上線后,遇見bug或者需要更新內(nèi)容(包括資源竿音,玩法和屎,數(shù)值調(diào)整,游戲腳本等)的時候春瞬,一般有2種做法柴信。第一種,發(fā)個新包宽气,然后讓玩家下載新的版本随常;第二種,在游戲內(nèi)更新萄涯,游戲啟動時去下載需要更新的資源绪氛。第一種我們一般稱為游戲大版本更新,第二種稱為熱更新涝影。

一般來說钞楼,不能通過小版本更新解決的問題,才會用到大版本更新袄琳,例如询件,不可熱更的游戲代碼。而熱更新是建立在每次大版本更新的基礎(chǔ)上進行的更新唆樊,因此惩阶,這2種更新方式應該互相承接悯仙。

我們可以通過版本文件和更新文件以及版本號來實現(xiàn)大版本更新和熱更新。游戲的版本號由大 版本+資源版本?構(gòu)成,每一次大版本更新俐填,大版本號增加,資源版本號重置橙数。每一次熱更新激况,大版本號不變,資源版本號增加淀衣。

版本文件(MD5File)記錄每一個資源的MD5值昙读。

例如:

a.txt,1630d23f45464df6071a9948dd1592bf

b.texture,f9c985a8f2a86292a024c4ed21ed33fb

更新文件(UpdateFile)記錄每一個更新文件的資源版本號,資源版本號對應玩家去服務器上哪個版本庫里下載資源膨桥。

例如:

a.txt,0.1

c.txt,0.2


大版本更新流程:

1.清除之前的版本文件和更新文件

2.打包所有的資源

3.計算每個資源的MD5值蛮浑,創(chuàng)建新的版本文件,將所有資源的資源名稱和對應的MD5值保存在版本文件中只嚣。

熱更新流程:

1.打包所有資源

2.計算每個資源的MD5值沮稚,并和版本文件中記錄的MD5值做比較,將MD5值發(fā)生變化的資源和被刪除的資源記錄下來册舞。

3.

如果不存在更新文件蕴掏,即現(xiàn)在是在大版本后的第一次熱更新,創(chuàng)建一個更新文件调鲸,將所有MD5值發(fā)生變化的資源的名稱和其版本號記錄在更新文件中,格式為為【文件名盛杰,當前資源版本號】。


如果已經(jīng)存在更新文件线得,即現(xiàn)在是在上一次熱更新之后繼續(xù)熱更新饶唤。首先讀取上一次的更新文件,然后遍歷本次MD5值發(fā)生變化的資源贯钩,如果資源名稱在更新文件中存在募狂,則將更新文件中該資源版本號置為當前版本;如果資源名稱在更新文件中不存在角雷,則在更新文件中添加新的記錄祸穷,存放其資源名稱和當前資源版本號;如果更新文件中存在被刪除的資源名稱勺三,將該資源的記錄從更新文件中移除雷滚。
4.上傳需要更新的資源和更新文件(UpdateFile)到服務器
5.刪除原來的版本文件,將所有資源的MD5值保存在新的版本文件中吗坚。

玩家進入游戲后祈远,首先判斷是否需要更新版本呆万,如果是大版本更新,則提示需要重新下載安裝包车份;如果是小版本更新谋减,則先下載更新文件(UpdateFile),然后根據(jù)更新文件中的資源名和版本號去對應的地址下載資源扫沼。

服務器下載目錄結(jié)構(gòu)

UpdateFile.txt

0.1(資源版本號文件夾)

-------a.txt

0.2(資源版本號文件夾)

-------a.txt

-------c.txt

0.3(資源版本號文件夾)

-------a.txt

-------d.txt

假設(shè)UpdatFile.txt內(nèi)容為:

a.txt,0.3

c.txt,0.2

d.txt,0.3

如果玩家的版本是0.1出爹,則玩家需要去0.3的目錄下下載a.txt和d.txt,去0.2的目錄下下載c.txt.缎除。

如果玩家的版本是0.2严就,則玩家只需要去0.3的目錄下下載a.txt和d.txt。

通常會在客戶端緩存玩家下載過的資源和版本號器罐,然后與updateFile文件做對比梢为,生成需要下載的文件列表,然后去服務器下載即可技矮。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抖誉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子衰倦,更是在濱河造成了極大的恐慌袒炉,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件樊零,死亡現(xiàn)場離奇詭異我磁,居然都是意外死亡,警方通過查閱死者的電腦和手機驻襟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門夺艰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人沉衣,你說我怎么就攤上這事郁副。” “怎么了豌习?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵存谎,是天一觀的道長。 經(jīng)常有香客問我肥隆,道長既荚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任栋艳,我火速辦了婚禮恰聘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己晴叨,他們只是感情好凿宾,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著兼蕊,像睡著了一般菌湃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上遍略,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音骤坐,去河邊找鬼绪杏。 笑死,一個胖子當著我的面吹牛纽绍,可吹牛的內(nèi)容都是我干的蕾久。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼拌夏,長吁一口氣:“原來是場噩夢啊……” “哼僧著!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起障簿,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤盹愚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后站故,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體皆怕,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年西篓,在試婚紗的時候發(fā)現(xiàn)自己被綠了愈腾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡岂津,死狀恐怖虱黄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吮成,我是刑警寧澤橱乱,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站赁豆,受9級特大地震影響仅醇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜魔种,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一析二、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦叶摄、人聲如沸属韧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宵喂。三九已至,卻和暖如春会傲,著一層夾襖步出監(jiān)牢的瞬間锅棕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工淌山, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留裸燎,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓泼疑,卻偏偏與公主長得像德绿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子退渗,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容