游戏数据处理方法及装置与流程

文档序号:17158550发布日期:2019-03-20 00:19阅读:281来源:国知局
游戏数据处理方法及装置与流程

本发明实施例涉及计算机技术,尤其涉及一种游戏数据处理方法及装置。



背景技术:

网络游戏通常包括游戏客户端与游戏服务器,在游戏进行的过程中,针对玩家的操作或玩家的状态等,游戏客户端与游戏服务器之间需要进行游戏数据的同步。

现有技术在对游戏数据进行同步时,通常是游戏客户端向游戏服务器发送计算请求,其中计算请求携带有算法,其次游戏服务器根据算法得到游戏数据计算结果,并将游戏数据计算结果发送至各个游戏客户端从而实现游戏数据的同步。

然而,现有技术的方案因为网络延迟会造成数据同步也存在一定的延迟,从而导致游戏客户端出现卡顿,影响玩家的游戏体验。



技术实现要素:

本发明实施例提供一种游戏数据处理方法及装置,以克服因网络延迟导致的游戏客户端卡顿。

第一方面,本发明实施例提供一种游戏数据处理方法,包括:

通过游戏客户端和游戏服务器分别确认与所述预设游戏场景对应的算法;

所述游戏客户端和所述游戏服务器分别从本地收集所述算法相关的输入数据;

所述游戏客户端和所述游戏服务器分别根据所述输入数据和对应的算法进行游戏数据计算。

在一种可能的设计中,所述游戏客户端和游戏服务器分别确认与所述预设游戏场景对应的算法之前,还包括:

所述游戏客户端检测到所述预设游戏场景被加载时,向所述游戏服务器发送游戏数据计算请求。

在一种可能的设计中,所述游戏客户端检测到所述预设游戏场景被加载时,向所述游戏服务器发送游戏数据计算请求之后,还包括:

所述游戏服务器向至少一所述游戏客户端发送所述游戏数据计算请求。

在一种可能的设计中,所述游戏客户端和游戏服务器分别确认与所述预设游戏场景对应的算法之前,还包括:

所述游戏服务器在所述预设游戏场景被加载时,向所述游戏客户端发送游戏数据计算请求。

在一种可能的设计中,所述游戏服务器在所述预设游戏场景发生时,向所述游戏客户端发送游戏数据计算请求,包括:

所述游戏服务器在所述预设游戏场景被加载时,向至少一个所述游戏客户端发送游戏数据计算请求。

在一种可能的设计中,所述游戏客户端和游戏服务器分别确认与所述预设游戏场景对应的算法之后,还包括:

所述游戏客户端和游戏服务器分别确认所述算法中是否包含随机成分,其中随机成分用于指示得到随机数;

若所述算法中包含随机数,则所述游戏客户端和游戏服务器分别确认所需随机数的个数n;

所述游戏客户端和游戏服务器采用具有相同随机种子的相同随机数生成器生成n个随机数;

相应的,所述游戏客户端和所述游戏服务器分别根据所述输入数据和对应的算法进行游戏数据计算,包括:

所述游戏客户端和所述游戏服务器分别根据所述输入数据、所生成的n个随机数以及对应的算法进行游戏数据计算。

在一种可能的设计中,所述游戏客户端和游戏服务器采用相同的随机数生成器生成n个随机数,包括:

所述游戏客户端和游戏服务器采用相同的随机数生成器按照相同的顺序依次生成n个随机数。

在一种可能的设计中,所述游戏客户端和游戏服务器分别确认与所述预设游戏场景对应的算法之前,还包括:

所述游戏客户端登录所述游戏服务器;

所述游戏服务器生成所述随机种子,并将所述随机种子发送给所述游戏客户端;

所述游戏客户端与所述游戏服务器采用所述随机种子构造所述随机数生成器。

在一种可能的设计中,所述游戏客户端和所述游戏服务器分别根据所述输入数据和对应的算法进行游戏数据计算之后,还包括:

所述游戏客户端与所述游戏服务器周期或者非周期地交互游戏数据计算结果。

在一种可能的设计中,所述游戏客户端与所述游戏服务器周期或者非周期地交互游戏数据计算结果之后,还包括:

所述游戏服务器将所述游戏服务器计算得到的游戏数据计算结果与所述游戏客户端发送的游戏数据计算结果进行一致性校验;

若不一致,则所述游戏服务器将所述游戏服务器计算得到的游戏数据计算结果同步给所述游戏客户端,以便所述游戏客户端进行游戏数据计算结果的纠正。

在一种可能的设计中,所述游戏客户端和所述游戏服务器分别根据所述输入数据和对应的算法进行游戏数据计算之后,还包括:

所述游戏客户端与所述游戏服务器周期或者非周期地交互游戏数据计算结果。

在一种可能的设计中,所述游戏客户端与所述游戏服务器周期或者非周期地交互游戏数据计算结果之后,还包括:

所述游戏服务器将所述游戏服务器计算得到的游戏数据计算结果与所述游戏客户端发送的游戏数据计算结果进行一致性校验;

若不一致,则所述游戏服务器向所述游戏客户端重新同步随机种子,以便所述游戏客户端根据重新同步的随机种子重新构造随机数发生器。

第二方面,本发明实施例提供一种游戏数据处理装置主题,包括:

确认模块,用于通过游戏客户端和游戏服务器分别确认与所述预设游戏场景对应的算法;

收集模块,用于所述游戏客户端和所述游戏服务器分别从本地收集所述算法相关的所需的输入数据;

计算模块,用于所述游戏客户端和所述游戏服务器分别根据所述输入数据和对应的算法进行游戏数据计算。

在一种可能的设计中,还包括:发送模块;

所述发送模块,用于所述游戏客户端和游戏服务器分别确认与所述游戏场景对应的算法之前,所述游戏客户端检测到所述预设游戏场景被加载时,向所述游戏服务器发送游戏数据计算请求。

在一种可能的设计中,所述发送模块还用于:

所述游戏客户端检测到所述预设游戏场景被加载时,向所述游戏服务器发送游戏数据计算请求之后,所述游戏服务器向至少一所述游戏客户端发送所述游戏数据计算请求。

在一种可能的设计中,所述发送模块还用于:

所述游戏客户端和游戏服务器分别确认与所述预设游戏场景对应的算法之前,所述游戏服务器在所述预设游戏场景被加载时,向所述游戏客户端发送游戏数据计算请求。

在一种可能的设计中,所述发送模块具体用于:

所述游戏服务器在所述预设游戏场景被加载时,向至少一个所述游戏客户端发送游戏数据计算请求。

在一种可能的设计中,所述确认模块还用于:

所述游戏客户端和游戏服务器分别确认与所述预设游戏场景对应的算法之后,所述游戏客户端和游戏服务器分别确认所述算法中是否包含随机成分,其中随机成分用于指示得到随机数;

若所述算法中包含随机数,则所述游戏客户端和游戏服务器分别确认所需随机数的个数n;

所述游戏客户端和游戏服务器采用具有相同随机种子的相同随机数生成器生成n个随机数;

相应的,所述计算模块具体用于:

所述游戏客户端和所述游戏服务器分别根据所述输入数据、所生成的n个随机数以及对应的算法进行游戏数据计算。

在一种可能的设计中,所述确认模块具体用于:

所述游戏客户端和游戏服务器采用相同的随机数生成器按照相同的顺序依次生成n个随机数。

在一种可能的设计中,所述确认模块还用于:

所述游戏客户端和游戏服务器分别确认与所述预设游戏场景对应的算法之前,所述游戏客户端登录所述游戏服务器;

所述游戏服务器生成所述随机种子,并将所述随机种子发送给所述游戏客户端;

所述游戏客户端与所述游戏服务器采用所述随机种子构造所述随机数生成器。

在一种可能的设计中,所述计算模块还用于:

所述游戏客户端和所述游戏服务器分别根据所述输入数据和对应的算法进行游戏数据计算之后,所述游戏客户端与所述游戏服务器周期或者非周期地交互游戏数据计算结果。

在一种可能的设计中,所述计算模块还用于:

所述游戏客户端与所述游戏服务器周期或者非周期地交互游戏数据计算结果之后,所述游戏服务器将所述游戏服务器计算得到的游戏数据计算结果与所述游戏客户端发送的游戏数据计算结果进行一致性校验;

若不一致,则所述游戏服务器将所述游戏服务器计算得到的游戏数据计算结果同步给所述游戏客户端,以便所述游戏客户端进行游戏数据计算结果的纠正。

在一种可能的设计中,所述计算模块还用于:

所述游戏客户端和所述游戏服务器分别根据所述输入数据和对应的算法进行游戏数据计算之后,所述游戏客户端与所述游戏服务器周期或者非周期地交互游戏数据计算结果。

在一种可能的设计中,所述计算模块还用于:

所述游戏客户端与所述游戏服务器周期或者非周期地交互游戏数据计算结果之后,所述游戏服务器将所述游戏服务器计算得到的游戏数据计算结果与所述游戏客户端发送的游戏数据计算结果进行一致性校验;

若不一致,则所述游戏服务器向所述游戏客户端重新同步随机种子,以便所述游戏客户端根据重新同步的随机种子重新构造随机数发生器。

第三方面,本发明实施例提供一种游戏客户端,包括:

存储器,用于存储程序;

处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。

第四方面,本发明实施例提供一种游戏服务器,包括:

存储器,用于存储程序;

处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。

第五方面,本发明实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。

本发明实施例提供一种游戏数据处理方法及装置,该方法包括:通过游戏客户端和游戏服务器分别确认与预设游戏场景对应的算法。游戏客户端和游戏服务器分别从本地收集算法相关的输入数据。游戏客户端和游戏服务器分别根据输入数据和对应的算法进行游戏数据计算。通过游戏客户端以及游戏服务器根据相同的算法以及同步的游戏数据进行计算,得到相同的游戏数据,从而避免了因为网络延迟造成的游戏客户端卡顿,提升玩家的游戏体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的游戏数据处理方法的系统示意图;

图2为本发明实施例提供的游戏数据处理方法的流程图;

图3a为本发明实施例提供的游戏数据处理方法的信令流程图一;

图3b为本发明实施例提供的游戏数据处理方法的信令流程图二;

图3c为本发明实施例提供的游戏数据处理方法的信令流程图二;

图4为本发明实施例提供的游戏数据处理装置的结构示意图一;

图5为本发明实施例提供的游戏数据处理装置的结构示意图二;

图6为本发明实施例提供的游戏客户端的硬件结构示意图;

图7为本发明实施例提供的游戏服务器的硬件结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的游戏数据处理方法的系统示意图。如图1所示,包括:游戏服务器101以及游戏客户端102。

其中游戏客户端102与游戏服务器101进行交互,其中交互的方式例如可以通过有线网络,该有线网络例如可以包括同轴电缆、双绞线和光纤等,其中交互的方式还例如可以是无线网络,该无线网络可以是2g网络、3g网络、4g网络或者5g网络、无线保真(wirelessfidelity,简称wifi)网络等。本发明实施例对交互的具体类型或者具体形式并不做限定,只要其能够实现服务器和终端交互的功能即可。

可选地,游戏客户端102通常运行在玩家持有的终端设备上,其中终端设备例如可以是计算机设备、平板电脑或移动电话(或称为“蜂窝”电话)等,终端设备还可以是便携式、袖珍式、手持式、计算机内置的移动装置或设备,此处不做特别限制。

进一步地,游戏客户端102例如可以用于实现游戏的逻辑功能、画面展示或者接收玩家的触发的操作指令等,游戏客户端102还例如可以用于根据待算法计算游戏数据等,本发明实施例对游戏客户端102的具体实现方式不做限制,本领域技术人员可以理解,游戏客户端102的具体实现方式可以根据需要进行设定。图1中示例性的给出了4个游戏客户端102,本发明实施例对游戏客户端102的具体数量不做特别限制。

其中,游戏服务器101可以接收游戏客户端102发送的游戏数据或计算请求等,并进行相关的存储和处理等操作,还可以接收游戏客户端102发送的指令,根据逻辑判断进行相应地处理。游戏服务器101还可以向游戏客户端102发送游戏数据或者发送指令,游戏客户端102进行相关的数据存储、数据处理及指令执行等操作,本发明实施例对游戏服务器101的实现方式不做特别限制。

具体的,在游戏进行的过程中,游戏服务器101接收游戏客户端102发送的游戏数据并对游戏数据进行相应的处理,同时,游戏服务器101也会向各个游戏客户端102发送游戏数据,从而保证游戏服务器101以及游戏客户端102之间的游戏数据同步,基于现有技术在进行游戏同步的过程中因为网络延迟造成的客户端卡顿等问题,本发明实施例提供了一种游戏数据处理方法,下面结合具体的实施例进行详细介绍。

首先结合图2对本发明实施例提供的游戏数据处理方法进行介绍,图2为本发明实施例提供的游戏数据处理方法的流程图。如图2所示,该方法包括:

s201、通过游戏客户端和游戏服务器分别确认与预设游戏场景对应的算法。

具体的,在游戏进行的过程中,针对不同的游戏场景有多个算法,其中预设游戏场景例如可以为游戏中的的各个关卡,还例如可以为游戏中触发的不同操作等,在不同的预设游戏场景下,对应有多个不同的算法,在某个游戏场景下对应的算法在制作游戏时进行预设,本发明实施例对预设游戏场景不做特别限制。

进一步地,其中对应的算法用于根据输入数据进行计算得到新的游戏数据,输入数据为已有的游戏数据,例如玩家在游戏客户端触发普通攻击的游戏操作,游戏客户端根据该游戏操作对应的算法计算此次普通攻击的伤害值,从而得到新的游戏数据,还例如在玩家操作的角色受到伤害时,游戏服务器根据角色受到的伤害值以及对应的算法计算角色的血量等,本发明实施例对算法的具体实现方式不做限制,本领域技术人员可以理解,算法可以根据实际需要进行设定。

在本实施例中,在游戏客户端和游戏服务器中均存储有各游戏场景对应的算法,在根据游戏场景触发游戏数据的计算时,游戏客户端以及游戏服务器分别根据本地存储的算法,确定与游戏场景对应的当前需要的算法。

s202、游戏客户端和游戏服务器分别从本地收集算法相关的输入数据。

在本发明实施例中,游戏客户端和游戏服务器之间不断进行游戏数据的同步,从而保证游戏客户端和游戏服务器之间游戏数据的一致性,因此在游戏客户端中存储有游戏数据,在游戏服务器中同样存储有相同的游戏数据。

进一步地,游戏客户端根据算法从本地收集所需的输入数据,同样地,游戏服务器根据算法从游戏服务器中收集所需的输入数据,因为游戏客户端和游戏服务器之间的游戏数据是同步的,因此游戏客户端和游戏服务器获取到的输入数据是相同的。

s203、游戏客户端和游戏服务器分别根据输入数据和对应的算法进行游戏数据计算。

具体的,游戏客户端根据收集的输入数据以及对应的算法进行计算,得到对应的游戏数据,游戏服务器同样根据收集的输入数据和对应的算法进行计算得到游戏数据,因为算法是相同的,并且输入数据也是相同的,因此得到的游戏数据也是相同的。

与现有技术不同的是,现有技术中游戏客户端需要进行游戏数据的计算时,需要将算法以及输入数据发送至游戏服务器,游戏服务器计算得到游戏数据之后再发送给游戏客户端,期间的网络延迟会造成游戏客户端卡顿,然而本发明实施例中游戏客户端在计算游戏数据时,是从本地收集输入数据从而进行计算,计算得到的游戏数据可以直接展现在游戏客户端的界面上,从而避免了网络延迟带来的影响。

本发明实施例提供的游戏数据处理方法,包括:通过游戏客户端和游戏服务器分别确认与预设游戏场景对应的算法。游戏客户端和游戏服务器分别从本地收集算法相关的输入数据。游戏客户端和游戏服务器分别根据输入数据和对应的算法进行游戏数据计算。通过游戏客户端以及游戏服务器根据相同的算法以及同步的游戏数据进行计算,得到相同的游戏数据,从而避免了因为网络延迟造成的游戏客户端卡顿,提升玩家的游戏体验。

在上述实施例的基础上,算法中还可能包含随机成分,因此在确定算法之前首先需要对包含随机成分的情况进行考虑,下面结合图3a-3c对本发明实施例提供的游戏数据处理方法进行进一步地详细介绍。

图3a为本发明实施例提供的游戏数据处理方法的信令流程图一,图3b为本发明实施例提供的游戏数据处理方法的信令流程图二,图3c为本发明实施例提供的游戏数据处理方法的信令流程图二。

如图3a所示,该方法包括:

s301、游戏客户端登录游戏服务器。

具体的,游戏服务器中存储有玩家的账号以及密码,每个玩家的账号下包含有各自的游戏数据,例如可以为玩家的等级,还例如可以为玩家的装备等,游戏客户端获取玩家输入的账号以及密码,并将账号和密码发送至游戏服务器进行验证。

进一步地,游戏服务器根据获取的账号和密码进行登录验证,若游戏服务器确定账号与密码均正确,则允许游戏客户端登录,登录成功后游戏客户端进入账号对应的玩家的游戏界面。

s302、游戏服务器生成随机种子。

s303、游戏服务器将随机种子发送给游戏客户端。

在本实施例中,算法中可能包含随机成分,其中随机成分是指算法中不确定的成分,在本实施例中随机成分用于指示得到随机数,随机成分例如可以为一个随机函数,还例如可以为多个随机函数的组合等,本发明实施例对此不做限制,下面以公式一为例对随机成分进行介绍:

具体的,公式一中f(x)表示输入数据,f′(x)表示计算得到的游戏数据,random(100)表示范围在[1,100]间的随机数,其中1至100中各个数字出现的概率相等,因此公式一表达的含义为游戏数据有90%的概率为输入数据,而其余10%的概率为输入数据的2倍。

具体的,上述公式一对应的预设游戏场景例如可以为,玩家通过游戏客户端触发普通攻击操作,玩家普通攻击操作对应的伤害值即为f(x),该玩家的普通攻击操作所产生的实际伤害值即为f′(x),则玩家普通攻击操作产生的实际伤害值有90%的概率为普通攻击操作对应的伤害值,有另外10%的概率为普通攻击操作对应的伤害值的2倍,在游戏中判定为暴击伤害,以上的公式一以及公式一对应的预设游戏场景仅为示例性的介绍,并非唯一的实现方式,本发明实施例对算法以及对应的预设游戏场景不做特别限制。

在本发明实施例中,为了保证游戏客户端以及游戏服务器对包含有随机数的算法进行计算得到相同的结果,设置有随机种子,其中随机种子是指用于产生随机数的数字,具体的,在计算机中的随机数均为伪随机数,其中伪随机数是使用确定性的算法计算出来的看上去像是随机的一系列数字,因此伪随机数是有规律的一系列数字,使用相同的随机种子总是能产生完全相同的伪随机数的数列。

具体的,游戏服务器生成随机种子,并将随机种子发送给游戏客户端,从而完成了在游戏服务器和游戏客户端之间随机种子的同步。

s304、游戏客户端与游戏服务器采用随机种子构造随机数生成器。

具体的,随机数发生器用于产生伪随机数序列,其中随机数发生器例如可以为wichmann–hill随机数发生器,还例如可以为线性同余(linearcongruentialgenerator,lcg)随机数发生器等,本发明实施例对随机数发生器的选择不做特别限制,凡是能实现产生随机数序列的功能即可。

进一步地,随机数发生器针对相同的随机种子,能够产生完全相同的伪随机数序列,在本实施例中,游戏客户端与游戏服务器有相同的随机种子,并根据该随机种子构造随机数生成器,因此游戏客户端以及游戏服务器可以产生完全相同的伪随机数序列。

s305、游戏客户端在预设游戏场景被加载时,向游戏服务器发送游戏数据计算请求。

在本实施例中,针对不同的预设游戏场景有不同的算法,游戏客户端在预设游戏场景被加载时,向游戏服务器发送游戏数据计算请求,其中游戏数据计算请求例如可以携带有目标算法的标识,其中游戏数据计算请求还例如可以携带有目标算法,用于向服务器发送根据目标算法计算游戏数据的请求,本发明实施例对游戏数据计算请求的具体实现方式不做限制,通过发送游戏数据计算请求,可以保证游戏客户端以及游戏服务器根据相同的算法进行计算。

s306、游戏服务器向至少一游戏客户端发送游戏数据计算请求。

进一步地,各游戏客户端之间同样需要保证游戏数据的同步,例如当前触发普通攻击操作的游戏客户端上判定了暴击伤害,在其余的游戏客户端上同样需要对该暴击伤害的游戏数据进行同步,因此游戏服务器向其它至少一游戏客户端发送游戏数据计算请求,该游戏数据计算请求与上述介绍的类似,此处不再赘述。

通过游戏服务器向其它游戏客户端发送游戏数据计算请求,可以保证各游戏客户端之间实现游戏数据的同步。

s307、游戏客户端和游戏服务器分别确认与预设游戏场景对应的算法。

具体的,s307的实现方式与s202的实现方式类似,此处不再赘述。

s308、游戏客户端和游戏服务器分别确认算法中是否包含随机成分,其中随机成分用于指示得到随机数,若否,则执行s309,若是,则执行s314。

进一步地,游戏客户端和游戏服务器分别确认与游戏场景对应的算法后,游戏客户端确认算法中是否包含随机成分,同时游戏服务器确认算法中是否包含随机成分,本发明实施例中针对算法中包含随机成分与算法中不包含随机成分的处理方式不同,下面结合具体的实施例进行详细介绍。

本发明实施例提供的游戏数据处理方法,包括:游戏客户端登录游戏服务器。游戏服务器生成随机种子,并将随机种子发送给游戏客户端。游戏客户端与游戏服务器采用随机种子构造随机数生成器。游戏客户端在预设游戏场景被加载时,向游戏服务器发送游戏数据计算请求。游戏服务器向至少一游戏客户端发送游戏数据计算请求。游戏客户端和游戏服务器分别确认与预设游戏场景对应的算法。游戏客户端和游戏服务器分别确认算法中是否包含随机数。通过游戏数据计算请求实现游戏服务器与各游戏客户端之间对于算法的同步,同时通过游戏服务器生成随机种子并将随机种子发送给游戏客户端,实现了游戏服务器与各游戏客户端在进行游戏数据的计算时,对包含随机数的算法也能实现游戏数据的同步。

在上述实施例的基础上,首先结合图3b对本发明实施例提供的游戏数据的计算方法,算法中不包含随机成分的情况进行详细介绍。

如图3b所示,该方法包括:

s309、游戏客户端和游戏服务器分别从本地收集算法对应的输入数据。

s310、游戏客户端和游戏服务器分别根据输入数据和对应的算法进行游戏数据计算。

具体的,游戏客户端和游戏服务器已经分别确定了算法,进一步地,游戏客户端从游戏客户端中收集算法对应的输入数据,同时游戏客户端从游戏客户端中收集算法所需的输入数据,其中算法所需的输入数据根据算法进行确定,本发明实施例对此不做限制。

进一步地,游戏客户端和游戏服务器分别根据输入数据和对应的算法进行游戏数据计算,因为算法与游戏数据都是同步的,因此在游戏客户端与游戏服务器分别进行计算能够得到相同的游戏数据,从而各自在本地进行输入数据的获取以及计算,因此避免了网络延迟导致的游戏客户端卡顿。

s311、游戏客户端与游戏服务器周期或者非周期地交互游戏数据计算结果。

在本实施例中,若出现输入值选取错误、版本错误或者程序漏洞等一系列异常情况,有可能导致游戏客户端与游戏服务器之间的游戏数据不同步,为了保证游戏客户端与游戏服务器之间游戏数据的同步,游戏客户端与游戏服务器之间需要进行游戏数据计算结果的交互。

具体的,例如可以周期性的交互游戏数据计算结果,即游戏客户端与游戏服务器定期向对方发送一次或多次的游戏数据计算结果,还例如可以非周期的交互游戏数据计算结果,非周期的实现方式例如可以为根据游戏数据同步指令向对方发送游戏数据计算结果等,以上均为示例性的进行介绍,本发明实施例对交互游戏数据计算结果的具体实现方式不做特别限制。

s312、游戏服务器将游戏服务器计算得到的游戏数据计算结果与游戏客户端发送的游戏数据计算结果进行一致性校验。

s313、若不一致,则游戏服务器将游戏服务器计算得到的游戏数据计算结果同步给游戏客户端,以便游戏客户端进行游戏数据计算结果的纠正。

进一步地,游戏服务器接收到游戏客户端发送的游戏数据计算结果,并与游戏服务器计算得到的游戏数据计算结果进行一致性校验,具体的,一致性校验为比较两个游戏数据计算结果是否相同,若不一致,则确定游戏服务器与游戏客户端之间的数据同步出现问题。

具体的,游戏服务器将游戏服务器计算得到的游戏数据计算结果同步给游戏客户端,游戏客户端根据服务器发送的游戏数据计算结果对本地的游戏数据计算结果进行纠正,从而保证游戏客户端和游戏服务器之间的游戏数据同步。

可选地,游戏服务端还可以根据纠正的时间、次数、偏差值等信息,进一步进行游戏数据的挖掘,从而发现游戏客户端的异常行为,如恶意修改、外挂等,从而保证游戏安全。

本发明实施例提供的游戏数据处理方法,包括:游戏客户端和游戏服务器分别从本地收集算法对应的输入数据。游戏客户端和游戏服务器分别根据输入数据和对应的算法进行游戏数据计算。游戏客户端与游戏服务器周期或者非周期地交互游戏数据计算结果。游戏服务器将游戏服务器计算得到的游戏数据计算结果与游戏客户端发送的游戏数据计算结果进行一致性校验。若不一致,则游戏服务器将游戏服务器计算得到的游戏数据计算结果同步给游戏客户端,以便游戏客户端进行游戏数据计算结果的纠正。通过游戏客户端以及游戏服务器各自在本地根据相同的算法以及输入数据进行计算,得到相同的游戏数据计算结果,从而避免了网络延迟带来的影响,进一步地,根据游戏客户端和游戏服务器之间交互游戏数据计算结果,保证了游戏客户端和游戏服务器之间游戏数据的同步。

在上述实施例的基础上,再结合图3c对本发明实施例提供的游戏数据的计算方法,算法中包含有随机成分的情况进行详细介绍。

如图3c所示,该方法包括:

s314、游戏客户端和游戏服务器分别确认所需随机数的个数n。

在本实施例中,游戏客户端和游戏服务器同步有随机种子,并且根据随机种子构造有相同的有随机数发生器,在游戏客户端根据随机数发生器得到伪随机数序列和在游戏服务器根据随机数发生器得到的伪随机数序列是相同的。

具体的,在确定算法中包含随机成分时,游戏客户端根据算法中的随机成分确定所需的随机数的个数n,同样地,游戏客户端根据算法中的随机成分确定所需的随机数的个数n,此处对随机数的个数n不做特别限制,在本实施例中随机数发生器得到的是伪随机数序列,因此需要确定随机数的个数n才能够在游戏客户端和游戏服务器之间得到相同的随机数。

s315、游戏客户端和游戏服务器采用相同的随机数生成器按照相同的顺序依次生成n个随机数。

进一步地,游戏客户端和游戏服务器根据随机数生成器按照相同的顺序依次生成n个随机数,具体的,其中产生随机数的顺序根据算法确定,因为游戏客户端和游戏服务器的随机数生成器是相同的,因此在确定了相同的顺序以及随机数的个数n时,能够产生相同的伪随机数序列,从而保证算法在含有随机数时,游戏客户端以及游戏服务器能够在本地生成相同的随机数。

s316、游戏客户端和游戏服务器分别从本地收集算法对应的输入数据。

具体的,s316的实现方式与s202类似,此处不再赘述。

s317、游戏客户端和游戏服务器分别根据输入数据、所生成的n个随机数以及对应的算法进行游戏数据计算。

进一步地,游戏客户端根据从本地收集的输入数据、所生成的n个随机数以及对应的算法进行游戏数据的计算,其中计算的过程以及对各个数据的获取均在游戏客户端进行,从而无需考虑网络延迟带来的影响。

其次,游戏服务器根据从本地收集的输入数据、所生成的n个随机数以及对应的算法进行游戏数据的计算,其中计算的过程以及对各个数据的获取均在游戏服务器进行,因为游戏数据、随机数以及算法都是与游戏客户端同步的,因此能够得到与游戏客户端相同的游戏结果,从而避免了网络延迟的影响。

s318、游戏客户端与游戏服务器周期或者非周期地交互游戏数据计算结果。

s319、游戏服务器将游戏服务器计算得到的游戏数据计算结果与游戏客户端发送的游戏数据计算结果进行一致性校验。

其中,s318、s319的实现方式与s311、s312类似,此处不再赘述。

s320、若不一致,则游戏服务器向游戏客户端重新同步随机种子,以便游戏客户端根据重新同步的随机种子重新构造随机数发生器。

具体的,若校验发现游戏服务器将游戏服务器计算得到的游戏数据计算结果与游戏客户端发送的游戏数据计算结果不一致,则确定游戏客户端和游戏服务器之间的游戏数据同步出现问题。

进一步地,因为随机数的存在,游戏服务器向游戏客户端重新同步随机种子,游戏服务器根据更新的随机种子构造重新构造随机数发生器,同时游戏客户端在接收到更新的随机种子时,根据更新的随机种子构造重新构造随机数发生器,游戏服务器和游戏客户端重新构造的随机数发生器是相同的,能够产生相同的伪随机数序列。

通过重新同步随机种子,能够避免在游戏服务器和游戏客户端之间因为异常情况导致的游戏数据不同步的问题。可选地,本发明实施例还可以通过游戏服务器将游戏服务器计算得到的游戏数据计算结果同步给游戏客户端,以便游戏客户端进行游戏数据计算结果的纠正,从而保证游戏数据的同步。

本发明实施例提供的游戏数据处理方法,包括:游戏客户端和游戏服务器分别确认所需随机数的个数n。游戏客户端和游戏服务器采用相同的随机数生成器按照相同的顺序依次生成n个随机数。游戏客户端和游戏服务器分别从本地收集算法对应的输入数据。游戏客户端和游戏服务器分别根据输入数据、所生成的n个随机数以及对应的算法进行游戏数据计算。游戏客户端与游戏服务器周期或者非周期地交互游戏数据计算结果。游戏服务器将游戏服务器计算得到的游戏数据计算结果与游戏客户端发送的游戏数据计算结果进行一致性校验。通过在游戏客户端和游戏服务器根据相同的随机种子构造相同的随机数发生器,其次根据算法确定的顺序以及随机数个数产生相同的随机数,从而实现游戏客户端以及游戏服务器各自在本地计算得到相同的游戏数据计算结果,消除了网络延迟带来的影响。并且通过游戏客户端和游戏服务器在游戏数据计算结果不一致时,重新同步随机种子,从而保证了游戏客户端以及游戏服务器的数据一致性。

在上述实施例的基础上,本发明提供的游戏数据处理方法还可以由游戏服务器发送游戏数据计算请求,具体的,游戏服务器在预设游戏场景被加载时,向至少一个游戏客户端发送游戏数据计算请求,在游戏服务器发送游戏数据计算请求时,对游戏数据进行计算的实现方式与游戏客户端发送游戏数据计算请求的实现方式类似,此处不再赘述。

本发明实施例提供的游戏数据处理方法,通过游戏服务器在预设游戏场景被加载时,向至少一个游戏客户端发送游戏数据计算请求,从而确保各种游戏场景下均能实现游戏服务器和游戏客户端的游戏数据同步,避免了网络延迟的问题,提升玩家的游戏体验。

图4为本发明实施例提供的游戏数据处理装置的结构示意图一。如图4所示,该游戏数据处理装置40包括:确认模块401、收集模块402以及计算模块403。

确认模块401,用于通过游戏客户端和游戏服务器分别确认与预设游戏场景对应的算法;

收集模块402,用于游戏客户端和游戏服务器分别从本地收集算法相关的输入数据;

计算模块403,用于游戏客户端和游戏服务器分别根据输入数据和对应的算法进行游戏数据计算。

本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。

图5为本发明实施例提供的游戏数据处理装置的结构示意图二。如图5所示,本实施例在图4实施例的基础上,还包括:发送模块504。

在一种可能的设计中,发送模块504,用于游戏客户端和游戏服务器分别确认与预设游戏场景对应的算法之前,游戏客户端检测到预设游戏场景被加载时,向游戏服务器发送游戏数据计算请求。

在一种可能的设计中,发送模块504还用于:

游戏客户端检测到预设游戏场景被加载时,向游戏服务器发送游戏数据计算请求之后,游戏服务器向至少一游戏客户端发送游戏数据计算请求。

在一种可能的设计中,发送模块504还用于:

游戏客户端和游戏服务器分别确认与预设游戏场景对应的算法之前,游戏服务器在预设游戏场景被加载时,向游戏客户端发送游戏数据计算请求。

在一种可能的设计中,发送模块504具体用于:

游戏服务器在预设游戏场景被加载时,向至少一个游戏客户端发送游戏数据计算请求。

在一种可能的设计中,确认模块501还用于:

游戏客户端和游戏服务器分别确认与预设游戏场景对应的算法之后,游戏客户端和游戏服务器分别确认算法中是否包含随机成分,其中随机成分用于指示得到随机数;

若算法中包含随机数,则游戏客户端和游戏服务器分别确认所需随机数的个数n;

游戏客户端和游戏服务器采用具有相同随机种子的相同随机数生成器生成n个随机数;

相应的,计算模块503具体用于:

游戏客户端和游戏服务器分别根据输入数据、所生成的n个随机数以及对应的算法进行游戏数据计算。

在一种可能的设计中,确认模块501具体用于:

游戏客户端和游戏服务器采用相同的随机数生成器按照相同的顺序依次生成n个随机数。

在一种可能的设计中,确认模块501还用于:

游戏客户端和游戏服务器分别确认与预设游戏场景对应的算法之前,游戏客户端登录游戏服务器;

游戏服务器生成随机种子,并将随机种子发送给游戏客户端;

游戏客户端与游戏服务器采用随机种子构造随机数生成器。

在一种可能的设计中,计算模块503还用于:

游戏客户端和游戏服务器分别根据输入数据和对应的算法进行游戏数据计算之后,游戏客户端与游戏服务器周期或者非周期地交互游戏数据计算结果。

在一种可能的设计中,计算模块503还用于:

游戏客户端与游戏服务器周期或者非周期地交互游戏数据计算结果之后,游戏服务器将游戏服务器计算得到的游戏数据计算结果与游戏客户端发送的游戏数据计算结果进行一致性校验;

若不一致,则游戏服务器将游戏服务器计算得到的游戏数据计算结果同步给游戏客户端,以便游戏客户端进行游戏数据计算结果的纠正。

在一种可能的设计中,计算模块503还用于:

游戏客户端和游戏服务器分别根据输入数据和对应的算法进行游戏数据计算之后,游戏客户端与游戏服务器周期或者非周期地交互游戏数据计算结果。

在一种可能的设计中,计算模块503还用于:

游戏客户端与游戏服务器周期或者非周期地交互游戏数据计算结果之后,游戏服务器将游戏服务器计算得到的游戏数据计算结果与游戏客户端发送的游戏数据计算结果进行一致性校验;

若不一致,则游戏服务器向游戏客户端重新同步随机种子,以便游戏客户端根据重新同步的随机种子重新构造随机数发生器。

本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。

图6为本发明实施例提供的游戏客户端的硬件结构示意图,如图6所示,本实施例的游戏客户端60包括:处理器601以及存储器602;其中

存储器602,用于存储计算机执行指令;

处理器601,用于执行存储器存储的计算机执行指令,以实现上述实施例中游戏数据处理方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。

可选地,存储器602既可以是独立的,也可以跟处理器601集成在一起。

当存储器62独立设置时,该游戏客户端还包括总线603,用于连接存储器602和处理器601。

图7为本发明实施例提供的游戏服务器的硬件结构示意图,如图7所示,本实施例的游戏服务器70包括:处理器701以及存储器702;其中

存储器702,用于存储计算机执行指令;

处理器701,用于执行存储器存储的计算机执行指令,以实现上述实施例中游戏数据处理方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。

可选地,存储器702既可以是独立的,也可以跟处理器701集成在一起。

当存储器72独立设置时,该游戏客户端还包括总线703,用于连接存储器702和处理器701。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上游戏客户端以及游戏服务器所执行的游戏数据处理方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。

应理解,上述处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。

总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1