一种服务器与终端设备的制作方法

摘要: 本申请涉及游戏更新,尤其涉及一种服务器与终端设备。背景技术:1、随着游戏行业的快速发展,采用虚幻引擎(unrealengine,ue)开发的游戏资源体量不断增大...
一种服务器与终端设备的制作方法

本申请涉及游戏更新,尤其涉及一种服务器与终端设备。

背景技术:

1、随着游戏行业的快速发展,采用虚幻引擎(unreal engine,ue)开发的游戏资源体量不断增大,尤其是3a级游戏,其pak文件(package file,打包归档文件)总容量常达到数gb甚至数十gb。在游戏版本迭代过程中,如何高效地将更新的资源包分发给用户,已成为影响用户留存和运营成本的关键环节。

2、目前,ue引擎游戏资源更新方案均以单个资产文件为最小更新单元,通过对比新旧版本的烘焙内容确定更新内容,生成包含更新内容的pak文件,运行时挂载pak文件并赋予其更高优先级以实现更新。

3、但这些方案无法精准定位pak文件内部的变化区域,当资产文件中仅有少量字节发生变化时仍需完整更新整个资产文件,造成带宽浪费和更新效率低下。

技术实现思路

1、本申请提供了一种服务器与终端设备,能够对文件内部条目进行精细化分块管理,通过元数据文件记录分块信息,在更新时精准定位变化区域,仅下载发生变化的数据块,从而解决现有技术中无法精准定位文件内部变化区域导致更新效率低的问题。

2、第一方面,本申请实施例提供了一种服务器,该服务器包括:

3、处理器,被配置为:

4、响应于游戏版本迭代事件,获取版本迭代文件;

5、基于第一预设数据长度,对所述版本迭代文件中的第一条目执行数据分块,得到至少1个第一条目块;

6、计算每个第一条目块的第一条目块哈希值和第一条目块偏移信息,和计算所述版本迭代文件的迭代文件哈希值;其中,所述第一条目块偏移信息用于指示所述第一条目块在所述版本迭代文件中的相对位置;

7、向迭代元数据模板写入所述第一条目块哈希值、第一条目块偏移信息以及迭代文件哈希值,得到迭代元数据文件;其中,所述迭代元数据文件用于指示终端设备与所述游戏版本迭代事件对应的目标条目块;

8、向清单文件模板写入所述版本迭代文件和所述迭代元数据文件的文件信息,得到迭代清单文件;

9、向终端设备下发所述迭代元数据文件和所述迭代清单文件。

10、第二方面,本申请实施例提供了一种终端设备,该终端设备包括:

11、控制器,被配置为:

12、响应于更新触发指令,从服务器获取版本迭代文件对应的迭代元数据文件,和从本地存储获取本地版本文件对应的本地元数据文件;其中,所述版本迭代文件包括第一条目,所述第一条目包括至少1个第一条目块;所述版本迭代元数据文件包括所述第一条目块的第一条目块哈希值、第一条目块偏移信息以及第一资源路径;所述本地版本文件包括第二条目,所述第二条目包括至少1个第二条目块;所述本地元数据文件包括所述第二条目块的第二条目块哈希值、第二条目块偏移信息以及第二资源路径;

13、基于所述第一条目块的第一资源路径和所述第二条目块的第二资源路径,在所述第二条目块中确定待比较条目块;其中,所述待比较条目块为具有与所述第一资源路径相同的所述第二资源路径的第二条目块;

14、比较所述待比较条目块的第二条目块哈希值与对应的所述第一条目块的第一条目块哈希值;

15、在所述待比较条目块对应的第二条目块哈希值和第一条目块哈希值不同的情况下,标记所述待比较条目块为目标条目块;

16、根据所述目标条目块的目标资源路径,从服务器下载所述目标条目块的目标条目块数据;

17、基于所述目标条目块的目标条目块偏移信息和所述第二条目块的第二条目块偏移信息,向目标文件模板写入所述目标条目块数据和第二条目块数据,得到目标文件;其中,所述目标文件用于更新终端设备中加载的目标程序。

18、第三方面,本申请实施例提供一种游戏文件更新方法,应用于第一方面所述的服务器,包括:

19、响应于游戏版本迭代事件,获取版本迭代文件;

20、基于第一预设数据长度,对所述版本迭代文件中的第一条目执行数据分块,得到至少1个第一条目块;

21、计算每个第一条目块的第一条目块哈希值和第一条目块偏移信息,和计算所述版本迭代文件的迭代文件哈希值;其中,所述第一条目块偏移信息用于指示所述第一条目块在所述版本迭代文件中的相对位置;

22、向迭代元数据模板写入所述第一条目块哈希值、第一条目块偏移信息以及迭代文件哈希值,得到迭代元数据文件;其中,所述迭代元数据文件用于指示终端设备与所述游戏版本迭代事件对应的目标条目块;

23、向清单文件模板写入所述版本迭代文件和所述迭代元数据文件的文件信息,得到迭代清单文件;

24、向终端设备下发所述迭代元数据文件和所述迭代清单文件。

25、第四方面,本申请实施例提供一种游戏文件更新方法,应用于第二方面所述的终端设备,包括:

26、响应于更新触发指令,从服务器获取版本迭代文件对应的迭代元数据文件,和从本地存储获取本地版本文件对应的本地元数据文件;其中,所述版本迭代文件包括第一条目,所述第一条目包括至少1个第一条目块;所述版本迭代元数据文件包括所述第一条目块的第一条目块哈希值、第一条目块偏移信息以及第一资源路径;所述本地版本文件包括第二条目,所述第二条目包括至少1个第二条目块;所述本地元数据文件包括所述第二条目块的第二条目块哈希值、第二条目块偏移信息以及第二资源路径;

27、基于所述第一条目块的第一资源路径和所述第二条目块的第二资源路径,在所述第二条目块中确定待比较条目块;其中,所述待比较条目块为具有与所述第一资源路径相同的所述第二资源路径的第二条目块;

28、比较所述待比较条目块的第二条目块哈希值与对应的所述第一条目块的第一条目块哈希值;

29、在所述待比较条目块对应的第二条目块哈希值和第一条目块哈希值不同的情况下,标记所述待比较条目块为目标条目块;

30、根据所述目标条目块的目标资源路径,从服务器下载所述目标条目块的目标条目块数据;

31、基于所述目标条目块的目标条目块偏移信息和所述第二条目块的第二条目块偏移信息,向目标文件模板写入所述目标条目块数据和第二条目块数据,得到目标文件;其中,所述目标文件用于更新终端设备中加载的目标程序。

32、本申请实施例提供的技术方案中,通过在服务器侧对版本迭代文件中的条目进行数据分块,计算每个数据块的哈希值和偏移信息,并生成迭代元数据文件,使得终端设备在更新时能够基于元数据文件精准定位发生变化的数据块,仅下载目标条目块数据并与本地未变化的条目块数据合并生成目标文件,避免了完整文件传输造成的带宽浪费,有效提升了文件更新效率。

1.一种服务器,其特征在于,包括:

2.根据权利要求1所述的服务器,其特征在于,所述处理器执行基于第一预设数据长度,对所述版本迭代文件中的第一条目执行数据分块,得到至少1个第一条目块之前,还被配置为:

3.根据权利要求2所述的服务器,其特征在于,所述处理器执行计算所述版本迭代文件的迭代文件哈希值,具体被配置为:

4.根据权利要求1所述的服务器,其特征在于,所述处理器执行基于预设数据量,对所述版本迭代文件中的第一条目执行数据分块,得到至少1个第一条目块,具体被配置为:

5.一种终端设备,其特征在于,包括:

6.根据权利要求5所述的终端设备,其特征在于,所述控制器执行响应于更新触发指令,获取本地版本文件对应的本地元数据文件和版本迭代文件对应的迭代元数据文件,具体被配置为:

7.根据权利要求5或6所述的终端设备,其特征在于,所述控制器执行响应于更新触发指令,从服务器获取版本迭代文件对应的迭代元数据文件,和获取本地版本文件对应的本地元数据文件,还被配置为:

8.根据权利要求5所述的终端设备,其特征在于,所述控制器还被配置为:

9.根据权利要求5所述的终端设备,其特征在于,所述控制器执行在所述待比较条目块对应的第二条目块哈希值和第一条目块哈希值不同的情况下,标记所述待比较条目块为目标条目块之后,还被配置为:

10.根据权利要求5所述的终端设备,其特征在于,所述控制器执行基于所述目标条目块的第一条目块偏移信息和所述第二条目块的第二条目块偏移信息,向目标文件模板写入所述目标条目块数据和第二条目块数据,得到目标文件之后,还被配置为: