游戏大版本更新和热更新

游戏上线后,遇见bug或者需要更新内容(包括资源,玩法,数值调整,游戏脚本等)的时候,一般有2种做法。第一种,发个新包,然后让玩家下载新的版本;第二种,在游戏内更新,游戏启动时去下载需要更新的资源。第一种我们一般称为游戏大版本更新,第二种称为热更新。

一般来说,不能通过小版本更新解决的问题,才会用到大版本更新,例如,不可热更的游戏代码。而热更新是建立在每次大版本更新的基础上进行的更新,因此,这2种更新方式应该互相承接。

我们可以通过版本文件和更新文件以及版本号来实现大版本更新和热更新。游戏的版本号由大 版本+资源版本 构成,每一次大版本更新,大版本号增加,资源版本号重置。每一次热更新,大版本号不变,资源版本号增加。

版本文件(MD5File)记录每一个资源的MD5值。

例如:

a.txt,1630d23f45464df6071a9948dd1592bf

b.texture,f9c985a8f2a86292a024c4ed21ed33fb

更新文件(UpdateFile)记录每一个更新文件的资源版本号,资源版本号对应玩家去服务器上哪个版本库里下载资源。

例如:

a.txt,0.1

c.txt,0.2


大版本更新流程:

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

2.打包所有的资源

3.计算每个资源的MD5值,创建新的版本文件,将所有资源的资源名称和对应的MD5值保存在版本文件中。

热更新流程:

1.打包所有资源

2.计算每个资源的MD5值,并和版本文件中记录的MD5值做比较,将MD5值发生变化的资源和被删除的资源记录下来。

3.

如果不存在更新文件,即现在是在大版本后的第一次热更新,创建一个更新文件,将所有MD5值发生变化的资源的名称和其版本号记录在更新文件中,格式为为【文件名,当前资源版本号】。


如果已经存在更新文件,即现在是在上一次热更新之后继续热更新。首先读取上一次的更新文件,然后遍历本次MD5值发生变化的资源,如果资源名称在更新文件中存在,则将更新文件中该资源版本号置为当前版本;如果资源名称在更新文件中不存在,则在更新文件中添加新的记录,存放其资源名称和当前资源版本号;如果更新文件中存在被删除的资源名称,将该资源的记录从更新文件中移除。
4.上传需要更新的资源和更新文件(UpdateFile)到服务器
5.删除原来的版本文件,将所有资源的MD5值保存在新的版本文件中。

玩家进入游戏后,首先判断是否需要更新版本,如果是大版本更新,则提示需要重新下载安装包;如果是小版本更新,则先下载更新文件(UpdateFile),然后根据更新文件中的资源名和版本号去对应的地址下载资源。

服务器下载目录结构

UpdateFile.txt

0.1(资源版本号文件夹)

-------a.txt

0.2(资源版本号文件夹)

-------a.txt

-------c.txt

0.3(资源版本号文件夹)

-------a.txt

-------d.txt

假设UpdatFile.txt内容为:

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文件做对比,生成需要下载的文件列表,然后去服务器下载即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容