一种游戏同步方法、游戏客户端及游戏服务器技术

技术编号:14536716 阅读:110 留言:0更新日期:2017-02-02 22:27
本发明专利技术实施例提供一种游戏同步方法、游戏客户端及游戏服务器,该方法包括:游戏客户端每获取一个游戏操作指令,将所述游戏操作指令加入上传队列中;每隔第一预定时间将所述上传队列中的游戏操作指令加入上传数据包中,并向游戏服务器发送所述上传数据包;及,接收所述游戏服务器每隔第二预定时间发送的下发数据包;根据所述下发数据包,从所述上传队列中删除所述游戏服务器已接收的游戏操作指令;并根据所述下发数据包,控制游戏表现。本发明专利技术实施例可使得游戏服务器与游戏客户端在进行游戏同步时,具有较高的通讯可靠性。

Game synchronization method, game client and game server

The embodiment of the invention provides a game synchronization method, game server and game client, the method includes: every game client gets a game instructions, the game instructions added to upload queue; every first predetermined time the upload queue in the game instructions added to upload data packets, and to the game server transmits the uploaded data packet; and receiving the game server every second time to send the data packet; according to the sending data packets, delete the game server received the game instructions from the upload queue; and according to the sending data packets, control the game. Performance. The embodiment of the invention can make the game server and the game client have high communication reliability when playing the game.

【技术实现步骤摘要】

本专利技术涉及游戏数据处理
,具体涉及一种游戏同步方法、游戏客户端及游戏服务器
技术介绍
动作游戏(如目前风靡的动作类手游)等对游戏数据同步要求较高的网络游戏,需要设置实时性较高的游戏同步机制;游戏同步可以理解为是,一个玩家的操作所触发的游戏操作命令,需要同步到与该玩家处于同一游戏场景的其他玩家的游戏客户端上进行表现。游戏同步主要是通过游戏服务器、游戏客户端间的数据交互实现,即游戏服务器可将一游戏客户端发送的游戏操作命令,反馈给处于同一游戏场景的其他游戏客户端中;在实现游戏同步时,游戏服务器与游戏客户端间的通讯可靠性尤为重要,提供具有较高通讯可靠性的游戏同步方案,一直是本领域技术人员研究的关键点。
技术实现思路
有鉴于此,本专利技术实施例提供一种游戏同步方法、游戏客户端及游戏服务器,以使得游戏服务器与游戏客户端在进行游戏同步时,具有较高的通讯可靠性,以便进一步提升游戏同步的实时性、准确性。为实现上述目的,本专利技术实施例提供如下技术方案:一种游戏同步方法,应用于游戏客户端,所述方法包括:每获取一个游戏操作指令,将所述游戏操作指令加入上传队列中;每隔第一预定时间将所述上传队列中的游戏操作指令加入上传数据包中,并向游戏服务器发送所述上传数据包;及,接收所述游戏服务器每隔第二预定时间发送的下发数据包;所述下发数据包包括:当前的第二预定时间所述游戏服务器的下发队列中存在的帧数据块;一帧数据块包含有处于同一游戏场景的游戏客户端在同一第二预定时间内通过上传数据包发送的游戏操作指令;根据所述下发数据包,从所述上传队列中删除所述游戏服务器已接收的游戏操作指令;并根据所述下发数据包,控制游戏表现。本专利技术实施例还提供一种游戏同步方法,应用于游戏服务器,所述方法包括:接收游戏客户端每隔第一预定时间发送的上传数据包;所述上传数据包包括:当前第一预定时间所述游戏客户端的上传队列中存在的游戏操作指令;根据所述上传数据包包,从下发队列中删除所述游戏客户端已接收的帧数据块;及,每隔第二预定时间,将所述下发队列中的帧数据块加入下发数据包中,将所述下发数据包发送给游戏客户端;一帧数据块包含有处于同一游戏场景的游戏客户端在同一第二预定时间内通过上传数据包发送的游戏操作指令。本专利技术实施例还提供一种游戏客户端,包括:游戏操作指令获取并加入模块,用于每获取一个游戏操作指令,将所述游戏操作指令加入上传队列中;上传数据包上传模块,用于每隔第一预定时间将所述上传队列中的游戏操作指令加入上传数据包中,并向游戏服务器发送所述上传数据包;下发数据包接收模块,用于接收所述游戏服务器每隔第二预定时间发送的下发数据包;所述下发数据包包括:当前的第二预定时间所述游戏服务器的下发队列中存在的帧数据块;一帧数据块包含有处于同一游戏场景的游戏客户端在同一第二预定时间内通过上传数据包发送的游戏操作指令;指令删除模块,用于根据所述下发数据包,从所述上传队列中删除所述游戏服务器已接收的游戏操作指令;游戏表现控制模块,用于根据所述下发数据包,控制游戏表现。本专利技术实施例还提供一种游戏服务器,包括:上传数据包接收模块,用于接收游戏客户端每隔第一预定时间发送的上传数据包;所述上传数据包包括:当前第一预定时间所述游戏客户端的上传队列中存在的游戏操作指令;帧数据块删除模块,用于根据所述上传数据包包,从下发队列中删除所述游戏客户端已接收的帧数据块;下发数据包下发模块,用于每隔第二预定时间,将所述下发队列中的帧数据块加入下发数据包中,将所述下发数据包发送给游戏客户端;一帧数据块包含有处于同一游戏场景的游戏客户端在同一第二预定时间内通过上传数据包发送的游戏操作指令。基于上述技术方案,本专利技术实施例中,游戏客户端可每隔第一预定时间将上传队列中写入的游戏操作指令加入上传数据包中,并上传给游戏服务器,且可基于所接收的游戏服务器发送的下发数据包,从上传队列中删除已被游戏服务器接收的游戏操作指令;同时,游戏服务器可每隔第二预定时间将下发队列中写入的帧数据块加入下发数据包中,并发送给游戏客户端;且一帧数据块包含有处于同一游戏场景的游戏客户端在同一第二预定时间内通过上传数据包发送的游戏操作指令,从而游戏客户端在接收下发数据包后,可基于帧数据块进行游戏表现的控制,实现游戏同步。可见,本专利技术实施例提供的游戏同步方法,可避免游戏客户端重复发送游戏服务器已接收的游戏操作指令,且可避免游戏服务器未接收的游戏操作指令被遗漏发送,游戏服务器也可避免重复发送游戏客户端已接收的帧数据块,且可避免游戏客户端未接收的帧数据块被遗漏发送,具有较高的通讯可靠性,且通讯流量便于控制,减小了游戏同步带来的通讯流量过大的情况;本专利技术实施例提供的游戏同步方法,可使得游戏服务器与游戏客户端在进行游戏同步时,具有较高的通讯可靠性,进一步提升了游戏同步的实时性、准确性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面+描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的游戏系统的结构示意图;图2为本专利技术实施例提供的游戏同步方法的信令流程图;图3为游戏客户端和游戏服务器的交互简化示意图;图4为游戏客户端所维持的上传队列的示意图;图5为游戏服务器所维持的下发队列的示意图;图6为上传数据包的内容示意图;图7为OperateCmd的内容示意图;图8为下发数据包的内容示意图;图9为FrameList的内容示意图;图10为Frame数据块的内容示意图;图11为SyncCmd的内容示意图;图12为本专利技术实施例提供的删除游戏操作指令及控制游戏表现的流程图;图13为游戏客户端向游戏服务器发送上传数据包的流程图;图14为本专利技术实施例提供的控制游戏表现的方法流程图;图15为非交互性操作的游戏预表现示意图;图16为交互性操作下采用游戏同步进行游戏表现的示意图;图17为本专利技术实施例提供的从下发队列中删除Frame数据块的方法流程图;图18为PVP游戏类型的游戏系统的示意图;图19为一游戏表现结果的示意图;图20为本专利技术实施例提供的游戏客户端的结构框图;图21为本专利技术实施例提供的游戏客户端的另一结构框图;图22为本专利技术实施例提供的游戏客户端的再一结构框图;图23为本专利技术实施例提供的游戏服务器的结构框图;图24为本专利技术实施例提供的游戏服务器的另一结构框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例提供的游戏系统的结构示意图,参照图1,该游戏系统可以包括:游戏服务器10和多个游戏客户端20;该多个游戏客户端20可处于同一游戏场景下进行游戏,如在同一游戏房间,同一游戏竞技场中进行游戏,游戏房间、游戏竞技场可以认为是游戏服务器设置的用于容纳玩家进行游戏的虚拟空间;在本专利技术实施例中,一个游戏客户端可对应至少一个操作该游戏客户端的玩家;游戏服务器10需要本文档来自技高网...

【技术保护点】
一种游戏同步方法,其特征在于,应用于游戏客户端,所述方法包括:每获取一个游戏操作指令,将所述游戏操作指令加入上传队列中;每隔第一预定时间将所述上传队列中的游戏操作指令加入上传数据包中,并向游戏服务器发送所述上传数据包;及,接收所述游戏服务器每隔第二预定时间发送的下发数据包;所述下发数据包包括:当前的第二预定时间所述游戏服务器的下发队列中存在的帧数据块;一帧数据块包含有处于同一游戏场景的游戏客户端在同一第二预定时间内通过上传数据包发送的游戏操作指令;根据所述下发数据包,从所述上传队列中删除所述游戏服务器已接收的游戏操作指令;并根据所述下发数据包,控制游戏表现。

【技术特征摘要】
1.一种游戏同步方法,其特征在于,应用于游戏客户端,所述方法包括:每获取一个游戏操作指令,将所述游戏操作指令加入上传队列中;每隔第一预定时间将所述上传队列中的游戏操作指令加入上传数据包中,并向游戏服务器发送所述上传数据包;及,接收所述游戏服务器每隔第二预定时间发送的下发数据包;所述下发数据包包括:当前的第二预定时间所述游戏服务器的下发队列中存在的帧数据块;一帧数据块包含有处于同一游戏场景的游戏客户端在同一第二预定时间内通过上传数据包发送的游戏操作指令;根据所述下发数据包,从所述上传队列中删除所述游戏服务器已接收的游戏操作指令;并根据所述下发数据包,控制游戏表现。2.根据权利要求1所述的游戏同步方法,其特征在于,所述上传数据包还包括:当前的上传编号,游戏客户端最近一次接收的下发数据包的接收确认信息;其中,所述最近一次接收的下发数据包的接收确认信息,携带有最近一次接收的下发数据包所对应的下发编号;所述下发数据包还包括:当前的下发编号,游戏服务器最近一次接收的上传数据包的接收确认信息;其中,所述最近一次接收的上传数据包的接收确认信息,携带有所述游戏服务器最近一次接收的上传数据包所对应的上传编号;所述根据所述下发数据包,从所述上传队列中删除所述游戏服务器已接收的游戏操作指令包括:根据所述下发数据包中携带的最近一次接收的上传数据包的接收确认信息,从所述上传队列中删除对应上传编号的游戏操作指令。3.根据权利要求2所述的游戏同步方法,其特征在于,所述根据所述下发数据包中携带的最近一次接收的上传数据包的接收确认信息,从所述上传队列中删除对应上传编号的游戏操作指令包括:判断所述下发数据包中的接收确认信息对应的上传编号,是否大于上一次接收的下发数据包中的接收确认信息对应的上传编号;在所述下发数据包中的接收确认信息对应的上传编号,大于上一次接收的下发数据包中的接收确认信息对应的上传编号时,从所述上传队列中删除与所述下发数据包中的接收确认信息对应的上传编号,所相应的游戏操作指令。4.根据权利要求3所述的游戏同步方法,其特征在于,所述上传编号,与对应的上传数据包发送时,最新加入上传队列中的游戏操作指令的获取序数对应;其中,每获取一个游戏操作指令,游戏操作指令的获取序数加1;所述从所述上传队列中删除与所述下发数据包中的接收确认信息对应的上传编号,所相应的游戏操作指令包括:确定所述下发数据包中的接收确认信息对应的上传编号,与上一次接收的下发数据包中的接收确认信息对应的上传编号的差值;从上传队列中删除个数与所述差值相应,且在上传队列中保留最久的游戏操作指令。5.根据权利要求2所述的游戏同步方法,其特征在于,所述下发数据包还包括:用于校验下发数据包是否被篡改的校验和;所述根据所述下发数据包中携带的最近一次接收的上传数据包的接收确认信息,从所述上传队列中删除对应上传编号的游戏操作指令之前,所述方法还包括:判断所述下发数据包中的校验和是否为预定值;在所述下发数据包中的校验和为预定值时,执行根据所述下发数据包中携带的最近一次接收的上传数据包的接收确认信息,从所述上传队列中删除对应上传编号的游戏操作指令的步骤。6.根据权利要求1或2所述的游戏同步方法,其特征在于,所述上传数据包还包括:用于校验上传数据包是否被篡改的校验和,所述游戏客户端的标识,所述上传数据包中的游戏操作指令的个数;所述游戏操作指令包括:对玩家操作的定义,该定义对应的参数,及玩家操作所在的帧号。7.根据权利要求1或2所述的游戏同步方法,其特征在于,所述下发数据包中的帧数据块以帧数据块列表形式存在,所述帧数据块列表中记录有至少一个帧数据块;所述根据所述下发数据包,控制游戏表现包括:遍历所述下发数据包中的帧数据块列表,根据帧数据块列表中各帧数据块对应的游戏操作指令,控制游戏表现。8.根据权利要求7所述的游戏同步方法,其特征在于,所述遍历所述下发数据包中的帧数据块列表,根据帧数据块列表中各帧数据块对应的游戏操作指令,控制游戏表现包括:获取帧数据块列表;遍历帧数据块列表中的各帧数据块,将所遍历的各帧数据块存入帧队列中;将帧数据块列表中的各帧数据块的帧号进行变换,得到各帧数据块对应的游戏客户端帧号,并在下一个游戏服务器帧到来前,将所得到的游戏客户端帧号锁定在下一个游戏服务器帧的前一帧;及将各帧数据块对应的游戏客户端帧号,和下一个游戏服务器帧的前一帧传入帧缓冲器中;每隔一帧从帧缓冲器中取出当前跳帧加速的倍数;根据所述倍数,从帧队列中调取帧数据块;根据所调取的帧数据块的游戏操作指令控制游戏表现。9.根据权利要求8所述的游戏同步方法,其特征在于,所述根据所述倍数,从帧队列中调取帧数据块包括:如果所述倍数为零,说明帧缓冲器正在缓冲中,没有需要处理的帧;如果所述倍数为1,则说明帧缓冲器缓冲结束,但不需要加速,从帧队列中调取出最新的帧数据块;如果所述倍数大于1,从帧队列调取出与所述倍数相应个数的帧数据块。10.根据权利要求7所述的游戏同步方法,其特征在于,所述帧数据块列表还包括:所述帧数据块列表中记录的帧数据块的个数;所述帧数据包括:游戏服务器需同步给游戏客户端的游戏操作指令,及需同步的游戏操作指令的个数。11.根据权利要求1或2所述的游戏同步方法,其特征在于,在获取游戏操作指令时,如果玩家操作为非交互性操作,所述方法还包括:根据玩家操作进行游戏的预表现。12.根据权利要求1或2所述的游戏同步方法,其特征在于,玩家角色具有两种角色模式,包括:预表现角色和逻辑角色;其中,预表现角色为通过直接执行玩家操作而作出表现的角色,逻辑角色为执行游戏服务器同步给游戏客户端的操作而作出表现的角色;所述方法还包括:保持预表现角色和逻辑角色的一致性,且随着时间推移,在预表现角色...

【专利技术属性】
技术研发人员:高炼唐声福林江
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1