本公开的实施方式涉及游戏,更具体地,本公开的实施方式涉及游戏同步方法、介质、装置和计算设备。
背景技术:
1、本部分旨在为本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
2、对于网络互动类游戏,网络同步是一种用于确保多个玩家在不同地理位置上能够实时互动的游戏同步技术,主要体现为多端数据同步(服务端计算)和多端渲染同步(客户端表现)两方面。其中,游戏同步包含多个游戏玩家之间的数据、指令的同步问题。
3、相关技术中,通过用于确保多个玩家之间的游戏状态保持一致的帧同步进行游戏同步。具体的,在帧同步中,游戏引擎在每个逻辑帧上模拟每个玩家的动作,并将每个玩家的输入指令和状态变化发送给其他玩家,以使每个玩家在各自的客户端上同步游戏状态,从而使得所有玩家看到的游戏画面和状态是一致的。但在一些场景下,帧同步处理后仍存在游戏不同步的问题。
技术实现思路
1、本公开提供一种游戏同步方法、介质、装置和计算设备,以解决现有的通过帧同步进行游戏同步时,存在游戏不同步的问题。
2、在本公开实施方式的第一方面中,提供了一种游戏同步方法,应用于第一客户端,该游戏同步方法包括:
3、接收服务端发送的第一指令信息,该第一指令信息是第二客户端上传至服务端的,服务端校验第一指令信息合法后向第一客户端发出,该第二客户端和第一客户端均为参与同一网络互动类游戏的玩家客户端;
4、根据第一指令信息更新游戏状态为第一游戏状态。
5、在一种可能的实施方式中,该游戏同步方法还包括:接收服务端发出的心跳信号,该心跳信号携带服务端根据第一指令信息确定的第二游戏状态;校验第二游戏状态和第一游戏状态是否一致;若不一致,则从服务端获取第二游戏状态的相关数据,并根据相关数据进行游戏状态的更新。
6、在一种可能的实施方式中,从服务端获取第二游戏状态的相关数据,包括:向服务端发送指令拉取补偿请求,以获取第二游戏状态的相关数据。
7、在一种可能的实施方式中,接收服务端发送的第一指令信息之后,该游戏同步方法还包括:获取第二指令信息,该第二指令信息包括第二指令标识,第二指令信息为第一指令信息的上一条指令信息;确定第二指令标识与第一指令标识是否相同,第一指令标识为第一客户端本地存储的当前最大指令标识;若不相同,则向服务端发送指令拉取补偿请求,以获取服务端未同步的指令信息。
8、在一种可能的实施方式中,该游戏同步方法还包括:若相同,则获取第一指令信息对应的第一校验和信息,该第一校验和信息是服务端根据第一指令信息生成的;确定第一校验和信息和第二校验和信息是否存在差异,第二校验和信息是第一客户端根据第一指令信息生成的;若存在差异,则向服务端发送全局游戏状态拉取补偿请求,以获取全局游戏状态数据,并通过全局游戏状态数据更新游戏状态数据。
9、在一种可能的实施方式中,该游戏同步方法还包括:响应第一客户端网络重连,接收服务端发送的第三指令信息,该第三指令信息包括第三指令标识;计算第三指令标识和第四指令标识的标识差值,该第四指令标识为第一客户端本地存储的当前最大指令标识;确定标识差值是否超过预设阈值;若标识差值超过预设阈值,则通过补偿接口拉取服务端最新的游戏状态数据,并通过游戏状态数据更新游戏状态数据;若标识差值未超过预设阈值,则向服务端发送指令拉取补偿请求,以获取第一客户端缺失的与标识差值对应的指令信息。
10、在一种可能的实施方式中,第一客户端的游戏状态可以通过以下方式进行回放:从服务端拉取游戏的初始状态,并通过指令列表接口从服务端拉取指令信息,逐条执行指令信息,以实现游戏回放;和/或,通过拖拽进度条的方式快速定位到目标指令,并从服务端拉取目标指令对应的游戏快照。
11、在一种可能的实施方式中,第二客户端和第一客户端与服务端通过轮询心跳的方式建立实时连接。
12、在本公开实施方式的第二方面中,提供了一种游戏同步方法,应用于服务端,该游戏同步方法包括:接收第二客户端上传的第一指令信息;校验第一指令信息是否合法;响应第一指令信息合法,向第一客户端发送第一指令信息,第一客户端根据第一指令信息更新游戏状态为第一游戏状态,第二客户端和第一客户端均为参与同一网络互动类游戏的玩家客户端。
13、在一种可能的实施方式中,校验第一指令信息是否合法,包括:校验第一指令信息的基本信息是否合法。
14、在一种可能的实施方式中,该游戏同步方法还包括:向第一客户端发送心跳信号,使第一客户端校验第二游戏状态和第一游戏状态是否一致,并在不一致时,响应接收到第一客户端发送的指令拉取补偿请求,向第一客户端发送第二游戏状态的相关数据,心跳信号携带根据第一指令信息确定的第二游戏状态。
15、在一种可能的实施方式中,该游戏同步方法还包括:校验第一指令信息是否存在作弊;若存在作弊,则拦截第二客户端再次上传的第二指令信息。
16、在本公开实施方式的第三方面中,提供了一种游戏同步装置,应用于第一客户端,该游戏同步装置包括:
17、接收模块,用于接收服务端发送的第一指令信息,该第一指令信息是第二客户端上传至服务端的,服务端校验第一指令信息合法后向第一客户端发出,该第二客户端和第一客户端均为参与同一网络互动类游戏的玩家客户端;
18、更新模块,用于根据第一指令信息更新游戏状态为第一游戏状态。
19、在一种可能的实施方式中,该游戏同步装置还包括处理模块(未图示),该处理模块用于:接收服务端发出的心跳信号,该心跳信号携带服务端根据第一指令信息确定的第二游戏状态;校验第二游戏状态和第一游戏状态是否一致;若不一致,则从服务端获取第二游戏状态的相关数据,并根据相关数据进行游戏状态的更新。
20、在一种可能的实施方式中,处理模块还用于:向服务端发送指令拉取补偿请求,以获取第二游戏状态的相关数据。
21、在一种可能的实施方式中,接收服务端发送的第一指令信息之后,处理模块还用于:获取第二指令信息,该第二指令信息包括第二指令标识,第二指令信息为第一指令信息的上一条指令信息;确定第二指令标识与第一指令标识是否相同,第一指令标识为第一客户端本地存储的当前最大指令标识;若不相同,则向服务端发送指令拉取补偿请求,以获取服务端未同步的指令信息。
22、在一种可能的实施方式中,处理模块还用于:若相同,则获取第一指令信息对应的第一校验和信息,该第一校验和信息是服务端根据第一指令信息生成的;确定第一校验和信息和第二校验和信息是否存在差异,第二校验和信息是第一客户端根据第一指令信息生成的;若存在差异,则向服务端发送全局游戏状态拉取补偿请求,以获取全局游戏状态数据,并通过全局游戏状态数据更新游戏状态数据。
23、在一种可能的实施方式中,处理模块还用于:响应第一客户端网络重连,接收服务端发送的第三指令信息,该第三指令信息包括第三指令标识;计算第三指令标识和第四指令标识的标识差值,该第四指令标识为第一客户端本地存储的当前最大指令标识;确定标识差值是否超过预设阈值;若标识差值超过预设阈值,则通过补偿接口拉取服务端最新的游戏状态数据,并通过游戏状态数据更新游戏状态数据;若标识差值未超过预设阈值,则向服务端发送指令拉取补偿请求,以获取第一客户端缺失的与标识差值对应的指令信息。
24、在一种可能的实施方式中,第一客户端的游戏状态可以通过以下方式进行回放:从服务端拉取游戏的初始状态,并通过指令列表接口从服务端拉取指令信息,逐条执行指令信息,以实现游戏回放;和/或,通过拖拽进度条的方式快速定位到目标指令,并从服务端拉取目标指令对应的游戏快照。
25、在一种可能的实施方式中,第二客户端和第一客户端与服务端通过轮询心跳的方式建立实时连接。
26、在本公开实施方式的第四方面中,提供了一种游戏同步装置,应用于服务端,该游戏同步装置包括:
27、接收模块,用于接收第二客户端上传的第一指令信息;
28、校验模块,用于校验第一指令信息是否合法;
29、发送模块,用于响应第一指令信息合法,向第一客户端发送第一指令信息,第一客户端根据第一指令信息更新游戏状态为第一游戏状态,第二客户端和第一客户端均为参与同一网络互动类游戏的玩家客户端。
30、在一种可能的实施方式中,校验模块具体用于:校验第一指令信息的基本信息是否合法。
31、在一种可能的实施方式中,发送模块还用于:向第一客户端发送心跳信号,使第一客户端校验第二游戏状态和第一游戏状态是否一致,并在不一致时,响应接收到第一客户端发送的指令拉取补偿请求,向第一客户端发送第二游戏状态的相关数据,心跳信号携带根据第一指令信息确定的第二游戏状态。
32、在一种可能的实施方式中,校验模块还用于:校验第一指令信息是否存在作弊;若存在作弊,则拦截第二客户端再次上传的第二指令信息。
33、在本公开实施方式的第五方面中,提供了一种计算设备,包括:处理器,以及与处理器通信连接的存储器;
34、存储器存储计算机执行指令;
35、处理器执行存储器存储的计算机执行指令,以实现如本公开第一方面提供的游戏同步方法,或者,实现如本公开第二方面提供的游戏同步方法。
36、在本公开实施方式的第六方面中,提供了一种存储介质,存储介质中存储有计算机程序指令,计算机程序指令被执行时,实现如本公开第一方面提供的游戏同步方法,或者,实现如本公开第二方面提供的游戏同步方法。
37、在本公开实施方式的第七方面中,提供了一种计算机程序产品,包括计算机程序,计算机程序被执行时实现如本公开第一方面提供的游戏同步方法,或者,实现如本公开第二方面提供的游戏同步方法。
38、本公开提供一种游戏同步方法、介质、装置和计算设备,该游戏同步方法应用于第一客户端,通过接收服务端发送的第二客户端上传至服务端的第一指令信息,并根据第一指令信息更新游戏状态为第一游戏状态,其中,第一指令信息是服务端校验合法后向第一客户端发出的,第二客户端和第一客户端均为参与同一网络互动类游戏的玩家客户端。本公开,通过服务端对接收到的第二客户端上传的第一指令信息进行校验,并在校验合法后发送给第一客户端,实现互动类游戏指令同步的准确性,进一步第一客户端在接收到第一指令信息后,第一客户端通过根据该第一指令信息实时更新游戏状态,实现互动类游戏指令同步的实时性,进而实现对互动类游戏的同步。
1.一种游戏同步方法,其特征在于,应用于第一客户端,所述游戏同步方法包括:
2.根据权利要求1所述的游戏同步方法,其特征在于,还包括:
3.根据权利要求2所述的游戏同步方法,其特征在于,所述从服务端获取所述第二游戏状态的相关数据,包括:
4.根据权利要求1至3中任一项所述的游戏同步方法,其特征在于,所述接收服务端发送的第一指令信息之后,还包括:
5.根据权利要求4所述的游戏同步方法,其特征在于,还包括:
6.根据权利要求1至3中任一项所述的游戏同步方法,其特征在于,还包括:
7.一种游戏同步装置,其特征在于,应用于第一客户端,所述游戏同步装置包括:
8.一种计算设备,包括:处理器,以及与所述处理器通信连接的存储器;
9.一种存储介质,所述存储介质中存储有计算机程序指令,所述计算机程序指令被执行时,实现如权利要求1至6中任一项所述的游戏同步方法。
10.一种计算机程序产品,包括计算机程序,所述计算机程序被执行时实现如权利要求1至6中任一项所述的游戏同步方法。