一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

游戏应用中地图数据同步的方法、装置、设备及存储介质与流程

2021-11-15 18:34:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种游戏应用中地图数据同步的方法、装置、设备及存储介质。


背景技术:

2.在一些网络游戏中会采用一张大地图,地图会被切割成多个地图区域,每个地图区域称为一个地块。玩家在地块上开展争夺,抢占地块上的资源或者在地块上建造。这一类游戏涉及到多人操作地图,所以当其中一名玩家操作了地图上的地块之后,需要同步对地块的变动给所有在地图上的玩家。
3.目前大多数此类游戏中,玩家在首次登录到游戏的时候拉取全部地块的信息。玩家断线重连服务器后,不会重新登录游戏,但是由于无法接收到在断线后到重连这段时间的地块变动的同步消息,因此需要重新拉取整个地图的所有地块的信息,需要消耗较长时间和较多资源。


技术实现要素:

4.本技术提供一种游戏应用中地图数据同步的方法、装置、设备及存储介质。
5.第一方面,本技术提供一种游戏应用中地图数据同步的方法,应用于服务器,所述服务器存储有地图数据,所述地图数据对应地图被划分成多个地块,所述地图数据包括每一地块的地块信息,包括:
6.在地块信息发生变化时,生成本次变化对应的版本号,将发生变化的地块的标识与所述版本号对应存储,其中本次变化对应的版本号大于本地存储的最大版本号;
7.根据终端设备存储的最大版本号和本地存储的版本号,确定所述终端设备需要更新的目标地块的标识;
8.根据所述目标地块的标识,将所述目标地块的最新地块信息同步到所述终端设备。
9.第二方面,本技术提供一种游戏应用中地图数据同步的方法,应用于作为客户端的终端设备,包括:
10.向服务器发送终端设备存储的最大版本号,以使所述服务器根据所述终端设备存储的最大版本号和本地存储的最大版本号,确定所述终端设备需要更新的地块的标识,并将所述终端设备需要更新的目标地块的最新地块信息同步到所述终端设备,其中所述服务器存储有每次地块信息变化的版本号及发送变化的地块的标识,且每一次变化对应的版本号大于上一次变化对应的版本号;
11.从所述服务器获取所述目标地块的最新地块信息;
12.根据所述目标地块的最新地块信息,更新本地存储的所述目标地块的地块信息。
13.第三方面,本技术提供一种游戏应用中地图数据同步的装置,应用于服务器,所述服务器存储有地图数据,所述地图数据对应地图被划分成多个地块,所述地图数据包括每
一地块的地块信息,包括:
14.地块变动信息存储模块,用于在地块信息发生变化时,生成本次变化对应的版本号,将发生变化的地块的标识与所述版本号对应存储,其中本次变化对应的版本号大于本地存储的最大版本号;
15.同步需求确定模块,用于根据终端设备存储的最大版本号和本地存储的版本号,确定所述终端设备需要更新的目标地块的标识;
16.数据同步模块,用于根据所述目标地块的标识,将所述目标地块的最新地块信息同步到所述终端设备。
17.第四方面,本技术提供一种游戏应用中地图数据同步的装置,应用于作为客户端的终端设备,包括:
18.发送模块,用于向服务器发送终端设备存储的最大版本号,以使所述服务器根据所述终端设备存储的最大版本号和本地存储的最大版本号,确定所述终端设备需要更新的地块的标识,并将所述终端设备需要更新的目标地块的最新地块信息同步到所述终端设备,其中所述服务器存储有每次地块信息变化的版本号及发送变化的地块的标识,且每一次变化对应的版本号大于上一次变化对应的版本号;
19.数据同步模块,用于从所述服务器获取所述目标地块的最新地块信息;根据所述目标地块的最新地块信息,更新本地存储的所述目标地块的地块信息。
20.第五方面,本技术提供一种服务器,包括:
21.处理器,存储器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序;
22.其中,所述处理器运行所述计算机程序时实现上述第一方面所述的方法。
23.第六方面,本技术提供一种终端设备,包括:
24.处理器,存储器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序;
25.其中,所述处理器运行所述计算机程序时实现上述第二方面所述的方法。
26.第七方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方面所述的方法。
27.本技术提供的游戏应用中地图数据同步的方法、装置、设备及存储介质,通过在地块信息发生变化时,生成本次变化对应的版本号,将发生变化的地块的标识与所述版本号对应存储,其中本次变化对应的版本号大于本地存储的最大版本号,对于任一地块的一次变化,服务器只需对应存储发生变化的地块的标识与所述版本号,减少存储数据量,节省存储空间。进一步地,在需要同步地图数据时,终端设备向服务器发送终端设备存储的最大版本号。服务器根据终端设备存储的最大版本号和本地存储的版本号,确定所述终端设备需要更新的目标地块的标识;根据所述目标地块的标识,将所述目标地块的最新地块信息同步到所述终端设备。终端设备从所述服务器获取所述目标地块的最新地块信息;根据所述目标地块的最新地块信息,更新本地存储的所述目标地块的地块信息。地图数据同步时,只需增量同步部分地块的最新地块信息,无需传输地块的历史修改数据,能够节省传输时间,提高传输效率,同时减少地图数据同步的流量消耗。
附图说明
28.图1为本技术实施例一提供的游戏应用中地图数据同步的方法流程图;
29.图2为本技术实施例二提供的地图数据的示意图;
30.图3为本技术实施例二提供的地块变动列表的示意图;
31.图4为本技术实施例二提供的另一地块变动列表的示意图;
32.图5为本技术实施例三提供的游戏应用中地图数据同步的方法流程图;
33.图6为本技术实施例四提供的游戏应用中地图数据同步的装置的结构示意图;
34.图7为本技术实施例五提供的游戏应用中地图数据同步的装置的结构示意图;
35.图8为本技术实施例六提供的服务器的结构示意图;
36.图9为本技术实施例七提供的终端设备的结构示意图。
37.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
38.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
39.本技术所涉及的术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
40.在一些网络游戏中会采用一张大地图,地图会被切割成多个地图区域,每个地图区域称为一个地块。玩家在地块上开展争夺,抢占地块上的资源或者在地块上建造。这一类游戏涉及到多人操作地图,所以当其中一名玩家操作了地图上的地块之后,需要同步对地块的变动给所有在地图上的玩家。
41.在地图数据同步的方案中,终端设备(服务器)可以每次从服务器拉取整个地图的全部地块的信息,以保持本地的地图数据与服务器同步。但是这种方法每次同步时传输数据量大,耗费较长时间和较多的流量资源。
42.另外,该方案假定了在首次拉取之后,玩家和服务器的连接只要不中断,就能够不重复不乱序的接收到增量的地块同步消息,这在一些不可靠的传输框架的网络下可能就会出现地块同步消息丢失导致整个地图错乱的情况。
43.为了减少数据同步的消耗,服务器可以将每次地块变动的修改数据(比如块上的物品被破坏,地块上的资源被采集,地块上的建筑开始建造等)和变动版本号保存到历史变动数据列表中。在同步地图数据时,根据终端设备更新到的版本号获取终端设备尚未同步的历史变动数据,将终端设备尚未同步的历史变动数据全部发送到终端设备,终端设备根据历史变动数据,更新本地的地块信息,来实现本地与服务器端的地图数据的同步。但是,历史变动数据列表中存储每次地块变动的具体修改数据,数据量较大,占用的存储空间较大。在实际应用中,同一地块可能会被多个玩家反复修改(例如,多个玩家反复争夺占据同
一地块,地块被a占据之后,又被b占据,之后又被c占据),玩家同步地块信息时只需要同步地块最新的地块信息(如地块被c占据),而不关心地块的历史变动消息,这种方案会同步不必要的历史变动数据,造成时间和流量资源的浪费。
44.其中,终端设备是指游戏应用的玩家使用的客户端设备。
45.本技术提供的游戏应用中地图数据同步的方法,旨在解决现有技术的如上技术问题。
46.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
47.实施例一
48.图1为本技术实施例一提供的游戏应用中地图数据同步的方法流程图。本实施例的方法应用于游戏应用场景,游戏应用具有地图数据,地图数据对应地图被划分成多个地块,地图数据包括每一地块的地块信息。
49.如图1所示,该方法具体步骤如下:
50.步骤s101、服务器在地块信息发生变化时,生成本次变化对应的版本号,将发生变化的地块的标识与版本号对应存储,其中本次变化对应的版本号大于本地存储的最大版本号。
51.本实施例中,维护一个单调递增的版本号,初始情况下每个地块都是没有任何变动的,每当其中一个地块发生变化时,会生成一个新的版本号,并且会记录下版本号对应的发生变化的地块的标识。对于任一地块的一次变化,服务器只需对应存储发生变化的地块的标识与版本号,减少存储数据量,节省存储空间。
52.其中,新生成的版本号大于已有的最大版本号,也就是新生成的版本号大于上一次的版本号,版本号单调递增。
53.其中,地块的标识能够唯一标识一个地块,可以是地块的id等。
54.步骤s102、终端设备向服务器发送终端设备存储的最大版本号。
55.在需要进行地图数据的同步时,终端设备向服务器发送终端设备存储的最大版本号(记为“client_version”)。
56.步骤s103、服务器根据终端设备存储的最大版本号和本地存储的版本号,确定终端设备需要更新的目标地块的标识。
57.服务器接收终端设备发送的终端设备存储的最大版本号client_version,根据client_version和本地存储的版本号,可以确定本地存储的版本号中大于client_version的版本号,大于client_version的版本号对应的地块的标识,也就是终端设备需要更新的目标地块的标识。
58.步骤s104、服务器根据目标地块的标识,将目标地块的最新地块信息同步到终端设备。
59.步骤s105、终端设备从服务器获取目标地块的最新地块信息。
60.在确定终端设备需要更新的目标地块的标识之后,服务器根据目标地块的标识,将目标地块的最新地块信息同步到终端设备。
61.示例性地,服务器可以直接将目标地块的最新地块信息发送到终端设备,或者,服
务器可以将目标地块的标识发送给终端设备,由终端设备根据目标地块的标识从服务器主动拉取目标地块的最新地块信息。
62.步骤s106、终端设备根据目标地块的最新地块信息,更新本地存储的目标地块的地块信息。
63.在获取到目标地块的最新地块信息之后,终端设备根据目标地块的最新地块信息,更新本地存储的目标地块的地块信息。
64.本技术实施例通过在地块信息发生变化时,生成本次变化对应的版本号,将发生变化的地块的标识与版本号对应存储,其中本次变化对应的版本号大于本地存储的最大版本号,对于任一地块的一次变化,服务器只需对应存储发生变化的地块的标识与版本号,减少存储数据量,节省存储空间。进一步地,在需要同步地图数据时,终端设备向服务器发送终端设备存储的最大版本号。服务器根据终端设备存储的最大版本号和本地存储的版本号,确定终端设备需要更新的目标地块的标识;根据目标地块的标识,将目标地块的最新地块信息同步到终端设备。终端设备从服务器获取目标地块的最新地块信息;根据目标地块的最新地块信息,更新本地存储的目标地块的地块信息。地图数据同步时,只需增量同步部分地块的最新地块信息,无需传输地块的历史修改数据,能够节省传输时间,提高传输效率,同时减少地图数据同步的流量消耗。
65.实施例二
66.在上述实施例一的基础上,本实施例中,用地块变动列表记录每一次的地块变化信息,地块变化信息包括本次变化对应的版本号和本次变化的地块的标识。对于任一地块的一次变化,服务器只需对应存储发生变化的地块的标识与版本号,减少存储数据量,节省存储空间。
67.这样,终端设备在与服务器同步地块信息的时候,终端设备会上传自己已经同步的最大版本号client_version,服务器根据当前存储的版本号server_version和终端设备发送的版本号client_version计算出需要同步的目标地块,并返回给终端设备,终端设备在收到相应的状态会更新终端设备的地块信息以及已经同步的最大版本号。
68.本实施例中,服务器存储的地图数据包括地图的所有地块的地块信息,每一地块信息包含地块资源相关信息以及版本号。
69.示例性地,图2为服务器存储的地图数据的示意图,图2中的第一行的数字和第一列中的字母可以用于表示地块的行列坐标,基于地块的行列坐标可以唯一确定一个地块。每个地块的地块信息中包括地块对应的版本号。图2以依次对地块3f,4g,5h,6i进行一次变动为例,将4次地块信息变化的版本号分别记录在对应地块信息中。
70.一种可选地实施方式中,服务器可以维护地块变动列表,并存储版本号记录起始值。地块变动列表中的每一列表项用于存储一次地块信息变化的地块标识,地块变动列表对应的版本号记录起始值为地块变动列表中的第一个列表项对应的版本号。
71.这样,地块变动列表中仅保存每次变动的地块的标识,能够极大地减少存储的地块修改信息的数据量,最大程度地节省存储空间。
72.在地块信息发送变化时,生成本次变化对应的版本号,将发生变化的地块的标识与版本号对应存储,具体可以采用如下方式实现:
73.在任一地块信息发生变化时,在地块变动列表末尾插入一个新的列表项,并将本
次变化的地块的标识记录入列表项,列表项对应的版本号根据列表项在地块变动列表中的位置和地块变动列表对应的版本号记录起始值确定。
74.示例性地,以图2所示的依次对地块3f,4g,5h,6i进行一次变动为例,假设版本号记录起始值为1,可以向地块变动列表依次插入值为3f,4g,5h,6i的列表项,得到如图3所示的地块变动列表。如图3所示的表格中,第一项对应的是版本号为1的地块变动对应的地块的标识,第二项对应的是版本号为2的地块变动对应的地块的标识,依次类推,可以确定每一次地块变动对应的版本号和地块的标识。
75.进一步地,若地块变动列表中的列表项的数量等于列表项数量阈值,则删除地块变动列表中的前第一数量的列表项,并更新版本号记录起始值。其中,第一数量小于列表项数量阈值。
76.这样,能够在地块变动列表中的列表项的数量达到列表项数量阈值时,对地块变动列表进行压缩,减少地块变动列表的列表项数量,避免地块变动列表过长,能够进一步节省存储空间。
77.其中,列表项数量阈值可以根据实际应用场景的需要进行设置和调整,本实施例此处不做具体限定。
78.示例性地,假设列表项数量阈值为500,第一数量为100,可以在图3中所示的地块变动列表中列表项的数量达到500时,删除前100个列表项,并将版本号记录起始值更新为101,得到如图4所示的地块变动列表,此时,地块变动列表中的第一项对应于版本号为101的地块变动对应的地块的标识。
79.当版本号记录起始值发生变化时,如图4所示的例子,这个时候版本号记录起始值为101,表示101以前的地块变动信息已经被清理掉了,这时如果当前终端设备的版本号client_version小于版本号记录起始值101时,终端设备可以从服务器同步完整地图数据,这样即使中间删除了地块变动列表中的部分较早的地块变动信息,也不影响地图数据同步的正确性。
80.本实施例中,区别于传统方案的存储每一次地块信息变动的具体变化信息,本实施例中只保存了一次地块变动对应的版本号和变动地块的标识(地块id),无需存储变动的具体信息,而地块的具体信息会存储在地图数据中,空间占用极低,可以保存非常多次地块变动的信息。此外通过地块变动列表压缩的机制,在地块变动列表达到一定长度时删除部分较早的地块变动信息,来避免地块变动列表的过度的空间增长。
81.实施例三
82.图5为本技术实施例三提供的游戏应用中地图数据同步的方法流程图。在上述实施例二的基础上,本实施例中,对于终端设备与服务器直接同步地块信息的具体实现流程进行示例性地说明。本实施例中第一终端设备可以是任一终端设备,第二终端设备是指除第一终端设备之外的在线终端设备。
83.本实施例的一种可选实施方式中,当第一终端设备在线时,玩家可通过在第一终端设备上对地块进行变动操作。响应于对任一地块的变动操作,第一终端设备向服务器发送地块信息变化请求,地块信息变化请求包括:待修改的第一地块的标识和变化内容信息。
84.服务器接收第一终端设备发送的地块信息修改请求,地块信息修改请求包含第一地块的标识和修改内容信息。服务器根据游戏应用的地块变动规则,判断地块信息修改请
求是否符合地块变动规则,如果符合,则确认地块信息修改请求。
85.示例性地,服务器可以向第一终端设备发送确认修改信息。响应于服务器对地块信息变化请求的确认修改信息,终端设备根据变化内容信息修改本地存储的第一地块的地块信息。
86.在对地块信息修改请求确认后,服务器根据本地存储的最大版本号,生成本次变化对应的版本号,将发生变化的地块的标识与版本号对应存储;并根据修改内容信息修改和本次变化对应的版本号,更新本地存储的第一地块的地块信息。
87.进一步地,根据修改内容信息修改和本次变化对应的版本号,更新本地存储的第一地块的地块信息之后,服务器向除第一终端设备外的第二终端设备发送第一地块的地块变动同步信息。
88.其中,地块变动同步信息包括:本次变化对应的版本号,以及第一地块的标识和修改内容信息;或者,地块变动同步信息包括:本次变化对应的版本号,和修改后的第一地块的地块信息。
89.第二终端设备接收服务器发送的第一地块的地块变动同步信息。若本次变化对应的版本号是本地存储的最大版本号的下一个版本号,则根据地块变动同步信息,更新本地存储的第一地块的地块信息。
90.可选地,服务器可以将本次变化对应的版本号,以及第一地块的标识和修改内容信息同步到第二终端设备,第二终端设备根据第一地块的标识和修改内容信息,更新本地存储的第一地块的地块信息,并更新本地存储的最大版本号。
91.可选地,服务器可以将本次变化对应的版本号,和修改后的第一地块的地块信息同步到第二终端设备,第二终端设备根据修改后的第一地块的地块信息,更新本地存储的第一地块的地块信息,并更新本地存储的最大版本号。
92.示例性地,服务器可以向第二终端设备广播地块变动同步信息。
93.进一步地,若本次变化对应的版本号不是本地存储的最大版本号的下一个版本号,第二终端设备可以确定在本地存储的最大版本号与接收到的最新的版本号之间,缺少了至少一个版本号,也即第二终端设备丢失了至少一个版本号对应的地块变动信息。第二终端设备需要向服务器发送包含本地存储的最大版本号的地块信息同步请求。
94.当然,在其他终端设备对第二地块进行变动操作后,第一终端设备也可以接收服务器发送的第二地块的地块变动同步信息,地块变动同步信息包括:本次变化对应的版本号,以及第二地块的标识和修改内容信息;或者,地块变动同步信息包括:本次变化对应的版本号,和修改后的第二地块的地块信息。
95.若本次变化对应的版本号是本地存储的最大版本号的下一个版本号,则第一终端设备根据地块变动同步信息,更新本地存储的第二地块的地块信息。若本次变化对应的版本号不是本地存储的最大版本号的下一个版本号,第一终端设备可以确定在本地存储的最大版本号与接收到的最新的版本号之间,缺少了至少一个版本号,也即第一终端设备丢失了至少一个版本号对应的地块变动信息。第一终端设备需要向服务器发送包含本地存储的最大版本号的地块信息同步请求。
96.通过上述方式,在进行地图数据同步时,对于已经同步到最大版本号的服务器来说,后续会通过接收地块变动同步信息,根据地块变动同步信息及实地更新地块信息。对于
已丢失部分地块变动同步信息的玩家,根据本地存储的最大版本号和服务器存储的最大版本号可以确定服务器缺少的版本号及对应的地块标识,即可得到服务器需要同步的哪些地块的地块信息,并从大地图数据里根据地块标识得到最新的地块信息返回给服务器。
97.在实际应用中的一种极端情况下,可能丢失了部分丢失了,又没有后续的新的消息,比如服务器丢失了client_version 1的消息,此后地块没有任何的变动,这种情况下服务器无法意识到地块的同步信息缺失了,所以需要引入额外的地块同步信息的自愈逻辑进行处理。
98.一种可选地实施方式中,终端设备在掉线并重新连接服务器之后,可以主动向服务器发送地块信息同步请求,该地块信息同步请求包含终端设备本地存储的最大版本号。服务器接收终端设备的地块信息同步请求,并可以获取到终端设备存储的最大版本号。
99.示例性地,以图2所示的4次地块变动为例,服务器在首次登录的时候由于没有最大版本号,会全量拉取所有地块的地块信息。假设服务器在接收了版本号为1,2的2次变动的地块信息之后离线,那么在重新连接服务器之后,可以将服务器发送已存储的最大版本号2。服务器根据本地存储的最大版本号4,可以计算确定服务器缺少了版本号3和4,并确定服务器需要同步的地块为版本号3和4对应的地块,即5h,6i。
100.另一种可选地实施方式中,网络游戏本身需要对终端设备是否在线进行在线测试。在线的终端设备需要每间隔一段时间向服务器发送一次在线测试消息,用于告知服务器终端设备仍然在线。可选地,可以将终端设备存储的最大版本号携带在在线测试消息中发送给服务器,服务器接收终端设备的在线测试消息,并获取终端设备存储的最大版本号。
101.在进行在线测试的同时,还可以验证终端设备存储的最大版本号(用client_version表示)与服务器存储的最大版本号(用server_version表示)是否一致,在确定不一致时,进行地块信息的增量同步。
102.另一种可选地实施方式中,当第一终端设备在线时,玩家通过在第一终端设备上对第一地块进行变动操作时,响应于对第一地块的变动操作,第一终端设备向服务器发送地块信息变化请求,地块信息变化请求包括:待修改的第一地块的标识,变化内容信息,以及第一地块对应的最大版本号。
103.服务器接收地块信息变化请求之后,若地块信息修改请求还包括终端设备存储的第一地块对应的最大版本号,且终端设备存储的第一地块对应的最大版本号与本地存储第一地块对应的最大版本号不一致,则说明第一终端设备上存储第一地块的地块信息与服务器不一致,此时不允许执行第一终端设备所请求的地块信息的修改,服务器向第一终端设备同步第一地块的地块信息。
104.终端设备可以根据接收到的第一地块的地块信息,更新本地存储的第一地块的地块信息,地块信息包括版本号。
105.在更新完第一地块的地块信息之后,如果需要,玩家可以在第一终端设备上重新对第一地块进行变动操作。
106.示例性地,在一些不可靠的网络的情况下,地块变动同步信息可能会存在丢失的情况。以图2所示的4次地块变动为例,服务器的版本号同步到2,版本号为3的地块变动同步信息丢失了。因此当服务器接收到版本号为4的地块变动同步信息时,能够发现自己当前缺失了版本号为3的地块变动同步信息,这时服务器可以向主动请求拉取版本号3和4对应地
块的最新地块信息。
107.下面结合图5,对地图数据同步的方法具体实现方式进行示例性地说明,如图5所示,该方法具体步骤如下:
108.步骤s201、终端设备向服务器发送终端设备存储的最大版本号。
109.本实施的一种可选地实施方式中,服务器在获取到终端设备存储的最大版本号之后,通过步骤s202或s203,根据终端设备存储的最大版本号和本地存储的版本号,确定终端设备需要更新的目标地块的标识。
110.本实施的另一种可选地实施方式中,服务器在获取到终端设备存储的最大版本号之后,还可以根据终端设备存储的最大版本号和本地存储的版本号,确定终端设备未同步的地块变动的版本号,也即是大于终端设备存储的最大版本号的版本号,将终端设备未同步的地块变动的版本号发送给终端设备,由终端设备根据未同步的地块变动的版本号,从服务器拉取这些版本号对应地块的最新地块信息。
111.步骤s202、服务器接收终端设备存储的最大版本号。
112.步骤s203、若终端设备存储的最大版本号大于版本号记录起始值,并且本地存储的最大版本号与终端设备存储的最大版本号的差值小于或等于差值阈值,则服务器根据终端设备存储的最大版本号,确定在终端设备存储的最大版本号之后的每一个本地存储的版本号对应的地块的标识,得到终端设备需要更新的目标地块的标识。
113.若终端设备存储的最大版本号大于版本号记录起始值,并且本地存储的最大版本号与终端设备存储的最大版本号的差值小于或等于差值阈值,则说明终端设备遗漏了少数几次变动的地块信息的同步。
114.服务器根据终端设备存储的最大版本号和存储的地块变动表,可以确定在终端设备存储的最大版本号之后的版本号及其对应的地块的标识,得到终端设备需要更新的目标地块的标识。
115.示例性地,以图2所示的4次地块变动为例,服务器在首次登录的时候由于没有最大版本号,会全量拉取所有地块的地块信息。假设服务器在接收了版本号为1,2的2次变动的地块信息之后离线,那么在重新连接服务器之后,可以将服务器发送已存储的最大版本号2。服务器根据本地存储的最大版本号4,可以计算确定服务器缺少了版本号3和4,并确定服务器需要同步的地块为版本号3和4对应的地块,即5h,6i。
116.步骤s204、若终端设备存储的最大版本号小于版本号记录起始值,或者本地存储的最大版本号与终端设备存储的最大版本号的差值大于差值阈值,则服务器将所有地块作为终端设备需要更新的目标地块,得到目标地块的标识。
117.若终端设备存储的最大版本号小于版本号记录起始值,或者本地存储的最大版本号与终端设备存储的最大版本号的差值大于差值阈值,则说明终端设备遗漏了很多几次变动的地块信息的同步,可以重新同步整个地图数据。
118.服务器将所有地块作为终端设备需要更新的目标地块,得到目标地块的标识。
119.步骤s205、服务器根据目标地块的标识,将目标地块的最新地块信息发送到终端设备。
120.在确定终端设备需要更新的目标地块的标识,服务器根据目标地块的标识,获取目标地块的最新地块信息,并将目标地块的最新地块信息发送给终端设备。地块信息中包
含对应地块的最近一次变动的版本号,也即地块对应的最大版本号。
121.步骤s206、终端设备接收服务器发送的目标地块的最新地块信息。
122.步骤s207、终端设备根据目标地块的最新地块信息,更新本地存储的目标地块的地块信息。
123.在接收到服务器发送的目标地块的最新地块信息之后,更新本地存储的目标地块的地块信息,并更新本地存储的最大版本号。
124.本技术实施例中,通过一个基于版本号的地块变动列表,实现了地块变动的增量地块信息同步方案,通过比对服务器存储的最大版本号和服务器本地存储的最大版本号实现地块变动信息的增量拉取,避免了断线重连时由于无法确定是否有没接收到的消息而完整拉取。此外还提供了一种自愈的机制,在收到错乱的消息或者会自动校验版本号的差异从而让服务器可以自行发现需要进行地块信息同步,进而实现服务器与服务器的地图数据的同步。
125.实施例四
126.图6为本技术实施例四提供的游戏应用中地图数据同步的装置的结构示意图。本技术实施例提供的游戏应用中地图数据同步的装置,可以执行游戏应用中地图数据同步的方法实施例提供的处理流程。该游戏应用中地图数据同步的装置应用于服务器,服务器存储有地图数据,地图数据对应地图被划分成多个地块,地图数据包括每一地块的地块信息。
127.如图6所示,该游戏应用中地图数据同步的装置30包括:地块变动信息存储模块301,同步需求确定模块302和数据同步模块303。
128.具体地,地块变动信息存储模块301,用于在地块信息发生变化时,生成本次变化对应的版本号,将发生变化的地块的标识与版本号对应存储,其中本次变化对应的版本号大于本地存储的最大版本号。
129.同步需求确定模块302,用于根据终端设备存储的最大版本号和本地存储的版本号,确定终端设备需要更新的目标地块的标识。
130.数据同步模块303,用于根据目标地块的标识,将目标地块的最新地块信息同步到终端设备。
131.可选地,地块变动信息存储模块具体用于:
132.在任一地块信息发生变化时,在地块变动列表末尾插入一个新的列表项,并将本次变化的地块的标识记录入列表项,列表项对应的版本号根据列表项在地块变动列表中的位置和地块变动列表对应的版本号记录起始值确定。
133.其中,地块变动列表对应的版本号记录起始值为地块变动列表中的第一个列表项对应的版本号。
134.可选地,地块变动信息存储模块还用于:
135.若地块变动列表中的列表项的数量等于列表项数量阈值,则删除地块变动列表中的前第一数量的列表项,并更新版本号记录起始值。
136.其中,第一数量小于列表项数量阈值。
137.可选地,同步需求确定模块具体用于:
138.若终端设备存储的最大版本号大于版本号记录起始值,并且本地存储的最大版本号与终端设备存储的最大版本号的差值小于或等于差值阈值,则根据终端设备存储的最大
版本号,确定在终端设备存储的最大版本号之后的每一个本地存储的版本号对应的地块的标识,得到终端设备需要更新的目标地块的标识。
139.可选地,同步需求确定模块还用于:
140.若终端设备存储的最大版本号小于版本号记录起始值,或者本地存储的最大版本号与终端设备存储的最大版本号的差值大于差值阈值,则将所有地块作为终端设备需要更新的目标地块,得到目标地块的标识。
141.可选地,同步需求确定模块具体用于:
142.接收终端设备的地块信息同步请求,地块信息同步请求包括终端设备存储的最大版本号;
143.或者,
144.接收终端设备的在线测试消息,在线测试消息包括终端设备存储的最大版本号。
145.可选地,地块变动信息存储模块还用于
146.接收第一终端设备发送的地块信息修改请求,地块信息修改请求包含第一地块的标识和修改内容信息;
147.在对地块信息修改请求确认后,根据本地存储的最大版本号,生成本次变化对应的版本号,将发生变化的地块的标识与版本号对应存储;
148.根据修改内容信息修改和本次变化对应的版本号,更新本地存储的第一地块的地块信息。
149.可选地,数据同步模块还用于:
150.根据修改内容信息修改和本次变化对应的版本号,更新本地存储的第一地块的地块信息之后,向除第一终端设备外的第二终端设备发送第一地块的地块变动同步信息,地块变动同步信息包括:本次变化对应的版本号,以及第一地块的标识和修改内容信息;或者,地块变动同步信息包括:本次变化对应的版本号,和修改后的第一地块的地块信息。
151.可选地,数据同步模块还用于:
152.接收第一终端设备发送的地块信息修改请求之后,若地块信息修改请求还包括终端设备存储的第一地块对应的最大版本号,且终端设备存储的第一地块对应的最大版本号,与本地存储第一地块对应的最大版本号不一致,则向终端设备同步第一地块的地块信息。
153.本技术实施例提供的装置可以具体用于执行上述任一方法实施例中终端设备所执行的方法流程,具体功能和所能达到的技术效果此处不再赘述。
154.实施例五
155.图7为本技术实施例五提供的游戏应用中地图数据同步的装置的结构示意图。本技术实施例提供的游戏应用中地图数据同步的装置,可以执行游戏应用中地图数据同步的方法实施例提供的处理流程。该游戏应用中地图数据同步的装置应用于作为客户端的终端设备。
156.如图7所示,该游戏应用中地图数据同步的装置40包括:发送模块401和数据同步模块402。
157.具体地,发送模块401,用于向服务器发送终端设备存储的最大版本号,以使服务器根据终端设备存储的最大版本号和本地存储的最大版本号,确定终端设备需要更新的地
块的标识,并将终端设备需要更新的目标地块的最新地块信息同步到终端设备,其中服务器存储有每次地块信息变化的版本号及发送变化的地块的标识,且每一次变化对应的版本号大于上一次变化对应的版本号。
158.数据同步模块402,用于从服务器获取目标地块的最新地块信息;根据目标地块的最新地块信息,更新本地存储的目标地块的地块信息。
159.可选地,发送模块还用于:
160.在掉线并重新连接服务器后,向服务器发送包含本地存储的最大版本号的地块信息同步请求;
161.或者,
162.向服务器发送在线测试消息,在线测试消息包括终端设备存储的最大版本号。
163.可选地,发送模块还用于:
164.响应于对任一地块的变动操作,向服务器发送地块信息变化请求,地块信息变化请求包括:待修改的第一地块的标识和变化内容信息。
165.数据同步模块还用于:
166.响应于服务器对地块信息变化请求的确认修改信息,根据变化内容信息修改本地存储的第一地块的地块信息。
167.可选地,数据同步模块还用于:
168.接收服务器发送的第二地块的地块变动同步信息,地块变动同步信息包括:本次变化对应的版本号,以及第二地块的标识和修改内容信息;或者,地块变动同步信息包括:本次变化对应的版本号,和修改后的第二地块的地块信息;若本次变化对应的版本号是本地存储的最大版本号的下一个版本号,则根据地块变动同步信息,更新本地存储的第二地块的地块信息。
169.可选地,数据同步模块还用于:
170.接收服务器发送的第二地块的地块变动同步信息之后,若本次变化对应的版本号不是本地存储的最大版本号的下一个版本号,向服务器发送包含本地存储的最大版本号的地块信息同步请求。
171.可选地,地块信息变化请求包括:第一地块对应的最大版本号。
172.数据同步模块还用于:
173.根据接收到的第一地块的地块信息,更新本地存储的第一地块的地块信息,地块信息包括版本号。
174.本技术实施例提供的装置可以具体用于执行上述任一方法实施例中服务器所执行的方法流程,具体功能和所能达到的技术效果此处不再赘述。
175.实施例六
176.图8为本技术实施例六提供的服务器的结构示意图。如图8所示,该服务器100包括:处理器1001,存储器1002,以及存储在存储器1002上并可在处理器1001上运行的计算机程序。
177.其中,处理器1001运行计算机程序时实现上述任一方法实施例中服务器所执行的方法流程,具体功能和所能达到的技术效果此处不再赘述。
178.实施例七
179.图9为本技术实施例七提供的终端设备的结构示意图。如图9所示,该终端设备110包括:处理器1101,存储器1102,以及存储在存储器1102上并可在处理器1101上运行的计算机程序。
180.其中,处理器1101运行计算机程序时实现上述任一方法实施例中服务器所执行的方法流程,具体功能和所能达到的技术效果此处不再赘述。
181.本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现上述任一方法实施例中服务器或者终端设备所执行的方法流程。
182.本技术实施例还提供了一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一方法实施例中服务器或者终端设备所执行的方法流程。
183.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
184.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
185.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
186.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施例方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
187.本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
188.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
189.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献