一种高效网络同步方法、装置及系统制造方法及图纸

技术编号:28955046 阅读:16 留言:0更新日期:2021-06-23 08:49
本发明专利技术提供一种高效网络同步方法、装置及系统,对于主动方所属的第一客户端,其玩家输入的控制指令中操作动作执行时的第一逻辑帧晚于当前逻辑帧,因此通过当前逻辑帧驱动其逻辑层执行该操作动作,即可实现主动方操作动作的预计算。另外,将该第一控制指令上传至服务器后,服务器则对该第一控制指令响应产生下发给各客户端的第二控制指令,一旦第二控制指令中的第二逻辑帧晚于第一逻辑帧,则主动方所属的第一客户端通过第二逻辑帧驱动其逻辑层执行由上一关键逻辑帧至第二逻辑帧范围内所有控制指令内的操作动作,以此实现所有客户端的同步,其中关键帧是指验证通过的逻辑帧。

【技术实现步骤摘要】
一种高效网络同步方法、装置及系统
本专利技术涉及计算机
,更具体地说,涉及一种高效网络同步方法、装置及系统。
技术介绍
随着网络游戏的发展,即时战斗类游戏越来越受大众欢迎。在网络传输的时候,特别是手机网络,延迟现象是很普遍的,如不能完美的解决游戏同步问题,就不能给玩家提供酣畅淋漓的游戏体验。现阶段处理同步问题主要有状态同步和帧同步两种方式。其中,状态同步是将所有的逻辑交给服务器计算,并通知给客户端进行表现。状态同步的好处是逻辑一定是一致的,因为计算都在服务器,确保了游戏的防外挂能力,如传奇、征途、天龙八部等都是状态同步。而帧同步主要是基于LockStep的技术,服务器只转发游戏操作的指令,所有逻辑客户端完成,且所有客户端每一帧的每一个逻辑必须是一致的。这种同步方案能完美的解决复杂的战斗逻辑同步问题,所需同步的数据也相对较少,如王者荣耀、魔兽争霸都是这种同步方案。但是,状态同步中同步所有的操作都需要服务器返回,非常依赖网络延迟,且服务器计算压力、网络数据同步量都非常大,客户端表现能力也非常有限。而帧同步所有逻辑都是客户端完成的,这导致反外挂能力非常糟糕,并且,为了优化lockstep的不锁定问题,逻辑帧需要服务器同步,核心逻辑仍旧需要服务器回包才能执行,所以也有一定的延迟依赖。
技术实现思路
有鉴于此,为解决上述问题,本专利技术提供一种高效网络同步方法、装置及系统,技术方案如下:本专利技术一方面提供一种高效网络同步方法,所述方法应用于玩家角色属于主动方的第一客户端,所述方法包括:接收玩家输入的第一控制指令,所述第一控制指令中包含针对相应玩家角色的操作动作、以及所述操作动作执行时的第一逻辑帧,所述第一逻辑帧的时间晚于所述第一客户端的当前逻辑帧;通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层执行所述操作动作,同时,将所述第一控制指令上传至服务器;接收所述服务器基于所述第一控制指令所下发的第二控制指令,所述第二控制指令中包含驱动所述服务器和第二客户端执行所述操作动作的第二逻辑帧,所述第二客户端所对应的玩家角色属于被动方,所述第二逻辑帧的时间不早于所述第一逻辑帧;如果所述第二逻辑帧的时间等于所述第一逻辑帧,则将所述第一逻辑帧确定为关键逻辑帧;如果所述第二逻辑帧的时间晚于所述第一逻辑帧,调取距离所述第一客户端的当前逻辑帧最近的一个目标关键逻辑帧,并通过所述第二逻辑帧驱动所述第一客户端的逻辑层执行由所述目标关键逻辑帧至所述第二逻辑帧范围内所有控制指令内的操作动作。优选的,所述操作动作包括用于指示玩家角色位置改变的第一动作;所述通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层执行所述操作动作,包括:对相应玩家角色进行航位预测,以修正所述第一动作对应的位置改变程度;通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层执行修正后的所述第一动作。优选的,所述操作动作包括用于指示释放目标技能的第二动作,所述目标技能的释放效果是随机的;所述通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层执行所述操作动作,包括:调取随机种子,所述随机种子是所述服务器预先在指定逻辑帧下向所述第一客户端和所述第二客户端下发的;通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层按照所述随机种子的随机结果执行所述第二动作。优选的,所述方法还包括:控制所述第一客户端的逻辑层将其所执行操作动作的第一执行结果输出至所述第一客户端的视图层;调取所述第一客户端的当前视图帧,通过所述第一客户端的当前视图帧驱动所述第一客户端的视图层以平滑插值的方式展示所述第一执行结果。本专利技术另一方面提供一种高效网络同步装置,所述装置包括:指令输入模块,用于接收玩家输入的第一控制指令,所述第一控制指令中包含针对相应玩家角色的操作动作、以及所述操作动作执行时的第一逻辑帧,所述第一逻辑帧的时间晚于所述第一客户端的当前逻辑帧;操作执行模块,用于通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层执行所述操作动作;通信模块,用于将所述第一控制指令上传至服务器;接收所述服务器基于所述第一控制指令所下发的第二控制指令,所述第二控制指令中包含驱动所述服务器和第二客户端执行所述操作动作的第二逻辑帧,所述第二客户端所对应的玩家角色属于被动方,所述第二逻辑帧的时间不早于所述第一逻辑帧;所述操作执行模块,还用于如果所述第二逻辑帧的时间等于所述第一逻辑帧,则将所述第一逻辑帧确定为关键逻辑帧;如果所述第二逻辑帧的时间晚于所述第一逻辑帧,调取距离所述第一客户端的当前逻辑帧最近的一个目标关键逻辑帧,并通过所述第二逻辑帧驱动所述第一客户端的逻辑层执行由所述目标关键逻辑帧至所述第二逻辑帧范围内所有控制指令内的操作动作。本专利技术另一方面提供一种高效网络同步方法,所述方法应用于玩家角色属于被动方的第一客户端,所述方法包括:接收服务器基于第一控制指令所下发的第二控制指令,所述第一控制指令是由第一客户端上传至所述服务器的,所述第一客户端的玩家角色属于主动方,所述第一控制指令中包含针对相应玩家角色的操作动作、以及所述操作动作执行时的第一逻辑帧,所述第一逻辑帧的时间晚于所述第一客户端接收所述第一控制指令时的当前逻辑帧,所述第二控制指令中包含第二逻辑帧,所述第二逻辑帧的时间不早于所述第一逻辑帧;通过所述第二逻辑帧驱动所述第二客户端的逻辑层执行所述操作动作。优选的,所述方法还包括:在网络状态由掉线切换为在线的情况下,向所述服务器上传重连请求;接收所述服务器基于所述重连请求所下发的场景信息,所述场景信息中包含游戏场景内各角色的状态信息、以及处于执行状态下的目标控制指令,所述目标控制指令中包含针对相应玩家角色的目标操作动作、以及所述目标操作动作执行时的目标逻辑帧;根据所述第二客户端的当前逻辑帧与所述目标逻辑帧的时间差,确定所述目标操作动作中未被执行的部分操作动作;通过所述当前逻辑帧驱动所述第二客户端的逻辑层执行所述部分操作动作,并控制所述第二客户端的逻辑层将所述部分操作动作的第二执行结果输出至所述第二客户端的视图层;调取所述第二客户端的当前视图帧,通过所述第二客户端的当前视图帧驱动所述第二客户端的视图层根据所述状态信息展示所述游戏场景、并在所述游戏场景中以平滑插值的方式展示所述第二执行结果。本专利技术另一方面提供一种高效网络同步装置,其特征在于,所述装置包括:通信模块,用于接收服务器基于第一控制指令所下发的第二控制指令,所述第一控制指令是由第一客户端上传至所述服务器的,所述第一客户端的玩家角色属于主动方,所述第一控制指令中包含针对相应玩家角色的操作动作、以及所述操作动作执行时的第一逻辑帧,所述第一逻辑帧的时间晚于所述第一客户端接收所述第一控制指令时的当前逻辑帧,所述第二控制指令中包含第二逻辑帧,所述第二逻辑帧的时间不早于所述第一逻辑帧;操作执行模块,用于本文档来自技高网...

【技术保护点】
1.一种高效网络同步方法,其特征在于,所述方法应用于玩家角色属于主动方的第一客户端,所述方法包括:/n接收玩家输入的第一控制指令,所述第一控制指令中包含针对相应玩家角色的操作动作、以及所述操作动作执行时的第一逻辑帧,所述第一逻辑帧的时间晚于所述第一客户端的当前逻辑帧;/n通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层执行所述操作动作,同时,将所述第一控制指令上传至服务器;/n接收所述服务器基于所述第一控制指令所下发的第二控制指令,所述第二控制指令中包含驱动所述服务器和第二客户端执行所述操作动作的第二逻辑帧,所述第二客户端所对应的玩家角色属于被动方,所述第二逻辑帧的时间不早于所述第一逻辑帧;/n如果所述第二逻辑帧的时间等于所述第一逻辑帧,则将所述第一逻辑帧确定为关键逻辑帧;/n如果所述第二逻辑帧的时间晚于所述第一逻辑帧,调取距离所述第一客户端的当前逻辑帧最近的一个目标关键逻辑帧,并通过所述第二逻辑帧驱动所述第一客户端的逻辑层执行由所述目标关键逻辑帧至所述第二逻辑帧范围内所有控制指令内的操作动作。/n

【技术特征摘要】
1.一种高效网络同步方法,其特征在于,所述方法应用于玩家角色属于主动方的第一客户端,所述方法包括:
接收玩家输入的第一控制指令,所述第一控制指令中包含针对相应玩家角色的操作动作、以及所述操作动作执行时的第一逻辑帧,所述第一逻辑帧的时间晚于所述第一客户端的当前逻辑帧;
通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层执行所述操作动作,同时,将所述第一控制指令上传至服务器;
接收所述服务器基于所述第一控制指令所下发的第二控制指令,所述第二控制指令中包含驱动所述服务器和第二客户端执行所述操作动作的第二逻辑帧,所述第二客户端所对应的玩家角色属于被动方,所述第二逻辑帧的时间不早于所述第一逻辑帧;
如果所述第二逻辑帧的时间等于所述第一逻辑帧,则将所述第一逻辑帧确定为关键逻辑帧;
如果所述第二逻辑帧的时间晚于所述第一逻辑帧,调取距离所述第一客户端的当前逻辑帧最近的一个目标关键逻辑帧,并通过所述第二逻辑帧驱动所述第一客户端的逻辑层执行由所述目标关键逻辑帧至所述第二逻辑帧范围内所有控制指令内的操作动作。


2.根据权利要求1所述的方法,其特征在于,所述操作动作包括用于指示玩家角色位置改变的第一动作;
所述通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层执行所述操作动作,包括:
对相应玩家角色进行航位预测,以修正所述第一动作对应的位置改变程度;
通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层执行修正后的所述第一动作。


3.根据权利要求1所述的方法,其特征在于,所述操作动作包括用于指示释放目标技能的第二动作,所述目标技能的释放效果是随机的;
所述通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层执行所述操作动作,包括:
调取随机种子,所述随机种子是所述服务器预先在指定逻辑帧下向所述第一客户端和所述第二客户端下发的;
通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层按照所述随机种子的随机结果执行所述第二动作。


4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
控制所述第一客户端的逻辑层将其所执行操作动作的第一执行结果输出至所述第一客户端的视图层;
调取所述第一客户端的当前视图帧,通过所述第一客户端的当前视图帧驱动所述第一客户端的视图层以平滑插值的方式展示所述第一执行结果。


5.一种高效网络同步装置,其特征在于,所述装置包括:
指令输入模块,用于接收玩家输入的第一控制指令,所述第一控制指令中包含针对相应玩家角色的操作动作、以及所述操作动作执行时的第一逻辑帧,所述第一逻辑帧的时间晚于所述第一客户端的当前逻辑帧;
操作执行模块,用于通过所述第一客户端的当前逻辑帧驱动所述第一客户端的逻辑层执行所述操作动作;
通信模块,用于将所述第一控制指令上传至服务器;接收所述服务器基于所述第一控制指令所下发的第二控制指令,所述第二控制指令中包含驱动所述服务器和第二客户端执行所述操作动作的第二逻辑帧,所述第二客户端所对应的玩家角色属于被动方,所述第二逻辑帧的时间不早于所述第一逻辑帧;
...

【专利技术属性】
技术研发人员:刘捷
申请(专利权)人:苏州仙峰网络科技股份有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1