CN112657181A - 状态同步方法和装置 - Google Patents
状态同步方法和装置 Download PDFInfo
- Publication number
- CN112657181A CN112657181A CN202011515017.2A CN202011515017A CN112657181A CN 112657181 A CN112657181 A CN 112657181A CN 202011515017 A CN202011515017 A CN 202011515017A CN 112657181 A CN112657181 A CN 112657181A
- Authority
- CN
- China
- Prior art keywords
- state
- game
- predicted
- operation instruction
- synchronization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000012795 verification Methods 0.000 claims description 44
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种状态同步方法和装置,通过获取服务器发送的任一客户端对应的游戏角色当前帧的当前操作输入和当前状态,以根据获取的当前操作输入对游戏角色的后一帧的状态进行预测,并基于获取的当前状态对预先根据前一帧信息所预测的游戏角色的预测状态进行处理,从而实现游戏场景中游戏假设的状态同步。本方案中,可以基于游戏角色的操作信息进行其状态预测,自身可实现状态即时生效,提高体验感,且还可基于接收到的其他游戏角色的状态对预测的状态进行处理,避免现有技术中每次接收到其他游戏角色的输入信息均需要进行回滚处理所存在的复杂度高、实现难度高等问题。
Description
技术领域
本申请涉及终端游戏应用技术领域,具体而言,涉及一种状态同步方法和装置。
背景技术
在线游戏场景中,特别是大型多人在线游戏中,如何实现游戏场景中各个游戏角色的状态同步的问题尤为重要。目前现有技术中常用的处理方式包括,例如各个客户端将信息发送至服务器,由服务器进行统一处理,或者是直接基于场景模拟其他客户端的游戏角色状态,在接收到其他客户端发送的输入信息时,再将整个游戏进行回滚并修正游戏角色状态。
现有技术中所采用的技术方案,要么存在自身游戏角色状态难以即时生效的缺陷,体验性差,要么存在需要频繁进行回滚处理导致的复杂度高、实现难度高等问题。
发明内容
本申请的目的包括,例如,提供了一种状态同步方法和装置,其能够提高体验感且避免高复杂度的问题。
本申请的实施例可以这样实现:
第一方面,本申请提供一种状态同步方法,应用于包含多个客户端的同步系统中的任一客户端,各所述客户端与服务器通信连接,所述方法包括:
获取所述服务器发送的任一客户端对应的游戏角色当前帧的当前操作输入和当前状态;
根据获取的当前操作输入对所述游戏角色的后一帧的状态进行预测;
基于获取的当前状态对预先根据前一帧信息所预测的所述游戏角色的预测状态进行处理,以实现游戏场景中所述游戏角色的状态同步。
在可选的实施方式中,所述基于获取的当前状态对预先根据前一帧信息所预测的所述游戏角色的预测状态进行处理,以实现游戏场景中所述游戏角色的状态同步的步骤,包括:
比对获取的当前状态是否与预先根据前一帧信息所预测的所述游戏角色的预测状态相同;
若相同,则不作处理;
若不相同,则将所述游戏角色的预测状态修正为所述当前状态,以实现游戏场景中所述游戏角色的状态同步。
在可选的实施方式中,所述方法还包括:
在接收到操作指令时,根据所述操作指令生成自身游戏角色的预测状态,并将自身游戏角色的状态更改为所述预测状态;
将所述操作指令和所述预测状态发送至所述服务器,以使所述服务器根据所述操作指令对所述预测状态进行校验;
根据所述服务器反馈的校验结果对自身游戏角色状态进行处理。
在可选的实施方式中,所述根据所述服务器反馈的校验结果对自身游戏角色状态进行处理的步骤,包括:
在所述校验结果表明所述预测状态校验通过时,则生效更改为所述预测状态的自身游戏角色状态;
在所述校验结果表明所述预测状态校验未通过时,将自身游戏角色状态恢复为更改为所述预测状态之前的状态。
在可选的实施方式中,所述服务器中保存有各所述客户端对应的游戏角色的完整状态,所述完整状态包含从所述游戏角色进入游戏场景开始直至当前的所有状态信息;
所述方法还包括:
预先在进入所述游戏场景时,向所述服务器发送状态获取请求;
接收所述服务器基于所述状态获取请求所返回的所述游戏场景中各所述客户端对应的游戏角色的完整状态;
根据接收到的所述完整状态对当前游戏场景中对应游戏角色的状态进行更新。
第二方面,本申请提供一种状态同步方法,应用于与同步系统中包含的各个客户端通信的服务器,所述方法包括:
获取任一客户端发送的针对对应的游戏角色的操作指令,以及基于所述操作指令所预测的预测状态;
基于所述操作指令对所述预测状态进行校验,并在校验通过后将所述任一客户端的操作指令和所述预测状态在所述同步系统中进行广播,以使其他客户端基于所述操作指令和所述预测状态实现游戏场景中游戏角色的状态同步。
在可选的实施方式中,所述基于所述当前操作输入对所述预测状态进行校验的步骤,包括:
获取游戏场景中的场景对象信息;
根据所述操作指令和所述预测状态,获得对应的操作结果;
校验所述操作结果是否符合所述场景对象的设置规则,若符合,则判定所述预测状态校验通过。
在可选的实施方式中,所述基于所述当前操作输入对所述预测状态进行校验的步骤,包括:
获取所述操作指令的操作类型,并根据所述操作指令和所述预测状态获得对应的操作结果;
获得预先设置并保存的与所述操作类型对应的设定范围;
检测所述操作结果是否处于所述设定范围,若处于,则判定所述预测状态校验通过。
在可选的实施方式中,所述任一客户端当前的自身游戏角色更改为所述预测状态,所述方法还包括:
获取所述操作指令的操作类型,并根据所述操作指令和所述预测状态获得对应的操作结果;
获得预先设置并保存的与所述操作类型对应的设定范围;
检测所述操作结果是否处于所述设定范围,若处于,则判定所述预测状态校验通过。
第三方面,本申请提供一种状态同步装置,应用于包含多个客户端的同步系统中的任一客户端,各所述客户端与服务器通信连接,所述装置包括:
第一获取模块,用于获取所述服务器发送的任一客户端对应的游戏角色当前帧的当前操作输入和当前状态;
预测模块,用于根据获取的当前操作输入对所述游戏角色的后一帧的状态进行预测;
同步模块,用于基于获取的当前状态对预先根据前一帧信息所预测的所述游戏角色的预测状态进行处理,以实现游戏场景中所述游戏角色的状态同步。
第四方面,本申请提供一种状态同步装置,应用于与同步系统中包含的各个客户端通信的服务器,所述装置包括:
第二获取模块,用于获取任一客户端发送的针对对应的游戏角色的操作指令,以及基于所述操作指令所预测的预测状态;
校验模块,用于基于所述操作指令对所述预测状态进行校验,并在校验通过后将所述任一客户端的操作指令和所述预测状态在所述同步系统中进行广播,以使其他客户端基于所述操作指令和所述预测状态实现游戏场景中游戏角色的状态同步。
本申请实施例的有益效果包括,例如:
本申请提供一种状态同步方法和装置,通过获取服务器发送的任一客户端对应的游戏角色当前帧的当前操作输入和当前状态,以根据获取的当前操作输入对游戏角色的后一帧的状态进行预测,并基于获取的当前状态对预先根据前一帧信息所预测的游戏角色的预测状态进行处理,从而实现游戏场景中游戏假设的状态同步。本方案中,可以基于游戏角色的操作信息进行其状态预测,自身可实现状态即时生效,提高体验感,且还可基于接收到的其他游戏角色的状态对预测的状态进行处理,避免现有技术中每次接收到其他游戏角色的输入信息均需要进行回滚处理所存在的复杂度高、实现难度高等问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的状态同步方法的应用场景示意图;
图2为本申请实施例提供的状态同步方法的流程图;
图3为图2中步骤S130的子步骤的流程图;
图4为本申请实施例提供的状态同步方法中,预测状态检验方法的流程图;
图5为本申请实施例提供的状态同步方法中,完整状态获取方法的流程图;
图6为本申请实施例提供的状态同步方法的另一流程图;
图7为图6中步骤S420的子步骤的流程图;
图8为图6中步骤S420的子步骤的另一流程图;
图9为本申请实施例提供的状态同步装置的功能模块框图;
图10为本申请实施例提供的状态同步装置的另一功能模块框图;
图11为本申请实施例提供的电子设备的结构框图。
图标:100-客户端;110-状态同步装置;111-第一获取模块;112-预测模块;113-同步模块;114-第二获取模块;115-校验模块;120-存储器;130-处理器;140-通信单元;200-服务器。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
网络游戏同步协议属于应用层,依赖于传输层技术如TCP、UDP,或封装好的网络库。网络游戏同步自身不关心下层传输协议的细节,只关心传输协议的特性:是否保证顺序、是否会丢包等。现有技术中在实现网络游戏同步时,主要是采用以下几种方式实现:
一种方式是采用标准的C/S模式的状态同步方法,该方法是各个终端向服务端发送请求,由服务端处理之后将结果广播至各个终端。这种方法的安全性高,因为所有逻辑都在服务端中,并且复杂度低、实现简单。但是,存在的缺点是终端的输入不能即时生效,导致体验感差,且由于需要同步的数据量大,所有逻辑均在服务端处理,服务端的处理压力大。
另一种方式是采用帧锁定同步的方式,这种方式需要所有终端从同一初始状态开始,各个终端只发送自己的输入信息,各个终端在接收到其他终端的输入后,以接收到的输入模拟出相同的结果。这种方式则需要同步的数据量小,且复杂度低实现简单。但是安全性差,因此基本大部分的逻辑均在终端处理,而且在某个终端晚加入游戏时,因为各个终端只发送自己的输入,没有当前状态的概念,所以在有固定时长、参与人数较长的游戏场景下,晚加入的终端还可从初始状态开始,迅速处理从初始状态到所加入时的所有输入,以追赶上当前游戏状态。但是在多人大型在线游戏场景下,晚加入的终端难以同步其他终端的状态。并且,由于需要所有终端的输入都到达后再执行游戏逻辑,每个终端的实际游戏体验取决于网络延迟最高的那个终端,体验感差。
还有一种方式是帧锁定同步加客户端预测的结合方式,这种方式在各个终端在操控自己的角色时,输入可以即时生效,无需等待其他终端的输入到达,可直接模拟游戏(预测)。等其他终端的输入经过网络传输过来以后,再将整个游戏回退至之前的状态,重新应用其他终端的输入算出正确的结果,将预测的结果修正为正确结果。这种方式的优点是体验感好,网络延迟不再取决延迟最高的终端。但是,这种方式复杂度高、实现难度高。需要将游戏逻辑和渲染分离,游戏逻辑支持高效率步进和回滚,还需存储历史状态。
基于上述研究发现,本申请提供一种状态同步方案,以至少部分地改善上述现有技术中所存在的问题。
请参阅图1,为本申请实施例提供的状态同步方法的应用场景示意图,该应用场景中包含同步系统和服务器200,该同步系统包含多个客户端100,各个客户端100与服务器200通信连接,其中,同步系统中的各个客户端100可相互通信连接。服务器200可接收各个客户端100发送的消息、数据等,并对接收到的消息、数据进行处理,从而反馈给对应的客户端100,或者是在同步系统中进行广播以告知其他客户端100。
本实施例中,客户端100可以是,但不限于,智能手机、平板电脑、个人计算机、笔记本电脑等终端设备。本实施例中以用户通过客户端100进行游戏操作的场景为例进行说明。各个客户端100中可安装有相关的游戏应用程序,而服务器200可为该游戏应用程序的后台服务器。
可以理解,图1所示的场景仅为一种可行的示例,在其它可行的实施例中,该场景也可以仅包括图1所示组成部分的其中一部分或者还可以包括其它的组成部分。
图2示出了本申请实施例提供的状态同步方法的流程示意图,该状态同步方法可由图1中所示的任一客户端100执行。
应当理解,在其它实施例中,本实施例的状态同步方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该状态同步方法的详细步骤介绍如下。
步骤S110,获取所述服务器200发送的任一客户端100对应的游戏角色当前帧的当前操作输入和当前状态。
步骤S120,根据获取的当前操作输入对所述游戏角色的后一帧的状态进行预测。
步骤S130,基于获取的当前状态对预先根据前一帧信息所预测的所述游戏角色的预测状态进行处理,以实现游戏场景中所述游戏角色的状态同步。
本实施例中,用户可在所持的客户端100上登录游戏账户以进入游戏场景,在进入游戏场景后,用户可对自身的游戏角色进行操控,例如控制游戏角色前进、奔跑、跳跃等。在多人大型在线游戏场景中,往往存在多个游戏角色,各个游戏角色由对应的用户通过其客户端100进行操控。因此,针对各个用户而言,需要在自身客户端100同步其他游戏角色的状态,从而在自身的客户端100呈现游戏场景中准确的全局状态,以便于确定对自身游戏角色的操控等动作。
而实施时,在某个用户需要对自身的游戏角色进行操控时,可能此时并未获得其他客户端100的游戏角色的最新状态,因此,该用户对应的客户端100仅能通过其他客户端100的游戏角色之前的状态或之前的输入,预测出其最新的状态,从而基于预测出的其他游戏角色的最新状态以确定对其自身游戏角色的操控。
在此基础上,其他客户端100的游戏角色的操作信息和状态信息在通过服务器200的处理之后,将转发至同步系统中的各个客户端100。因此,对于某个客户端100而言,虽然自身之前已预测了其他客户端100的游戏角色的状态,但是其他客户端100的实际的当前状态最终会通过服务器200转发到自身。
其中,服务器200转发到自身的信息包含有其他客户端100的游戏角色的当前帧的当前操作输入和当前状态。所谓的当前操作输入即为针对游戏角色的最新的操控,例如,控制其游戏角色奔跑、跳跃等操控,而当前状态即为基于其游戏角色当前真实的状态。
因此,自身在接收到服务器200转发的其他游戏角色的当前操作输入后,可以根据获取的当前操作输入对其他游戏角色的后一帧的状态进行预测,而该预测的状态可以用于呈现在自身客户端100的后一帧的游戏场景中,作为对其自身的游戏角色的操控的参考。
此外,由上述可知,自身在之前是基于其他客户端100之前的状态或输入对其他游戏角色进行了状态预测的,因此,在其他客户端100的真实的状态到来时,则可以基于获取的其他游戏角色的当前状态对预先根据前一帧信息所预测的游戏角色的预测状态进行处理。从而保障最终游戏场景中各个游戏角色的状态均为其真实的状态。
本实施例中,可以基于游戏角色的操作信息进行其状态预测,自身可实现状态即时生效的目的,提高体验感。并且,还可基于接收到的其他有效角色的状态对预测的状态进行处理,避免现有技术中每次接收到其他游戏角色的输入信息均需要进行回滚处理所存在的复杂度高、实现难度高等问题。
在本实施例中,由上述可知,自身在接收到其他游戏角色的当前状态时,可以根据该当前状态对自身所对应游戏角色进行预测的状态进行处理,而该步骤可以通过以下方式实现,请参阅图3:
步骤S131,比对获取的当前状态是否与预先根据前一帧信息所预测的所述游戏角色的预测状态相同,若相同,则执行以下步骤S132,若不相同,则执行以下步骤S133。
步骤S132,不作处理。
步骤S133,将所述游戏角色的预测状态修正为所述当前状态,以实现游戏场景中所述游戏角色的状态同步。
在本实施例中,各个客户端100对其他客户端100的游戏角色的预测多数情况下是准确的,例如,若某个其他游戏角色的之前的操作是前进一步,则可以很容易地预测到该操作可使该游戏角色向前行进的距离,或者某个其他游戏角色放出一个技能,则可以很容易地预测到该技能可触发的效果。也即,通过其他角色的之前的状态可以较为准确地预测出其后续的状态。
基于此,本实施例中,采用接收其他客户端100的游戏角色的当前状态从而对自身对其的预测状态进行修正的方式。而现有技术中所采用的方式是,预先对其他游戏角色的状态进行预测,并在接收到其他游戏角色的真实输入将整个游戏回退到之前的状态,再重新应用其他游戏角色的输入算出正确的状态,将预测的状态修正为该正确状态。现有技术中采用的该种方式,在游戏过程中需要进行多次回滚处理,处理的复杂度高。
本实施例中,采用基于接收到的当前状态对预测状态进行修正的方式,仅仅在预测状态与接收到的当前状态不相同时才进行处理,可以保障较高的准确率的情况下,且可以避免复杂度高的问题。
本实施例中,针对某个客户端100而言,在进行游戏操控时,需要对其他游戏角色的状态进行预测从而进行状态同步,同时,对于自身的游戏角色而言,自身对游戏角色的操控需要进行服务器200的校验,以避免在游戏场景中存在作弊的行为。基于此考虑,请参阅图4,本实施例所提供的状态同步方法还包括以下步骤:
步骤S210,在接收到操作指令时,根据所述操作指令生成自身游戏角色的预测状态,并将自身游戏角色的状态更改为所述预测状态。
步骤S220,将所述操作指令和所述预测状态发送至所述服务器200,以使所述服务器200根据所述操作指令对所述预测状态进行校验。
步骤S230,根据所述服务器200反馈的校验结果对自身游戏角色状态进行处理。
本实施例中,用户可以通过客户端100对游戏角色发出操控,客户端100可以根据用户所发出的操作指令生成自身游戏角色的预测状态,例如,在操作指令为前进一步时,预测状态可以是具体前进一定距离后的状态,如一米或十米等。并且,将自身游戏角色的状态更改为该预测状态。
但是,客户端100自身所生成的预测状态可能并不合理,例如,若操作指令为前进一步,则预测游戏角色可前进一米的距离相对合理,但是若预测游戏角色可前进十米,则该预测在不合理的范围。因此,本实施例中,各个客户端100在对自身的游戏角色进行状态预测后,还需将操作指令和预测状态发送至服务器200,由服务器200根据操作指令对预测状态进行校验。
服务器200在接收到客户端100发送的操作指令和预测状态后,可以基于操作指令对预测状态进行校验,并在校验通过后将该客户端100的操作指令和预测状态在同步系统中进行广播,以告知其他的客户端100。而其他的客户端100在获得该客户端100的操作指令和预测状态后,即可基于获得的信息按上述方式进行游戏场景中状态的同步。
可选地,本实施例中,服务器200可对客户端100的预测状态进行校验时,主要对该预测状态的合理性和正确性进行校验。其中,作为一种可能的实现方式,服务器200可以通过以下方式对预测状态的正确性进行校验:
服务器200可获取游戏场景中的场景对象信息,根据上述操作指令和预测状态,获得对应的操作结果,校验该操作结果是否符合场景对象的设置规则,若符合,则判定预测状态校验通过。
其中,场景对象可包括游戏场景中的如树木、墙面、水面、天空等对象,而场景对象信息可包括如树木、墙面等的位置、水面的位置和面积等、天空的位置等。
基于操作指令和预测状态得到的操作结果可以理解为操作指令触发的行为,基于该行为可使游戏角色的状态更改为预测状态。例如,若操作指令为前进一步,而操作结果可为在该操作指令下的具体行进操作,如行进的距离、行进的方向等,而预测状态即为经过该具体的行为操作后到达的状态。
可选地,校验操作结果是否符合场景对象的设置规则,例如,若表明在该行进的方向上存在障碍物,如树木或墙面,但是,基于操作结果和预测状态却显示游戏角色穿越了该障碍物,则表明该预测状态是不准确的。而若操作结果和预测状态是符合场景对象的设置规则的,可确定该预测状态校验通过。
此外,在另一种实现方式中,服务器200可通过以下方式对预测状态的合理性进行校验:
服务器200可获取操作指令的操作类型,并根据操作指令和预测状态获得对应的操作结果,获得预先设置并保存的与操作类型对应的设定范围,检测操作结果是否处于设定范围,若处于,则判定预测状态校验通过。
在本实施例中,例如操作指令可为控制游戏角色前进一步,而操作结果可为具体触发的前进距离,例如可为一米或十米等。在操作指令为该类的行进指令时,则可以获得预先设置的相关行进距离的设定范围。例如,若行进一步的距离为一米,可在该设定范围内,可以确定预测状态是合理的,即校验通过。而若行进一步的距离为十米,则超出了设定范围,可以确定预测状态是不合理的,即校验不通过。
服务器200在通过以上方式对预测状态进行校验后,可将校验结果反馈给客户端100。客户端100在接收到服务器200反馈的校验结果后,可对自身游戏角色状态进行处理。
可选地,若校验结果表明客户端100的预测状态校验通过时,由上述可知,客户端100在得到预测状态时,已将自身游戏角色的状态更改为该预测状态,因此,可生效更改为预测状态的自身游戏角色状态。而若校验结果表明客户端100的预测状态校验未通过时,可将自身游戏角色状态恢复为更改为预测状态之前的状态。
如此,通过以上方式,可避免某个客户端100的用户在游戏过程中存在的作弊的行为,保障游戏过程中的公平性。
本实施例中,还考虑到某些客户是在游戏已进行一段时间才加入到游戏中,为了避免这些用户难以同步到其他游戏角色的状态,因此,在本实施例中,服务器200中还保存有各个客户端100对应的游戏角色的完整状态,该完整状态包含从游戏角色进入游戏场景开始直至当前的所有状态信息。基于此,请参阅图5,本实施例提供的状态同步方法还包括以下步骤:
步骤S310,预先在进入所述游戏场景时,向所述服务器200发送状态获取请求。
步骤S320,接收所述服务器200基于所述状态获取请求所返回的所述游戏场景中各所述客户端100对应的游戏角色的完整状态。
步骤S330,根据接收到的所述完整状态对当前游戏场景中对应游戏角色的状态进行更新。
针对各个客户端100而言,若该客户端100进入游戏场景时,游戏已进行一段时间,则该客户端100可向服务器200发送请求以获取游戏场景中当前其他客户端100的完整状态。如此,对于后加入游戏的用户,则可以根据服务器200所保存的完整状态,从而即使在后加入的情形下,也可以准确同步到其他客户端100的状态,实现游戏场景中游戏角色状态的同步。
本申请实施例还提供一种应用于上述服务器200的状态同步方法,请参阅图6,为该状态同步方法的流程示意图。应当理解,在其它实施例中,本实施例的状态同步方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该状态同步方法的详细步骤介绍如下。
步骤S410,获取任一客户端100发送的针对对应的游戏角色的操作指令,以及基于所述操作指令所预测的预测状态。
步骤S420,基于所述操作指令对所述预测状态进行校验,并在校验通过后将所述任一客户端100的操作指令和所述预测状态在所述同步系统中进行广播,以使其他客户端100基于所述操作指令和所述预测状态实现游戏场景中游戏角色的状态同步。
本实施例中,服务器200可以基于各个客户端100的操作指令对其预测的状态的进行校验,并在校验通过的情况下,广播至其他的客户端100,从而使其他的客户端100可以实现对游戏场景中的状态的同步。
本实施例中的状态同步方法的未详尽之处,可参见上述应用于任一客户端100的状态同步方法的相关描述,本实施例在此不作赘述。
作为一种可能的实现方式,请参阅图7,本实施例中,服务器200可以通过以下方式对客户端100的预测状态进行校验:
步骤S421,获取游戏场景中的场景对象信息。
步骤S422,根据所述操作指令和所述预测状态,获得对应的操作结果。
步骤S423,校验所述操作结果是否符合所述场景对象的设置规则,若符合,则判定所述预测状态校验通过。
本实施例中,服务器200可以结合游戏场景中的场景对象信息,从而校验客户端100的预测状态是否正确,以避免用户在游戏过程中的作弊现象。
此外,作为另一种可能的实现方式,请参阅图8,本实施例中,服务器200还可通过以下方式对客户端100的预测状态进行校验:
步骤S424,获取所述操作指令的操作类型,并根据所述操作指令和所述预测状态获得对应的操作结果。
步骤S425,获得预先设置并保存的与所述操作类型对应的设定范围。
步骤S426,检测所述操作结果是否处于所述设定范围,若处于,则判定所述预测状态校验通过。
本实施例中,服务器200还可结合预先所设置的设定范围从而对预测状态的合理性进行校验。
进一步地,上述客户端100得到预测状态后,即将自身游戏角色更改为该预测状态,而在经过服务器200的校验后,若预测状态的校验未通过,服务器200可控制上述客户端100将自身游戏角色的状态恢复为更改为该预测状态之前的状态。
需要说明的是,本实施例中的未详尽之处,可以参见上述实施例的描述,本实施例在此不作赘述。
此外,为了对本申请提供的状态同步方法进行更为清楚的描述,以下示意性示出该状态同步方法的实现伪代码:
如图9所示,为本申请实施例提供的应用于上述客户端100的状态同步装置110的功能模块框图。所述装置包括第一获取模块111、预测模块112和同步模块113。
第一获取模块111,用于获取所述服务器200发送的任一客户端100对应的游戏角色当前帧的当前操作输入和当前状态。
在本实施例中,关于第一获取模块111的描述具体可参考对图2所示的步骤S110的详细描述,即步骤S110可以由第一获取模块111执行。
预测模块112,用于根据获取的当前操作输入对所述游戏角色的后一帧的状态进行预测。
在本实施例中,关于预测模块112的描述具体可参考对图2所示的步骤S120的详细描述,即步骤S120可以由预测模块112执行。
同步模块113,用于基于获取的当前状态对预先根据前一帧信息所预测的所述游戏角色的预测状态进行处理,以实现游戏场景中所述游戏角色的状态同步。
在本实施例中,关于同步模块113的描述具体可参考对图2所示的步骤S130的详细描述,即步骤S130可以由同步模块113执行。
在一种可能的实现方式中,上述同步模块113可通过以下方式对预测状态进行处理:
比对获取的当前状态是否与预先根据前一帧信息所预测的所述游戏角色的预测状态相同;
若相同,则不作处理;
若不相同,则将所述游戏角色的预测状态修正为所述当前状态,以实现游戏场景中所述游戏角色的状态同步。
在一种可能的实现方式中,上述状态同步装置110还包括生成模块,该生成模块用于:
在接收到操作指令时,根据所述操作指令生成自身游戏角色的预测状态,并将自身游戏角色的状态更改为所述预测状态;
将所述操作指令和所述预测状态发送至所述服务器200,以使所述服务器200根据所述操作指令对所述预测状态进行校验;
根据所述服务器200反馈的校验结果对自身游戏角色状态进行处理。
在一种可能的实现方式中,上述生成模块具体可以用于:
在所述校验结果表明所述预测状态校验通过时,则生效更改为所述预测状态的自身游戏角色状态;
在所述校验结果表明所述预测状态校验未通过时,将自身游戏角色状态恢复为更改为所述预测状态之前的状态。
在一种可能的实现方式中,所述服务器200中保存有各所述客户端100对应的游戏角色的完整状态,所述完整状态包含从所述游戏角色进入游戏场景开始直至当前的所有状态信息,上述状态同步装置110还包括请求模块,该请求模块用于:
预先在进入所述游戏场景时,向所述服务器200发送状态获取请求;
接收所述服务器200基于所述状态获取请求所返回的所述游戏场景中各所述客户端100对应的游戏角色的完整状态;
根据接收到的所述完整状态对当前游戏场景中对应游戏角色的状态进行更新。
如图10所示,为本申请实施例提供的应用于上述服务器200的状态同步装置110的功能模块框图。所述装置包括第二获取模块114和校验模块115。
第二获取模块114,用于获取任一客户端100发送的针对对应的游戏角色的操作指令,以及基于所述操作指令所预测的预测状态。
在本实施例中,关于第二获取模块114的描述具体可参考对图6所示的步骤S410的详细描述,即步骤S410可以由第二获取模块114执行。
校验模块115,用于基于所述操作指令对所述预测状态进行校验,并在校验通过后将所述任一客户端100的操作指令和所述预测状态在所述同步系统中进行广播,以使其他客户端100基于所述操作指令和所述预测状态实现游戏场景中游戏角色的状态同步。
在本实施例中,关于校验模块115的描述具体可参考对图6所示的步骤S420的详细描述,即步骤S420可以由校验模块115执行。
在一种可能的实现方式中,上述校验模块115可以用于通过以下方式对预测状态进行校验:
获取游戏场景中的场景对象信息;
根据所述操作指令和所述预测状态,获得对应的操作结果;
校验所述操作结果是否符合所述场景对象的设置规则,若符合,则判定所述预测状态校验通过。
在一种可能的实现方式中,上述校验模块115还可以用于通过以下方式对预测状态进行校验:
获取所述操作指令的操作类型,并根据所述操作指令和所述预测状态获得对应的操作结果;
获得预先设置并保存的与所述操作类型对应的设定范围;
检测所述操作结果是否处于所述设定范围,若处于,则判定所述预测状态校验通过。
在一种可能的实现方式中,所述任一客户端100当前的自身游戏角色更改为所述预测状态,上述校验模块115具体还可以用于:
在所述预测状态校验未通过时,控制所述任一客户端100将自身游戏角色的状态恢复为更改为所述预测状态之前的状态。
如图11所示,本申请实施例还提供一种电子设备,该电子设备可为上述的客户端100或服务器200。该电子设备包括状态同步装置110、存储器120、处理器130以及通信单元140。
所述存储器120、处理器130以及通信单元140各元件相互之间直接或间接地电性连接,以实现信息的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器120中存储有以软件或固件(Firmware)的形式存储于所述存储器120中的软件功能模块,所述处理器130通过运行存储在存储器120内的软件程序以及模块,如本申请实施例中的状态同步装置110,从而执行各种功能应用以及数据处理,即实现本申请实施例中的状态同步方法。
其中,所述存储器120可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器120用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。所述通信单元140用于建立电子设备与其他外部设备之间的通信。
所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、网络处理器(Network Processor,NP)等。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器130也可以是任何常规处理器等。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器130运行时执行上述状态同步方法的步骤。
综上所述,本申请提供一种状态同步方法和装置,通过获取服务器200发送的任一客户端100对应的游戏角色当前帧的当前操作输入和当前状态,以根据获取的当前操作输入对游戏角色的后一帧的状态进行预测,并基于获取的当前状态对预先根据前一帧信息所预测的游戏角色的预测状态进行处理,从而实现游戏场景中游戏假设的状态同步。本方案中,可以基于游戏角色的操作信息进行其状态预测,自身可实现状态即时生效,提高体验感,且还可基于接收到的其他游戏角色的状态对预测的状态进行处理,避免现有技术中每次接收到其他游戏角色的输入信息均需要进行回滚处理所存在的复杂度高、实现难度高等问题。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种状态同步方法,其特征在于,应用于包含多个客户端的同步系统中的任一客户端,各所述客户端与服务器通信连接,所述方法包括:
获取所述服务器发送的任一客户端对应的游戏角色当前帧的当前操作输入和当前状态;
根据获取的当前操作输入对所述游戏角色的后一帧的状态进行预测;
基于获取的当前状态对预先根据前一帧信息所预测的所述游戏角色的预测状态进行处理,以实现游戏场景中所述游戏角色的状态同步。
2.根据权利要求1所述的状态同步方法,其特征在于,所述基于获取的当前状态对预先根据前一帧信息所预测的所述游戏角色的预测状态进行处理,以实现游戏场景中所述游戏角色的状态同步的步骤,包括:
比对获取的当前状态是否与预先根据前一帧信息所预测的所述游戏角色的预测状态相同;
若相同,则不作处理;
若不相同,则将所述游戏角色的预测状态修正为所述当前状态,以实现游戏场景中所述游戏角色的状态同步。
3.根据权利要求1所述的状态同步方法,其特征在于,所述方法还包括:
在接收到操作指令时,根据所述操作指令生成自身游戏角色的预测状态,并将自身游戏角色的状态更改为所述预测状态;
将所述操作指令和所述预测状态发送至所述服务器,以使所述服务器根据所述操作指令对所述预测状态进行校验;
根据所述服务器反馈的校验结果对自身游戏角色状态进行处理。
4.根据权利要求3所述的状态同步方法,其特征在于,所述根据所述服务器反馈的校验结果对自身游戏角色状态进行处理的步骤,包括:
在所述校验结果表明所述预测状态校验通过时,则生效更改为所述预测状态的自身游戏角色状态;
在所述校验结果表明所述预测状态校验未通过时,将自身游戏角色状态恢复为更改为所述预测状态之前的状态。
5.根据权利要求1所述的状态同步方法,其特征在于,所述服务器中保存有各所述客户端对应的游戏角色的完整状态,所述完整状态包含从所述游戏角色进入游戏场景开始直至当前的所有状态信息;
所述方法还包括:
预先在进入所述游戏场景时,向所述服务器发送状态获取请求;
接收所述服务器基于所述状态获取请求所返回的所述游戏场景中各所述客户端对应的游戏角色的完整状态;
根据接收到的所述完整状态对当前游戏场景中对应游戏角色的状态进行更新。
6.一种状态同步方法,其特征在于,应用于与同步系统中包含的各个客户端通信的服务器,所述方法包括:
获取任一客户端发送的针对对应的游戏角色的操作指令,以及基于所述操作指令所预测的预测状态;
基于所述操作指令对所述预测状态进行校验,并在校验通过后将所述任一客户端的操作指令和所述预测状态在所述同步系统中进行广播,以使其他客户端基于所述操作指令和所述预测状态实现游戏场景中游戏角色的状态同步。
7.根据权利要求6所述的状态同步方法,其特征在于,所述基于所述操作指令对所述预测状态进行校验的步骤,包括:
获取游戏场景中的场景对象信息;
根据所述操作指令和所述预测状态,获得对应的操作结果;
校验所述操作结果是否符合所述场景对象的设置规则,若符合,则判定所述预测状态校验通过。
8.根据权利要求6所述的状态同步方法,其特征在于,所述基于所述操作指令对所述预测状态进行校验的步骤,包括:
获取所述操作指令的操作类型,并根据所述操作指令和所述预测状态获得对应的操作结果;
获得预先设置并保存的与所述操作类型对应的设定范围;
检测所述操作结果是否处于所述设定范围,若处于,则判定所述预测状态校验通过。
9.根据权利要求6所述的状态同步方法,其特征在于,所述任一客户端当前的自身游戏角色更改为所述预测状态,所述方法还包括:
获取所述操作指令的操作类型,并根据所述操作指令和所述预测状态获得对应的操作结果;
获得预先设置并保存的与所述操作类型对应的设定范围;
检测所述操作结果是否处于所述设定范围,若处于,则判定所述预测状态校验通过。
10.一种状态同步装置,其特征在于,应用于包含多个客户端的同步系统中的任一客户端,各所述客户端与服务器通信连接,所述装置包括:
第一获取模块,用于获取所述服务器发送的任一客户端对应的游戏角色当前帧的当前操作输入和当前状态;
预测模块,用于根据获取的当前操作输入对所述游戏角色的后一帧的状态进行预测;
同步模块,用于基于获取的当前状态对预先根据前一帧信息所预测的所述游戏角色的预测状态进行处理,以实现游戏场景中所述游戏角色的状态同步。
11.一种状态同步装置,其特征在于,应用于与同步系统中包含的各个客户端通信的服务器,所述装置包括:
第二获取模块,用于获取任一客户端发送的针对对应的游戏角色的操作指令,以及基于所述操作指令所预测的预测状态;
校验模块,用于基于所述操作指令对所述预测状态进行校验,并在校验通过后将所述任一客户端的操作指令和所述预测状态在所述同步系统中进行广播,以使其他客户端基于所述操作指令和所述预测状态实现游戏场景中游戏角色的状态同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011515017.2A CN112657181B (zh) | 2020-12-21 | 2020-12-21 | 状态同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011515017.2A CN112657181B (zh) | 2020-12-21 | 2020-12-21 | 状态同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112657181A true CN112657181A (zh) | 2021-04-16 |
CN112657181B CN112657181B (zh) | 2024-09-10 |
Family
ID=75406615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011515017.2A Active CN112657181B (zh) | 2020-12-21 | 2020-12-21 | 状态同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112657181B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07213744A (ja) * | 1994-01-27 | 1995-08-15 | Namco Ltd | ゲームシステムおよびマルチプレーヤシステムにおける共通表示体の制御方法 |
JP2006320502A (ja) * | 2005-05-18 | 2006-11-30 | Namco Bandai Games Inc | プログラム、情報記憶媒体及びゲーム装置 |
CN101065171A (zh) * | 2004-11-26 | 2007-10-31 | 世嘉股份有限公司 | 信息处理装置、数据处理方法、程序及记录介质 |
US20130172079A1 (en) * | 2011-12-28 | 2013-07-04 | Eugene Ivanov | Client-Server Gaming |
CN103701918A (zh) * | 2013-12-31 | 2014-04-02 | 北京像素软件科技股份有限公司 | 客户端和服务器同步方法和装置 |
JP2015131041A (ja) * | 2014-01-15 | 2015-07-23 | 株式会社コナミデジタルエンタテインメント | ゲーム装置、ゲームシステム及びプログラム |
CN105025061A (zh) * | 2014-04-29 | 2015-11-04 | 中国电信股份有限公司 | 构建云端共享游戏场景的方法与服务器 |
CN105498210A (zh) * | 2015-12-11 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 用于游戏应用的安全校验方法和装置及系统 |
CN106390456A (zh) * | 2016-09-30 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 游戏中角色行为的生成方法和装置 |
CN108159691A (zh) * | 2017-12-06 | 2018-06-15 | 北京像素软件科技股份有限公司 | 游戏状态同步方法及系统 |
CN108379832A (zh) * | 2018-01-29 | 2018-08-10 | 珠海金山网络游戏科技有限公司 | 一种游戏同步方法和装置 |
CN110769904A (zh) * | 2018-05-09 | 2020-02-07 | 腾讯科技(深圳)有限公司 | 输出内容处理方法、输出方法、电子设备及存储介质 |
CN110812836A (zh) * | 2019-10-31 | 2020-02-21 | 广州市网星信息技术有限公司 | 一种游戏的同步方法、装置、计算机设备和存储介质 |
JP6748281B1 (ja) * | 2019-12-10 | 2020-08-26 | 株式会社Cygames | サーバ、処理システム、処理方法及びプログラム |
US20200289937A1 (en) * | 2019-03-15 | 2020-09-17 | Sony Interactive Entertainment Inc. | Systems and methods for predicting states by using a distributed game engine |
CN111790155A (zh) * | 2020-07-07 | 2020-10-20 | 广州趣丸网络科技有限公司 | 一种网络游戏状态同步方法、装置、终端及存储介质 |
-
2020
- 2020-12-21 CN CN202011515017.2A patent/CN112657181B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07213744A (ja) * | 1994-01-27 | 1995-08-15 | Namco Ltd | ゲームシステムおよびマルチプレーヤシステムにおける共通表示体の制御方法 |
CN101065171A (zh) * | 2004-11-26 | 2007-10-31 | 世嘉股份有限公司 | 信息处理装置、数据处理方法、程序及记录介质 |
JP2006320502A (ja) * | 2005-05-18 | 2006-11-30 | Namco Bandai Games Inc | プログラム、情報記憶媒体及びゲーム装置 |
US20130172079A1 (en) * | 2011-12-28 | 2013-07-04 | Eugene Ivanov | Client-Server Gaming |
CN103701918A (zh) * | 2013-12-31 | 2014-04-02 | 北京像素软件科技股份有限公司 | 客户端和服务器同步方法和装置 |
JP2015131041A (ja) * | 2014-01-15 | 2015-07-23 | 株式会社コナミデジタルエンタテインメント | ゲーム装置、ゲームシステム及びプログラム |
CN105025061A (zh) * | 2014-04-29 | 2015-11-04 | 中国电信股份有限公司 | 构建云端共享游戏场景的方法与服务器 |
CN105498210A (zh) * | 2015-12-11 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 用于游戏应用的安全校验方法和装置及系统 |
CN106390456A (zh) * | 2016-09-30 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 游戏中角色行为的生成方法和装置 |
CN108159691A (zh) * | 2017-12-06 | 2018-06-15 | 北京像素软件科技股份有限公司 | 游戏状态同步方法及系统 |
CN108379832A (zh) * | 2018-01-29 | 2018-08-10 | 珠海金山网络游戏科技有限公司 | 一种游戏同步方法和装置 |
CN110769904A (zh) * | 2018-05-09 | 2020-02-07 | 腾讯科技(深圳)有限公司 | 输出内容处理方法、输出方法、电子设备及存储介质 |
US20200289937A1 (en) * | 2019-03-15 | 2020-09-17 | Sony Interactive Entertainment Inc. | Systems and methods for predicting states by using a distributed game engine |
CN110812836A (zh) * | 2019-10-31 | 2020-02-21 | 广州市网星信息技术有限公司 | 一种游戏的同步方法、装置、计算机设备和存储介质 |
JP6748281B1 (ja) * | 2019-12-10 | 2020-08-26 | 株式会社Cygames | サーバ、処理システム、処理方法及びプログラム |
CN111790155A (zh) * | 2020-07-07 | 2020-10-20 | 广州趣丸网络科技有限公司 | 一种网络游戏状态同步方法、装置、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
张渊;陶道;余小清;万旺根;: "数据预测技术及其在网络游戏中的应用", 计算机应用, no. 07, 1 July 2007 (2007-07-01), pages 243 - 246 * |
Also Published As
Publication number | Publication date |
---|---|
CN112657181B (zh) | 2024-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8753183B2 (en) | Techniques to automatically provide assistance for electronic games | |
US11631408B2 (en) | Method for controlling data, device, electronic equipment and computer storage medium | |
CN108159691A (zh) | 游戏状态同步方法及系统 | |
EP3807766A1 (en) | Shadow tracking of real-time interactive simulations for complex system analysis | |
CN111711655A (zh) | 一种基于区块链的电子数据存证方法、系统、存储介质及终端 | |
CN107970603A (zh) | 游戏方法、客户端、服务端、游戏主机、设备和存储介质 | |
CN113824977B (zh) | 直播间虚拟礼物赠送方法、系统、装置、设备及存储介质 | |
CN110930254A (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
CN111569436A (zh) | 基于直播观战中互动的处理方法、装置及设备 | |
CN109618226B (zh) | 视频审核方法、装置、电子设备及存储介质 | |
CN115955590A (zh) | 视频处理方法、装置、计算机设备、介质 | |
CN109413455B (zh) | 一种用于语音连麦互动的用户信息显示方法及装置 | |
CN112657181B (zh) | 状态同步方法和装置 | |
CN116570928A (zh) | 一种基于nft的信息处理方法、装置和服务器 | |
CN111314403B (zh) | 资源一致性的校验方法和装置 | |
CN110719493A (zh) | 弹幕显示方法、装置、电子设备及可读存储介质 | |
CN115529099A (zh) | 一种整车域控制器校时方法、装置、设备及存储介质 | |
CN114936356A (zh) | 身份验证方法、装置、设备以及计算机存储介质 | |
CN114928739A (zh) | 3d显示方法、装置及存储介质 | |
CN112671793B (zh) | 区块链中确定证实节点的方法、装置及相关产品 | |
CN117046102B (zh) | 一种游戏中对象坐标的同步方法、装置、设备及介质 | |
CN114470748B (zh) | 用于虚拟场景的对象控制方法、装置、设备及存储介质 | |
CN115268740B (zh) | 虚拟角色抽取方法、装置、电子设备及可读存储介质 | |
CN114489408B (zh) | 动画处理系统、方法、设备及存储介质 | |
CN114463528B (zh) | 目标视角播放方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |