第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 游戏数据同步方法 装置 存储介质及处理器与流程

游戏数据同步方法 装置 存储介质及处理器与流程

时间:2024-01-25 07:35:00

相关推荐

游戏数据同步方法 装置 存储介质及处理器与流程

本发明涉及游戏领域,具体而言,涉及一种游戏数据同步方法、装置、存储介质及处理器。

背景技术:

目前,相关技术中在游戏领域所采用的同步方式,其实现过程主要包括:服务器负责计算全部的游戏逻辑,并且向客户端广播游戏逻辑的执行结果,而客户端负责向服务器发送游戏玩家所执行的各项游戏操作数据以及渲染从服务器接收到的执行结果。在通常情况下,游戏玩家如果向服务器发送游戏操作数据,则服务器会根据游戏玩家所执行的游戏操作来修改内存中的游戏世界模型,同时获取游戏世界对游戏操作的待同步游戏数据,然后再将这些待同步游戏数据广播至多个客户端,以便每个客户端负责将这些待同步游戏数据表现给游戏玩家。

此种同步方式的优势在于:整个游戏逻辑都运行在服务器上,并且服务器只需接收合法游戏玩家所执行的游戏操作。另外,由于主要游戏逻辑运行在服务器,因此,如果游戏版本需要更新,则游戏开发人员只需在服务器完成更新即可,而无需多个客户端分别从服务器下载更新包。

虽然上述同步方式存在以上优势,但是该同步方式同样也存在如下明显的技术缺陷:

(1)游戏玩家的游戏体验极度依赖于网络质量,一旦客户端的网络延迟较高便会造成游戏卡顿。

(2)由于服务器负责大量的游戏逻辑运算(包括:二维或者三维空间的逻辑运算),因此服务器的运算负荷极大。

(3)由于每个游戏表现均需要服务器向多个客户端广播大量的游戏数据包、产生大量的协议指令,因此,如果同时登陆游戏的游戏玩家数量较多,则会造成服务器广播的游戏数据包总量急剧升高。

针对上述的问题,目前尚未提出有效的解决方案。

技术实现要素:

本发明至少部分实施例提供了一种游戏数据同步方法、装置、存储介质及处理器,以至少解决相关技术中所采用的服务器与客户端之间的游戏数据同步方式,易造成服务器的运算负荷较重、需要向客户端广播的游戏数据量较大的技术问题。

根据本发明其中一实施例,提供了一种游戏数据同步方法,包括:

获取游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;将待同步的数据属性同步至客户端。

可选地,上述方法还包括:触发至少一个游戏组件中与待同步的数据属性对应的游戏系统在服务器本地执行待同步的数据属性的业务逻辑,对待同步的数据属性所在的游戏实体进行更新。

可选地,上述方法还包括:在游戏实体中配置计数组件,其中,计数组件用于记录待同步的数据属性的同步数据量;将计数组件记录的同步数据量下发至客户端本地对应的计数组件。

可选地,在将计数组件记录的同步数据量下发至客户端之后,还包括:在确定服务器与客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,接收来自于客户端的第一计数值,其中,第一计数值用于表示在连接状态进入异常中断状态之前,待同步的数据属性在客户端本地已更新完毕的数据量;利用第二计数值与第一计数值确定待同步的数据属性在客户端本地尚未完成更新的数据量,其中,第二计数值为同步数据量;依据客户端本地尚未完成更新的数据量将尚未更新的数据属性下发至客户端本地对应的组件。

根据本发明其中一实施例,还提供了另一种游戏数据同步方法,包括:

接收来自于服务器的游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;将待同步的数据属性同步至客户端本地与至少一个游戏组件对应的组件中。

可选地,将待同步的数据属性同步至客户端本地与至少一个游戏组件对应的组件中包括:查找客户端本地与至少一个游戏组件对应的组件;触发查找到的组件中与待同步的数据属性对应的游戏系统在客户端本地执行待同步的数据属性的业务逻辑,对待同步的数据属性所在的游戏实体进行更新。

可选地,上述方法还包括:接收来自于服务器的计数组件所记录的待同步的数据属性的同步数据量,其中,计数组件为服务器的游戏实体中的新增组件;将同步数据量同步至客户端本地对应的计数组件。

可选地,在将同步数据量同步至客户端本地对应的计数组件之后,还包括:在确定服务器与客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,向服务器上报第一计数值,其中,第一计数值用于表示在连接状态进入异常中断状态之前,待同步的数据属性在客户端本地已更新完毕的数据量;接收服务器下发的尚未更新的数据属性,并将尚未更新的数据属性同步至客户端本地对应的组件,其中,尚未更新的数据属性依据待同步的数据属性在客户端本地尚未完成更新的数据量来确定,客户端本地尚未完成更新的数据量利用第二计数值与第一计数值来确定,第二计数值为同步数据量。

根据本发明其中一实施例,还提供了一种游戏数据同步装置,包括:

获取模块,用于获取游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;同步模块,用于将待同步的数据属性同步至客户端。

可选地,上述装置还包括:触发模块,用于触发至少一个游戏组件中与待同步的数据属性对应的游戏系统在服务器本地执行待同步的数据属性的业务逻辑,对待同步的数据属性所在的游戏实体进行更新。

可选地,上述装置还包括:配置模块,用于在游戏实体中配置计数组件,其中,计数组件用于记录待同步的数据属性的同步数据量;第一下发模块,用于将计数组件记录的同步数据量下发至客户端本地对应的计数组件。

可选地,上述装置还包括:接收模块,用于在确定服务器与客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,接收来自于客户端的第一计数值,其中,第一计数值用于表示在连接状态进入异常中断状态之前,待同步的数据属性在客户端本地已更新完毕的数据量;确定模块,用于利用第二计数值与第一计数值确定待同步的数据属性在客户端本地尚未完成更新的数据量,其中,第二计数值为同步数据量;第二下发模块,用于依据客户端本地尚未完成更新的数据量将尚未更新的数据属性下发至客户端本地对应的组件。

根据本发明其中一实施例,还提供了另一种游戏数据同步装置,包括:

接收模块,用于接收来自于服务器的游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;同步模块,用于将待同步的数据属性同步至客户端本地与至少一个游戏组件对应的组件中。

可选地,同步模块包括:查找单元,用于查找客户端本地与至少一个游戏组件对应的组件;同步单元,用于触发查找到的组件中与待同步的数据属性对应的游戏系统在客户端本地执行待同步的数据属性的业务逻辑,对待同步的数据属性所在的游戏实体进行更新。

可选地,接收模块,还用于接收来自于服务器的计数组件所记录的待同步的数据属性的同步数据量,其中,计数组件为服务器的游戏实体中的新增组件;同步模块,还用于将同步数据量同步至客户端本地对应的计数组件。

可选地,上述装置还包括:上报模块,用于在确定服务器与客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,向服务器上报第一计数值,其中,第一计数值用于表示在连接状态进入异常中断状态之前,待同步的数据属性在客户端本地已更新完毕的数据量;处理模块,用于接收服务器下发的尚未更新的数据属性,并将尚未更新的数据属性同步至客户端本地对应的组件,其中,尚未更新的数据属性依据待同步的数据属性在客户端本地尚未完成更新的数据量来确定,客户端本地尚未完成更新的数据量利用第二计数值与第一计数值来确定,第二计数值为同步数据量。

根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的游戏数据同步方法。

根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的游戏数据同步方法。

在本发明至少部分实施例中,采用获取游戏实体中至少一个游戏组件的待同步的数据属性,该游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑的方式,通过将待同步的数据属性同步至客户端,达到了采用基于实体-组件-系统的游戏数据同步方式来取代服务器负责模拟游戏逻辑、客户端负责呈现画面的游戏数据同步方式的目的,从而实现了显著降低服务器与客户端之间的游戏数据同步量、减小服务器的运算负荷的技术效果,进而解决了相关技术中所采用的服务器与客户端之间的游戏数据同步方式,易造成服务器的运算负荷较重、需要向客户端广播的游戏数据量较大的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明其中一实施例的游戏数据同步系统的结构示意图;

图2是根据本发明其中一实施例的游戏数据同步方法的流程图;

图3是根据本发明其中一可选实施例的在服务器的游戏实体中配置计数组件的示意图;

图4是根据本发明其中一实施例的另一种游戏数据同步方法的流程图;

图5是根据本发明其中一实施例的游戏数据同步装置的结构框图;

图6是根据本发明其中一可选实施例的游戏数据同步装置的结构框图;

图7是根据本发明其中一实施例的另一种游戏数据同步装置的结构框图;

图8是根据本发明其中一可选实施例的另一种游戏数据同步装置的结构框图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明其中一实施例,提供了一种游戏数据同步方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

该方法实施例可以在游戏数据同步系统中执行。该游戏数据同步系统包括:游戏服务器和运行有游戏客户端的终端。图1是本发明其中一实施例的游戏数据同步系统的结构示意图。如图1所示,游戏服务器和终端均采用实体-组件-系统(entitycomponentsystem,简称为ecs)架构。实体是网络游戏中的基本组成单元,可以包含多个组件。每个组件是数据属性的集合。而系统则是针对特定属性集合的业务逻辑处理。以游戏玩家操控的游戏角色为例,针对该游戏角色可以创建一个实体。该实体可以包括多个组件,例如:移动组件(movecompent)和渲染组件(rendercompent)。该移动组件还可以进一步包括速度、朝向等数据属性。渲染组件还可以进一步包括旋转、缩放、平移等数据属性。每个组件可以对应至少一个系统。系统的作用则在于:针对每个组件的功能实现,例如:针对移动组件设置移动系统(movesystem)以控制游戏角色在游戏场景内的移动,针对渲染组件设置渲染系统(rendersystem)以控制游戏画面的渲染。通过采用ecs架构将数据属性与业务逻辑相互分离,由此实现通过数据属性的改变来驱动业务逻辑的变化。组件中只需存储数据属性,而系统中只需针对所关联的组件进行业务逻辑处理。

游戏服务器可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(cpu)、图形处理器(gpu)、数字信号处理(dsp)芯片、微处理器(mcu)或可编程逻辑器件(fpga)等的处理装置)和用于存储数据的存储器。可选地,上述游戏服务器还可以包括用于通信功能的传输设备以及输入输出设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述游戏服务器的结构造成限定。例如,游戏服务器还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。

存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的游戏数据同步方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的游戏数据同步方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至游戏服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括游戏服务器的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种运行于上述游戏服务器的游戏数据同步方法。图2是根据本发明其中一实施例的游戏数据同步方法的流程图,如图2所示,该方法包括如下步骤:

步骤s20,获取游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;

步骤s22,将待同步的数据属性同步至客户端。

通过上述步骤,可以采用获取游戏实体中至少一个游戏组件的待同步的数据属性,该游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑的方式,通过将待同步的数据属性同步至客户端,达到了采用基于实体-组件-系统的游戏数据同步方式来取代服务器负责模拟游戏逻辑、客户端负责呈现画面的游戏数据同步方式的目的,从而实现了显著降低服务器与客户端之间的游戏数据同步量、减小服务器的运算负荷的技术效果,进而解决了相关技术中所采用的服务器与客户端之间的游戏数据同步方式,易造成服务器的运算负荷较重、需要向客户端广播的游戏数据量较大的技术问题。

上述游戏实体可以包括但不限于:游戏场景内的游戏角色(包括:我方游戏角色、敌方游戏角色、非玩家角色)、游戏道具(例如:武器、药水、载具)、场景资源(例如:树木、山坡、房屋)这些游戏对象。以游戏实体为游戏角色为例,游戏组件可以包括但不限于:移动组件、渲染组件、外形组件、骨骼组件。以外形组件为例,数据属性可以包括但不限于:身高属性、体重属性、相貌属性。对于游戏系统而言,针对身高属性可以通过身高系统来控制游戏角色在游戏场景内的身高变化,针对体重属性可以通过体重系统来控制游戏角色在游戏场景内的体重变化,针对相貌属性可以通过相貌系统来控制游戏角色在游戏场景内的相貌变化。

可选地,上述方法还可以包括以下执行步骤:

步骤s23,触发至少一个游戏组件中与待同步的数据属性对应的游戏系统在服务器本地执行待同步的数据属性的业务逻辑,对待同步的数据属性所在的游戏实体进行更新。

可选地,步骤s23和步骤s22的执行顺序是可以互换的,即可以先执行步骤s22,然后再执行s23,或者,先执行步骤s23,然后再执行s22。当然还可以同时执行步骤s23和步骤s22。

服务器在向客户端下发待同步的数据属性的过程中,可以触发服务器上游戏实体的至少一个游戏组件中与待同步的数据属性对应的游戏系统在服务器本地执行待同步的数据属性的业务逻辑,进而在服务器上对待同步的数据属性所在的游戏实体进行更新,由此达到服务器与客户端针对待同步的数据属性完成同步更新的目的。

例如:服务器上游戏角色这一游戏实体在外形组件的身高属性上发生变化(即,身高增加1厘米),此时身高属性即为待同步的数据属性。由此,服务器在向客户端下发身高属性的过程中,可以触发服务器上游戏角色的外形组件中与身高属性对应的身高系统在服务器本地执行身高属性的业务逻辑(即,游戏角色在游戏场景内的身高由原先的160厘米更新为161厘米),进而在服务器上对游戏角色进行更新。

可选地,上述方法还可以包括以下执行步骤:

步骤s24,在游戏实体中配置计数组件,其中,计数组件用于记录待同步的数据属性的同步数据量;

步骤s25,将计数组件记录的同步数据量下发至客户端本地对应的计数组件。

为了确保服务器能够完整地将待同步的数据属性同步至客户端,避免出现遗漏,可以在服务器的游戏实体中配置计数组件。该计数组件用于记录待同步的数据属性的同步数据量。

图3是根据本发明其中一可选实施例的在服务器的游戏实体中配置计数组件的示意图,如图3所示,假设待同步的数据属性包括:身高属性、体重属性、相貌属性、肤色属性、速度属性、朝向属性,那么服务器可以通过配置计数组件,分别对每个身高属性、体重属性、相貌属性、肤色属性、速度属性、朝向属性进行编号。即,身高属性记录为1、体重属性记录为2、相貌属性记录为3、肤色属性记录为4、速度属性记录为5、朝向属性记录为6,因此,同步数据量为6个待同步的数据属性。然后,服务器再将计数组件记录的同步数据量下发至客户端本地对应的计数组件。

需要说明的是,服务器既可以同时将计数组件记录的同步数据量与待同步的数据属性下发至客户端,也可以分别将计数组件记录的同步数据量与待同步的数据属性下发至客户端。

可选地,在步骤s25,将计数组件记录的同步数据量下发至客户端之后,还可以包括以下执行步骤:

步骤s26,在确定服务器与客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,接收来自于客户端的第一计数值,其中,第一计数值用于表示在连接状态进入异常中断状态之前,待同步的数据属性在客户端本地已更新完毕的数据量;

步骤s27,利用第二计数值与第一计数值确定待同步的数据属性在客户端本地尚未完成更新的数据量,其中,第二计数值为同步数据量;

步骤s28,依据客户端本地尚未完成更新的数据量将尚未更新的数据属性下发至客户端本地对应的组件。

考虑到服务器与客户端之间的连接状态可能会伴随着网络质量的转变由正常连接状态进入到异常中断状态,此时服务器与客户端之间的游戏数据同步过程可能尚未完成。客户端会不断尝试重新向服务器发起连接请求。服务器在确定服务器与客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,接收来自于客户端的第一计数值。该第一计数值用于表示在连接状态进入异常中断状态之前,待同步的数据属性在客户端本地已更新完毕的数据量。然后,服务器可以利用第二计数值与第一计数值确定待同步的数据属性在客户端本地尚未完成更新的数据量。该第二计数值为同步数据量。最后,服务器依据客户端本地尚未完成更新的数据量将尚未更新的数据属性下发至客户端本地对应的组件。

例如:服务器向客户端下发的同步数据量(即第二计数值)为6个待同步的数据属性。而在连接状态进入异常中断状态之前,客户端已经完成身高属性、体重属性以及相貌属性的同步更新。此时,客户端向服务器上报的第一计数值为3。服务器利用第二计数值与第一计数值确定待同步的数据属性在客户端本地尚未完成更新的数据量为肤色属性、速度属性以及朝向属性,因此,服务器将肤色属性、速度属性以及朝向属性下发至客户端本地对应的组件。

根据本发明其中一实施例,还提供了另一种游戏数据同步方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

该方法实施例同样可以在上述游戏数据同步系统中执行。终端可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(cpu)、图形处理器(gpu)、数字信号处理(dsp)芯片、微处理器(mcu)或可编程逻辑器件(fpga)等的处理装置)和用于存储数据的存储器。可选地,上述终端还可以包括用于通信功能的传输设备、输入输出设备以及显示设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述终端的结构造成限定。例如,终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。

存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的游戏数据同步方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的游戏数据同步方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

显示设备可以例如触摸屏式的液晶显示器(lcd)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与终端的用户界面进行交互。在一些实施例中,上述显示设备具有图形用户界面(gui),用户可以通过触摸触敏表面上的手指接触和/或手势来与gui进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。

在本实施例中提供了一种运行于上述终端的游戏数据同步方法。图4是根据本发明其中一实施例的另一种游戏数据同步方法的流程图,如图4所示,该方法包括如下步骤:

步骤s40,接收来自于服务器的游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;

步骤s42,将待同步的数据属性同步至客户端本地与至少一个游戏组件对应的组件中。

通过上述步骤,可以采用接收来自于服务器的游戏实体中至少一个游戏组件的待同步的数据属性,该游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑的方式,通过将待同步的数据属性同步至客户端本地与至少一个游戏组件对应的组件中,达到了采用基于实体-组件-系统的游戏数据同步方式来取代服务器负责模拟游戏逻辑、客户端负责呈现画面的游戏数据同步方式的目的,从而实现了显著降低服务器与客户端之间的游戏数据同步量、减小服务器的运算负荷的技术效果,进而解决了相关技术中所采用的服务器与客户端之间的游戏数据同步方式,易造成服务器的运算负荷较重、需要向客户端广播的游戏数据量较大的技术问题。

上述游戏实体可以包括但不限于:游戏场景内的游戏角色(包括:我方游戏角色、敌方游戏角色、非玩家角色)、游戏道具(例如:武器、药水、载具)、场景资源(例如:树木、山坡、房屋)这些游戏对象。以游戏实体为游戏角色为例,游戏组件可以包括但不限于:移动组件、渲染组件、外形组件、骨骼组件。以外形组件为例,数据属性可以包括但不限于:身高属性、体重属性、相貌属性。对于游戏系统而言,针对身高属性可以通过身高系统来控制游戏角色在游戏场景内的身高变化,针对体重属性可以通过体重系统来控制游戏角色在游戏场景内的体重变化,针对相貌属性可以通过相貌系统来控制游戏角色在游戏场景内的相貌变化。

可选地,在步骤s42中,将待同步的数据属性同步至客户端本地与至少一个游戏组件对应的组件中可以包括以下执行步骤:

步骤s421,查找客户端本地与至少一个游戏组件对应的组件;

步骤s422,触发查找到的组件中与待同步的数据属性对应的游戏系统在客户端本地执行待同步的数据属性的业务逻辑,对待同步的数据属性所在的游戏实体进行更新。

客户端在接收到服务器下发的待同步的数据属性之后,需要先查找客户端本地与至少一个游戏组件对应的组件,然后再触发查找到的组件中与待同步的数据属性对应的游戏系统在客户端本地执行待同步的数据属性的业务逻辑,进而在客户端本地对待同步的数据属性所在的游戏实体进行更新。

例如:服务器上游戏角色这一游戏实体在外形组件的身高属性上发生变化(即,身高增加1厘米),此时身高属性即为待同步的数据属性。由此,服务器在向客户端下发身高属性之后,客户端需要先查找客户端本地与服务器上游戏角色的外形组件对应的组件,然后再触发查找到的组件中与身高属性对应的身高系统在客户端本地执行身高属性的业务逻辑(即,游戏角色在游戏场景内的身高由原先的160厘米更新为161厘米),进而在客户端上对游戏角色进行更新。

可选地,上述方法还可以包括以下执行步骤:

步骤s43,接收来自于服务器的计数组件所记录的待同步的数据属性的同步数据量,其中,计数组件为服务器的游戏实体中的新增组件;

步骤s44,将同步数据量同步至客户端本地对应的计数组件。

为了确保服务器能够完整地将待同步的数据属性同步至客户端,避免出现遗漏,可以在服务器的游戏实体中配置计数组件。该计数组件用于记录待同步的数据属性的同步数据量。假设待同步的数据属性包括:身高属性、体重属性、相貌属性、肤色属性、速度属性、朝向属性,那么服务器可以通过配置计数组件,分别对每个身高属性、体重属性、相貌属性、肤色属性、速度属性、朝向属性进行编号。即,身高属性记录为1、体重属性记录为2、相貌属性记录为3、肤色属性记录为4、速度属性记录为5、朝向属性记录为6,因此,同步数据量为6个待同步的数据属性。然后,服务器再将计数组件记录的同步数据量下发至客户端本地对应的计数组件。最终,客户端会将同步数据量同步至客户端本地对应的计数组件。

可选地,在步骤s44,将同步数据量同步至客户端本地对应的计数组件之后,还可以包括以下执行步骤:

步骤s45,在确定服务器与客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,向服务器上报第一计数值,其中,第一计数值用于表示在连接状态进入异常中断状态之前,待同步的数据属性在客户端本地已更新完毕的数据量;

步骤s46,接收服务器下发的尚未更新的数据属性,并将尚未更新的数据属性同步至客户端本地对应的组件,其中,尚未更新的数据属性依据待同步的数据属性在客户端本地尚未完成更新的数据量来确定,客户端本地尚未完成更新的数据量利用第二计数值与第一计数值来确定,第二计数值为同步数据量。

考虑到服务器与客户端之间的连接状态可能会伴随着网络质量的转变由正常连接状态进入到异常中断状态,此时服务器与客户端之间的游戏数据同步过程可能尚未完成。客户端会不断尝试重新向服务器发起连接请求。服务器在确定服务器与客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,接收来自于客户端的第一计数值。该第一计数值用于表示在连接状态进入异常中断状态之前,待同步的数据属性在客户端本地已更新完毕的数据量。然后,服务器可以利用第二计数值与第一计数值确定待同步的数据属性在客户端本地尚未完成更新的数据量。该第二计数值为同步数据量。最后,服务器依据客户端本地尚未完成更新的数据量将尚未更新的数据属性下发至客户端本地对应的组件。

例如:服务器向客户端下发的同步数据量(即第二计数值)为6个待同步的数据属性。而在连接状态进入异常中断状态之前,客户端已经完成身高属性、体重属性以及相貌属性的同步更新。此时,客户端向服务器上报的第一计数值为3。服务器利用第二计数值与第一计数值确定待同步的数据属性在客户端本地尚未完成更新的数据量为肤色属性、速度属性以及朝向属性,因此,服务器将肤色属性、速度属性以及朝向属性下发至客户端本地对应的组件。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种游戏数据同步装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图5是根据本发明其中一实施例的游戏数据同步装置的结构框图,如图5所示,该装置包括:获取模块10,用于获取游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;同步模块11,用于将待同步的数据属性同步至客户端。

可选地,图6是根据本发明其中一可选实施例的游戏数据同步装置的结构框图,如图6所示,该装置除包括图5所示的所有模块外,上述装置还包括:触发模块12,用于触发至少一个游戏组件中与待同步的数据属性对应的游戏系统在服务器本地执行待同步的数据属性的业务逻辑,对待同步的数据属性所在的游戏实体进行更新。

可选地,如图6所示,该装置除包括图5所示的所有模块外,上述装置还包括:配置模块13,用于在游戏实体中配置计数组件,其中,计数组件用于记录待同步的数据属性的同步数据量;第一下发模块14,用于将计数组件记录的同步数据量下发至客户端本地对应的计数组件。

可选地,如图6所示,该装置除包括图5所示的所有模块外,上述装置还包括:接收模块15,用于在确定服务器与客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,接收来自于客户端的第一计数值,其中,第一计数值用于表示在连接状态进入异常中断状态之前,待同步的数据属性在客户端本地已更新完毕的数据量;确定模块16,用于利用第二计数值与第一计数值确定待同步的数据属性在客户端本地尚未完成更新的数据量,其中,第二计数值为同步数据量;第二下发模块17,用于依据客户端本地尚未完成更新的数据量将尚未更新的数据属性下发至客户端本地对应的组件。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

在本实施例中还提供了另一种游戏数据同步装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图7是根据本发明其中一实施例的另一种游戏数据同步装置的结构框图,如图7所示,该装置包括:接收模块20,用于接收来自于服务器的游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;同步模块21,用于将待同步的数据属性同步至客户端本地与至少一个游戏组件对应的组件中。

可选地,同步模块21包括:查找单元(图中未示出),用于查找客户端本地与至少一个游戏组件对应的组件;同步单元(图中未示出),用于触发查找到的组件中与待同步的数据属性对应的游戏系统在客户端本地执行待同步的数据属性的业务逻辑,对待同步的数据属性所在的游戏实体进行更新。

可选地,接收模块20,还用于接收来自于服务器的计数组件所记录的待同步的数据属性的同步数据量,其中,计数组件为服务器的游戏实体中的新增组件;同步模块21,还用于将同步数据量同步至客户端本地对应的计数组件。

可选地,图8是根据本发明其中一可选实施例的另一种游戏数据同步装置的结构框图,如图8所示,该装置除包括图7所示的所有模块外,上述装置还包括:上报模块22,用于在确定服务器与客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,向服务器上报第一计数值,其中,第一计数值用于表示在连接状态进入异常中断状态之前,待同步的数据属性在客户端本地已更新完毕的数据量;处理模块23,用于接收服务器下发的尚未更新的数据属性,并将尚未更新的数据属性同步至客户端本地对应的组件,其中,尚未更新的数据属性依据待同步的数据属性在客户端本地尚未完成更新的数据量来确定,客户端本地尚未完成更新的数据量利用第二计数值与第一计数值来确定,第二计数值为同步数据量。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,获取游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;

s2,将待同步的数据属性同步至客户端。

可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:

s1,接收来自于服务器的游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;

s2,将待同步的数据属性同步至客户端本地与至少一个游戏组件对应的组件中。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,获取游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;

s2,将待同步的数据属性同步至客户端。

可选地,在本实施例中,上述处理器还可以被设置为通过计算机程序执行以下步骤:

s1,接收来自于服务器的游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;

s2,将待同步的数据属性同步至客户端本地与至少一个游戏组件对应的组件中。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

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

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术特征:

1.一种游戏数据同步方法,其特征在于,包括:

获取游戏实体中至少一个游戏组件的待同步的数据属性,其中,所述游戏实体基于游戏对象创建,所述游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储所述游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;

将所述待同步的数据属性同步至客户端。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

触发所述至少一个游戏组件中与所述待同步的数据属性对应的游戏系统在服务器本地执行所述待同步的数据属性的业务逻辑,对所述待同步的数据属性所在的游戏实体进行更新。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

在所述游戏实体中配置计数组件,其中,所述计数组件用于记录所述待同步的数据属性的同步数据量;

将所述计数组件记录的所述同步数据量下发至所述客户端本地对应的计数组件。

4.根据权利要求3所述的方法,其特征在于,在将所述计数组件记录的所述同步数据量下发至所述客户端之后,还包括:

在确定服务器与所述客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,接收来自于所述客户端的第一计数值,其中,所述第一计数值用于表示在所述连接状态进入异常中断状态之前,所述待同步的数据属性在所述客户端本地已更新完毕的数据量;

利用第二计数值与所述第一计数值确定所述待同步的数据属性在所述客户端本地尚未完成更新的数据量,其中,所述第二计数值为所述同步数据量;

依据所述客户端本地尚未完成更新的数据量将尚未更新的数据属性下发至所述客户端本地对应的组件。

5.一种游戏数据同步方法,其特征在于,包括:

接收来自于服务器的游戏实体中至少一个游戏组件的待同步的数据属性,其中,所述游戏实体基于游戏对象创建,所述游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储所述游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;

将所述待同步的数据属性同步至客户端本地与所述至少一个游戏组件对应的组件中。

6.根据权利要求5所述的方法,其特征在于,将所述待同步的数据属性同步至所述客户端本地与所述至少一个游戏组件对应的组件中包括:

查找所述客户端本地与所述至少一个游戏组件对应的组件;

触发查找到的组件中与所述待同步的数据属性对应的游戏系统在所述客户端本地执行所述待同步的数据属性的业务逻辑,对所述待同步的数据属性所在的游戏实体进行更新。

7.根据权利要求5所述的方法,其特征在于,所述方法还包括:

接收来自于所述服务器的计数组件所记录的所述待同步的数据属性的同步数据量,其中,所述计数组件为所述服务器的游戏实体中的新增组件;

将所述同步数据量同步至所述客户端本地对应的计数组件。

8.根据权利要求7所述的方法,其特征在于,在将所述同步数据量同步至所述客户端本地对应的计数组件之后,还包括:

在确定服务器与所述客户端之间的连接状态由异常中断状态恢复至正常连接状态的情况下,向所述服务器上报第一计数值,其中,所述第一计数值用于表示在所述连接状态进入异常中断状态之前,所述待同步的数据属性在所述客户端本地已更新完毕的数据量;

接收所述服务器下发的尚未更新的数据属性,并将所述尚未更新的数据属性同步至所述客户端本地对应的组件,其中,所述尚未更新的数据属性依据所述待同步的数据属性在所述客户端本地尚未完成更新的数据量来确定,所述客户端本地尚未完成更新的数据量利用第二计数值与所述第一计数值来确定,所述第二计数值为所述同步数据量。

9.一种游戏数据同步装置,其特征在于,包括:

获取模块,用于获取游戏实体中至少一个游戏组件的待同步的数据属性,其中,所述游戏实体基于游戏对象创建,所述游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储所述游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;

同步模块,用于将所述待同步的数据属性同步至客户端。

10.一种游戏数据同步装置,其特征在于,包括:

接收模块,用于接收来自于服务器的游戏实体中至少一个游戏组件的待同步的数据属性,其中,所述游戏实体基于游戏对象创建,所述游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储所述游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;

同步模块,用于将所述待同步的数据属性同步至客户端本地与所述至少一个游戏组件对应的组件中。

11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至4中任意一项所述的游戏数据同步方法或者权利要求5至8中任意一项所述的游戏数据同步方法。

12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至4中任意一项所述的游戏数据同步方法或者权利要求5至8中任意一项所述的游戏数据同步方法。

技术总结

本发明公开了一种游戏数据同步方法、装置、存储介质及处理器。该方法包括:获取游戏实体中至少一个游戏组件的待同步的数据属性,其中,游戏实体基于游戏对象创建,游戏实体包括多个游戏组件,每个游戏组件对应至少一个游戏系统,每个游戏组件分别用于存储游戏对象的不同数据属性,每个游戏系统用于执行对应游戏组件上至少一个数据属性的业务逻辑;将待同步的数据属性同步至客户端。本发明解决了相关技术中所采用的服务器与客户端之间的游戏数据同步方式,易造成服务器的运算负荷较重、需要向客户端广播的游戏数据量较大的技术问题。

技术研发人员:邢山虎;杨盼;韩剑伟

受保护的技术使用者:北京代码乾坤科技有限公司

技术研发日:.09.20

技术公布日:.01.03

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。