CN107222510B - 一种游戏同步方法、系统及相关设备 - Google Patents

一种游戏同步方法、系统及相关设备 Download PDF

Info

Publication number
CN107222510B
CN107222510B CN201710600716.9A CN201710600716A CN107222510B CN 107222510 B CN107222510 B CN 107222510B CN 201710600716 A CN201710600716 A CN 201710600716A CN 107222510 B CN107222510 B CN 107222510B
Authority
CN
China
Prior art keywords
game
client
rendered
server
network packet
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.)
Active
Application number
CN201710600716.9A
Other languages
English (en)
Other versions
CN107222510A (zh
Inventor
韩伟
艾风
吴佳伟
蔡锦彬
王伟光
许路平
潘兵辉
杨凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710600716.9A priority Critical patent/CN107222510B/zh
Publication of CN107222510A publication Critical patent/CN107222510A/zh
Application granted granted Critical
Publication of CN107222510B publication Critical patent/CN107222510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/538Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供了一种游戏同步方法、系统及相关设备,其中一种方法包括:获取输入的游戏操作指令,当本地预渲染定时到达时,根据预渲染次数和预设的预渲染次数阈值运行游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染;当接收到服务器发送的网络数据包时,运行网络数据包对应的游戏逻辑,以进行游戏画面在处于同一游戏场景的各个客户端之间的同步,并将预渲染次数清零,该网络数据包包括该各个客户端发送的游戏数据。通过本发明实施例可以灵活、高效地对游戏画面的流畅性和一致性进行控制,可以有效降低游戏的开发成本。

Description

一种游戏同步方法、系统及相关设备
技术领域
本发明涉及数据处理技术领域,尤其涉及一种游戏同步方法、系统及相关设备。
背景技术
目前,开发实时同步游戏,往往需要开发者针对特定的游戏类型,在不同的网络状况下,编写大量特定的代码,来平衡和适配游戏的一致性(即游戏画面的同步效果)和流畅性。根据不同的游戏内容,需要开发完全不同的网络同步流程,即分别为不同的游戏操作,编写不同的网络同步策略,由于游戏玩法本身非常多样,所以在调试不同的同步策略以及体验效果的时候,需要频繁大量的修改不同玩法状态的网络同步数据包的发送、接收处理策略等,从而导致非常大的开发工作量,技术成本高昂,灵活性差,效率较低。可见,现有的游戏同步策略无法灵活、高效地对游戏的流畅性和一致性进行控制,也无法有效降低游戏的开发成本。
发明内容
本发明实施例提供了一种游戏同步方法、系统及相关设备,可以灵活、高效地对游戏画面的流畅性和一致性进行控制,可以有效降低游戏的开发成本。
本发明实施例第一方面提供了一种游戏同步方法,包括:
获取输入的游戏操作指令;
当本地预渲染定时到达时,根据预渲染次数和预设的预渲染次数阈值运行所述游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染;
当接收到服务器发送的网络数据包时,运行所述网络数据包对应的游戏逻辑,以进行游戏画面在处于同一游戏场景的各个客户端之间的同步,并将所述预渲染次数清零,所述网络数据包包括所述各个客户端发送的游戏数据。
本发明实施例第二方面提供了一种游戏同步方法,包括:
接收处于同一游戏场景的各个客户端在本地预渲染定时到达时发送的游戏数据;
将所述游戏数据对应缓存到预先为所述各个客户端分别建立的游戏数据缓冲区队列中;
当游戏同步定时到达时,通过读取所述游戏数据缓冲区队列生成网络数据包,并向所述各个客户端发送所述网络数据包,所述网络数据包包括所述游戏数据,所述网络数据包用于所述各个客户端的游戏画面的同步。
本发明实施例第三方面提供了一种客户端,包括:
获取模块,用于获取输入的游戏操作指令;
处理模块,用于当本地预渲染定时到达时,根据预渲染次数和预设的预渲染次数阈值运行所述游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染;
接收模块,用于接收服务器发送的网络数据包;
所述处理模块,还用于当所述接收模块接收到所述网络数据包时,运行所述网络数据包对应的游戏逻辑,以进行游戏画面在处于同一游戏场景的各个客户端之间的同步,并将所述预渲染次数清零,所述网络数据包包括所述各个客户端发送的游戏数据。
本发明实施例第四方面提供了一种服务器,包括:
接收模块,用于接收处于同一游戏场景的各个客户端在本地预渲染定时到达时发送的游戏数据;
缓存模块,用于将所述游戏数据对应缓存到预先为所述各个客户端分别建立的游戏数据缓冲区队列中;
生成模块,用于当游戏同步定时到达时,通过读取所述游戏数据缓冲区队列生成网络数据包;
发送模块,用于向所述各个客户端发送所述网络数据包,所述网络数据包包括所述游戏数据,所述网络数据包用于所述各个客户端的游戏画面的同步。
本发明实施例第五方面提供了一种游戏同步系统,包括:如上述第三方面所述的客户端和如上述第四方面所述的服务器。
本发明实施例第六方面提供了一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上述第一方面所述的游戏同步方法。
本发明实施例第七方面提供了一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上述第二方面所述的游戏同步方法。
通过本发明实施例中可以获取输入的游戏操作指令,当本地预渲染定时到达时,根据预渲染次数和预设的预渲染次数阈值运行游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染;当接收到服务器发送的网络数据包时,运行网络数据包对应的游戏逻辑,以进行游戏画面在处于同一游戏场景的各个客户端之间的同步,并将预渲染次数清零,该网络数据包包括该各个客户端发送的游戏数据,从而根据预渲染次数阈值可以灵活、高效地对游戏的流畅性和一致性进行控制,并可以有效降低游戏的开发成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种游戏系统的结构示意图;
图2是本发明实施例提供的一种游戏同步方法的流程示意图;
图3a是本发明实施例提供的一种游戏数据的接收与广播示意图;
图3b是本发明实施例提供的另一种游戏数据的接收与广播示意图;
图3c是本发明实施例提供的一种游戏画面不同步的示意图;
图3d是本发明实施例提供的另一种游戏画面不同步的示意图;
图3e是本发明实施例提供的另一种游戏同步方法的流程示意图;
图4是本发明实施例提供的一种客户端的结构示意图;
图5是本发明实施例提供的一种服务器的结构示意图;
图6是本发明实施例提供的另一种客户端的结构示意图;
图7是本发明实施例提供的另一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中所描述的客户端具体可以包括智能手机、平板电脑、笔记本、台式机、移动互联网设备(Mobile Internet Device,MID)、智能可穿戴设备等。
请参阅图1,为本发明实施例提供的一种游戏系统的结构示意图。本实施例中所描述的游戏系统,包括:服务器101和多个客户端102,服务器101可以提供游戏场景(如游戏房间等),多个客户端102可以在服务器101提供的同一游戏场景中进行游戏。一个客户端102可以对应至少一个能够操作该客户端102的用户(即玩家),服务器101可以在该多个客户端102之间进行游戏画面的同步。本发明实施例提供的游戏系统可以应用在对游戏画面的一致性要求较高的网络游戏中,也可以应用在客户端本地对游戏画面的流畅性要求较高的网络游戏中。
请参阅图2,为本发明实施例基于图1所示的游戏系统提供的一种游戏同步方法的流程示意图。本实施例中所描述的游戏同步方法,包括以下步骤:
201、客户端获取输入的游戏操作指令。
具体实现中,客户端在运行游戏的过程中,可以接收用户通过输入设备(如鼠标、键盘、触摸屏、游戏手柄等)输入的游戏操作指令,游戏操作指令即用户输入的对游戏的操控行为,例如,控制玩家角色的移动状态,攻击敌方等。
202、当本地预渲染定时到达时,所述客户端根据预渲染次数和预设的预渲染次数阈值运行所述游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染。
其中,本地预渲染定时用于表示客户端本地每隔预设第一时长渲染一次游戏画面,例如,本地预渲染定时为1/60秒,则预设第一时长为1/60秒,客户端每隔1/60秒本地渲染一次游戏画面,也即游戏画面的本地渲染频率为60帧/秒。
其中,预渲染次数用于记录客户端本地已经完成的游戏画面的渲染次数,且每进行一次游戏画面在本地的渲染,则预渲染次数加1。预设的预渲染次数阈值用于限定客户端本地可以预渲染游戏画面的最大次数。
可以理解的,在设定的取值范围内,预渲染次数阈值越大,本地客户端游戏画面的流畅性越好。
具体实现中,本地预渲染定时到达时,客户端先判断记录的预渲染次数是否小于或等于预设的预渲染次数阈值,如果客户端本地预渲染的次数还未达到预设的预渲染次数阈值,则客户端运行该游戏操作指令对应的游戏逻辑,以执行本地的游戏操作,完成游戏画面在本地的预渲染,例如,控制玩家角色的移动状态,攻击敌方等。
203、若所述预渲染次数小于或等于所述预设的预渲染次数阈值,则所述客户端向服务器发送游戏数据,所述服务器接收所述游戏数据。
其中,游戏数据包括游戏操作指令和/或游戏状态参数,游戏状态参数是指游戏当前所处的状态,例如,击中敌机,玩家飞机被击中,扣减血量,消耗弹药,玩家角色的位置等。
具体实现中,处于同一游戏场景的各个客户端在本地预渲染定时到达时,如果本地预渲染的次数还未达到预设的预渲染次数阈值,则向服务器发送各自的游戏数据,服务器接收该各个客户端发送的游戏数据。
在一些可行的实施方式中,服务器可以为处于同一游戏场景的各个客户端分别建立一个游戏数据缓冲区队列,用于存储对应客户端发送的游戏数据,服务器接收到某一客户端发送的游戏数据后,将游戏数据存储到该某一客户端对应的游戏数据缓冲区队列中。
需要说明的是,步骤202和203执行的先后顺序不做限定,即本地预渲染定时到达时,客户端可以先进行游戏画面的本地预渲染,也可以先向服务器发送游戏数据。或者,步骤202和203也可以是同步执行。
204、当游戏同步定时到达时,所述服务器通过读取预先建立的缓冲区队列生成网络数据包。
205、所述服务器向所述客户端发送所述网络数据包,所述客户端接收所述网络数据包。
其中,游戏同步定时用于表示服务器每隔预设第二时长通过向处于同一游戏场景的各个客户端发送一次网络数据包,使得该各个客户端进行一次游戏画面的同步,例如,游戏同步定时为1/20秒,则预设第二时长为1/20秒,服务器每隔1/20秒控制处于同一游戏场景的各个客户端进行一次游戏画面的同步,也即网络数据包的发送频率为20包/秒。
具体实现中,每当游戏同步定时到达时,服务器从各个客户端对应的游戏数据缓冲区队列中分别读取游戏数据,并将分别读取到的游戏数据中各个客户端在同一时间的游戏操作指令和/或游戏状态参数进行汇总,生成网络数据包,进而向该各个客户端发送该网络数据包。
如图3a所示,包括3个客户端,客户端A、客户端B和客户端C,A操作代表客户端A接收到的用户输入的操作(即上述游戏操作指令),B操作和C操作同理,客户端A、客户端B和客户端C分别将各自接收到的用户输入的操作发送给服务器,假设客户端A向服务器发送了3个A操作,客户端B向服务器发送了1个B操作,客户端C向服务器发送了2个C操作,客户端A发送第1个A操作的时间与客户端B发送B操作的时间、客户端C发送第1个C操作的时间相同,客户端A发送第2个A操作的时间与客户端C发送第2个C操作的时间相同,服务器接收这3个客户端分别发送的操作,将3个客户端分别发送的操作按照时间顺序依次存储到对应的游戏数据缓冲区队列中,当游戏同步定时到达时,服务器从这3个客户端对应的游戏数据缓冲区队列中分别取出一个操作,则第一次取出的操作包括第1个A操作、B操作和第1个C操作,将第1个A操作、B操作和第1个C操作合并后生成网络同步包(即上述网络数据包),并分别向客户端A、客户端B和客户端C发送该网络同步包。
同理,当游戏同步定时再次到达时,服务器从这3个客户端对应的游戏数据缓冲区队列中分别取出一个操作,由于客户端B对应的游戏数据缓冲区队列中第二个存储位置处为空,则第二次取出的操作包括第2个A操作和第2个C操作,将第2个A操作和第2个C操作合并后生成网络同步包,并分别向客户端A、客户端B和客户端C发送该网络同步包。
再如图3b所示,包括2个客户端,客户端1P和客户端2P。在t1时刻,客户端1P向服务器发送用户输入的操作Opr1,客户端2P向服务器发送用户输入的操作Opr2;到了t2时刻,客户端2P向服务器发送用户输入的操作Opr3;再到t3时刻,客户端1P向服务器发送用户输入的操作Opr4,将这2个客户端分别发送的操作按照时间顺序依次存储到对应的游戏数据缓冲区队列中,当游戏同步定时到达时,这2个客户端对应的游戏数据缓冲区队列都没有数据,则服务器向这2个客户端发送内容为空(Empty)且带递增序列号的网络同步包;当游戏同步定时再次到达时,服务器从这2个客户端对应的游戏数据缓冲区队列中分别取出一个操作,则本次取出的操作包括客户端1P发送的Opr1和客户端2P发送的Opr2,服务器向这2个客户端发送内容包括Opr1和Opr2的网络同步包;同理,后续当游戏同步定时再次到达时,服务器向这2个客户端发送的网络同步包的内容依次为空、客户端2P发送的Opr3、空、空、客户端1P发送的Opr4。
206、当接收到所述网络数据包时,所述客户端运行所述网络数据包对应的游戏逻辑,并将所述预渲染次数清零。
具体实现中,客户端接收到网络数据包之后,获取网络数据包中处于同一游戏场景的其它客户端向服务器发送的游戏数据,由于该客户端向服务器发送的游戏数据对应的游戏逻辑已经在该客户端本地预先运行过,即该客户端只需运行处于同一游戏场景的其它客户端向服务器发送的游戏数据对应的游戏逻辑即可,从而该客户端根据该其它客户端向服务器发送的游戏数据包括的游戏操作指令和/或游戏状态参数确定出对应的游戏逻辑,并运行该游戏逻辑,从而可以单独同步游戏操作指令对应的游戏动作,也可以单独同步游戏状态信息,还可以同时同步游戏动作和游戏状态信息,具备较强的通用性。
此外,客户端还需将预渲染次数清零,本地预渲染的次数重新开始计数,客户端继续按照本地预渲染定时运行输入的游戏操作指令对应的游戏逻辑,也即进行游戏画面的本地预渲染。
在一些可行的实施方式中,本发明实施例中游戏逻辑的运行可以由两个函数来实现,一个用于客户端本地游戏画面的预渲染,可以记为Update()函数,一个用于游戏画面在多个客户端之间的同步,可以记为UpdateByNet()函数。具体的,本地预渲染定时到达时,客户端调用并执行Update()函数,包括:如果预渲染次数小于或等于预设的预渲染次数阈值,则客户端运行游戏操作指令对应的游戏逻辑,向服务器发送游戏数据(如该游戏操作指令、游戏状态参数等),并将预渲染次数加1,如果预渲染次数大于预设的预渲染次数阈值,则直接返回(return),结束对Update()函数的执行;当接收到服务器发送的网络数据包时,客户端调用并执行UpdateByNet()函数,包括:将网络数据包作为参数传入UpdateByNet()函数,运行网络数据包对应的游戏逻辑,并将预渲染次数清零。
举例来说,将网络数据包的发送频率记为x,通常x的取值在10包/秒~20包/秒,将游戏画面的本地渲染频率记为y,通常y的取值为30帧/秒~60帧/秒,预设的预渲染次数阈值记为MAX_N,MAX_N的最小值可取y/x,通常可以认为1秒的误差对于游戏画面是比较容易纠正的,则MAX_N的取值范围可以设为y/x~60。在网络状况良好(即网络延迟较短)的情况下,游戏画面的本地流畅性和在各个客户端之间的一致性都是非常好的,MAX_N这个参数的设置不会使得用户的游戏体验有所下降。在网络状况较差(即网络延迟较长)的情况下,可以将MAX_N设为较大值,优先运行客户端本地的游戏逻辑,使本地客户端所显示的角色状态,领先远程客户端所显示的角色状态,这个不一致的时间值的下限为网络延迟,上限为MAX_N*网络数据包之间的发送时间间隔(即上述预设第二时长),则本地客户端能保持最多MAX_N*预设第二时长的流畅,付出的代价就是这段时间里本地客户端与远程客户端上游戏画面的不一致(即游戏画面不同步)。如果希望通过牺牲一些流畅性,来减少因为网络延迟造成的游戏画面不一致,则减少MAX_N的值即可。也即,只需通过调整预设的预渲染次数阈值MAX_N的值,就可以调整本地预渲染次数和网络数据包同步次数的比例,从而使得网络游戏表现出不同的一致性/流畅性特征,从而可以适用于各种不同要求的网络游戏,通用性强。
假设,网络延迟为1秒,游戏画面的本地渲染频率y=60帧/秒,网络数据包的发送频率x=20包/秒,则当MAX_N的取值大于或等于20时,由于MAX_N*1/x大于等于1秒,此时,游戏画面的不一致情况由网络延迟决定,如图3c所示,即本地客户端(即客户端A)上的游戏画面表现领先于处于同一游戏场景的其它客户端(即客户端B)的游戏画面1秒的时长。
又假设,网络延迟为1秒,游戏画面的本地渲染频率y=60帧/秒,网络数据包的发送频率x=20包/秒,当MAX_N的取值为10的时候,游戏画面的不一致情况会被控制在MAX_N*1/x=10*1/20秒=0.5秒,如图3d所示,此时本地客户端(即客户端A)上的游戏画面表现领先于处于同一游戏场景的其它客户端(即客户端B)的游戏画面0.5秒的时长,但此时本地客户端上的游戏画面会存在0.5秒的卡顿,游戏画面的流畅性会受一定的影响。
在一些可行的实施方式中,对于不同的网络游戏,可以忍受的不一致性是不同的,在不一致性可以忍受的情况下,可以尽量的调大MAX_N的值以获得本地客户端更多的流畅性。
在一些可行的实施方式中,本实施例提供的游戏同步方法的核心流程可以表示为如图3e所示的形式,具体包括:
客户端A获取用户输入的游戏操作指令。
如果预渲染次数n还未达到预设的预渲染次数阈值MAX_N,则客户端A响应游戏操作指令预先显示角色状态,实现游戏画面在本地的预渲染,并预先计算游戏逻辑,以及向服务器发送该游戏操作指令。
服务器接收到客户端A发送的游戏操作指令后,同时向客户端A和客户端B发送该游戏操作指令。
客户端A接收到该游戏操作指令后,对预先计算的游戏逻辑得到的游戏结果进行纠正,客户端B接收到该游戏操作指令后,计算该游戏操作指令对应的游戏逻辑,以及显示游戏结果。
其中,对于不同类型游戏的同步策略都可以全部抽象成图3e所示的流程,然后通过调整一个简单的参数(即预设的预渲染次数阈值MAX_N)就可以完成游戏在本地客户端的流畅性和在多个客户端之间的一致性上的调整。不管是一个游戏中的不同操作,还是不同游戏的玩法,都可以使用如上所述的算法实现,需要做的仅仅是调整算法的输入(即预设的预渲染次数阈值MAX_N),就能控制游戏在流畅性和一致性上表现出不同的侧重,大大节省了游戏开发调试时的成本。
以下举例说明本实施例提供的游戏同步方法在实际的游戏场景中的应用。
游戏场景一,飞行射击类游戏。由于此类游戏通常是双人合作对抗系统设定的角色,因此其画面一致性要求极低,而游戏中大量的快速弹幕,要求本地客户端运行非常流畅才能保持体验,此类游戏一般会按照各自客户端的运行情况,通过网络来同步一些战斗结果,如击中敌机、玩家飞机被击中。而对于玩家飞机的位置,仅仅是定时发送状态数据(即游戏状态参数),同步到远程客户端上做单纯的显示而已。这种显示可以是完全不同步的。在编写这类实时对战游戏的时候,需要发送和接收的网络数据通常有:击中消息、远程玩家的位置。而所有关于本地玩家的画面表现、是否击中,完全在本地客户端计算,从而针对此类游戏预渲染次数阈值MAX_N可以设置的非常大,例如预渲染次数阈值MAX_N=60,如果网络数据包的发送频率为10包/秒,游戏画面的本地渲染频率为60帧/秒,由于本地客户端每接收到一次网络数据包就会将预渲染次数n清零一次,即每隔1/10秒(即0.1秒)将预渲染次数n清零一次,并且预渲染次数达到预渲染次数阈值需要(1/60)秒*60=1秒,相当于本地客户端不停地进行游戏画面的预渲染,同时当接收到击中消息、远程玩家的位置等网络数据包后进行游戏画面在本地客户端和远程客户端的同步,从而可以保证本地客户端的运行非常流畅。
游戏场景二,横版格斗类游戏。此类游戏既可以多人合作对抗系统设定的角色,也可以互相PK。在对抗系统设定的角色时流畅性要求远远大于一致性;而PK时画面一致性又成为最重要的要求。现有技术一般针对此类游戏会设计2套不同的网络同步算法:在合作对抗系统设定的角色模式下,客户端本地运算所有关于本地玩家的操作,然后广播操作结果,如是否击中怪物,是否被怪物击中,这类消息给远程客户端。远程客户端收到此类消息直接播放其结果,如播放怪物、角色的受击动画,扣减血量;在PK模式下,客户端各自向服务器发送玩家操作,但不立刻在本地运行玩家的操作,服务器在收到各个客户端的操作后,会广播所有这些操作,当客户端收到服务器广播的所有玩家(包括自己)的操作后,才开始在运行画面的渲染和游戏逻辑的计算,这样就能保证各个客户端是完全公平一致的,这种技术也成为“帧同步”。
而采用本实施例提供的游戏同步方法,针对此类游戏只需设计1套不同的网络同步算法,通过调整预渲染次数阈值即可实现,具体包括:在合作对抗系统设定的角色模式下,由于流畅性要求远远大于一致性,预渲染次数阈值MAX_N可以设置的非常大,例如预渲染次数阈值MAX_N=60,如果网络数据包的发送频率为10包/秒,游戏画面的本地渲染频率为60帧/秒,由于本地客户端每接收到一次网络数据包就会将预渲染次数n清零一次,即每隔1/10秒(即0.1秒)将预渲染次数n清零一次,并且预渲染次数达到预渲染次数阈值需要(1/60)秒*60=1秒,相当于本地客户端不停地进行游戏画面的预渲染,包括是否击中怪物,是否被怪物击中,扣减血量等等,同时当接收到网络数据包后进行游戏画面在本地客户端和远程客户端的同步,从而可以保证本地客户端的运行非常流畅。而在PK模式下,画面一致性要求非常高,此时预渲染次数阈值MAX_N可以设置的非常小,例如预渲染次数阈值MAX_N=1,如果网络数据包的发送频率为20包/秒,游戏画面的本地渲染频率为30帧/秒,由于本地客户端每接收到一次网络数据包就会将预渲染次数n清零一次,即每隔1/20秒(即0.05秒)将预渲染次数n清零一次,而预渲染次数达到预渲染次数阈值需要(1/30)秒*1=0.03秒,即本地客户端进行一次游戏画面在本地的预渲染后,不再进行游戏画面在本地的预渲染,而是等待服务器发送的网络数据包,接收到网络数据包后进行游戏画面在本地客户端和远程客户端的同步,从而可以保证画面一致性非常高。
游戏场景三,MOBA类游戏,此类游戏不管是对抗系统设定的角色,还是相互PK,都对操作流畅性要求极高。现有技术一般针对这类游戏会直接采用“帧同步”作为网络同步方法。然而,完全的“帧同步”会导致玩家输入操作有一定的“延迟”,因为需要等待服务器广播回来的网络数据包才会渲染画面,所以一般这类游戏会有一些本地预先运算的部分:如最常见的有移动操作,玩家在输入移动指令后,客户端并不等待服务器广播下发回移动指令包,才进行玩家移动的渲染,而是立刻执行移动渲染,等到移动指令包通过网络返回之后,通过网络包所记载的发出时间,计算出其他客户端所显示的位置,然后进行轻微的拉扯纠正。
而采用本实施例提供的游戏同步方法,通过将预渲染次数阈值MAX_N设置的非常大即可解决流畅性问题,同时还可以避免客户端再进行轻微的拉扯纠正带来的游戏画面有所跳动,例如预渲染次数阈值可以设为MAX_N=60,如果网络数据包的发送频率为10包/秒,游戏画面的本地渲染频率为60帧/秒,由于本地客户端每接收到一次网络数据包就会将预渲染次数n清零一次,即每隔1/10秒(即0.1秒)将预渲染次数n清零一次,并且预渲染次数达到预渲染次数阈值需要(1/60)秒*60=1秒,相当于本地客户端可以不停地进行游戏画面的预渲染,如最常见的移动操作,同时当接收到服务器广播的网络数据包后进行游戏画面在本地客户端和远程客户端的同步,从而可以保证本地客户端的运行非常流畅。
需要说明的是,本实施例所描述的游戏同步方法还可以应用于显示用户实时位置的社区系统,如聊天室。或者,还可以应用于多人地图位置信息共享系统中,用来优化显示地理位置的同步展示,不但可以同步位置,还可以同步行驶的过程等。
本发明实施例中,客户端获取输入的游戏操作指令,当本地预渲染定时到达时,如果预渲染次数小于或等于预设的预渲染次数阈值,则客户端运行游戏操作指令对应的游戏逻辑,完成游戏画面的本地预渲染,并将包括游戏操作指令和/或游戏状态参数的游戏数据发送给服务器。在游戏同步定时到达时,服务器从各个客户端对应的游戏数据缓冲区队列中获取游戏数据,并合并成网络数据包,向各个客户端发送该网络数据包。当接收到网络数据包时,客户端运行网络数据包对应的游戏逻辑,完成游戏画面在各个客户端之间的同步,并将预渲染次数清零,从而根据预设的预渲染次数阈值可以灵活、高效地对游戏的流畅性和一致性进行控制,并可以有效降低游戏的开发成本。
请参阅图4,为本发明实施例提供的一种客户端的结构示意图。本实施例中所描述的客户端,包括:
获取模块401,用于获取输入的游戏操作指令;
处理模块402,用于当本地预渲染定时到达时,根据预渲染次数和预设的预渲染次数阈值运行所述游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染;
接收模块403,用于接收服务器发送的网络数据包;
所述处理模块402,还用于当所述接收模块接收到所述网络数据包时,运行所述网络数据包对应的游戏逻辑,以进行游戏画面在处于同一游戏场景的各个客户端之间的同步,并将所述预渲染次数清零,所述网络数据包包括所述各个客户端发送的游戏数据。
在一些可行的实施方式中,所述客户端还包括:
发送模块404,用于向所述服务器发送游戏数据。
在一些可行的实施方式中,所述处理模块402运行所述网络数据包对应的游戏逻辑的具体方式为:
获取所述网络数据包中处于同一游戏场景的其它客户端向所述服务器发送的游戏数据;
确定所述其它客户端向所述服务器发送的游戏数据对应的游戏逻辑,并运行所述游戏逻辑。
在一些可行的实施方式中,所述游戏数据包括所述游戏操作指令和/或游戏状态参数。
可以理解的是,本实施例的客户端的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本发明实施例中,获取模块401获取输入的游戏操作指令,当本地预渲染定时到达时,处理模块402根据预渲染次数和预设的预渲染次数阈值运行游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染;当接收模块403接收到服务器发送的网络数据包时,处理模块402运行网络数据包对应的游戏逻辑,以进行游戏画面在处于同一游戏场景的各个客户端之间的同步,并将预渲染次数清零,从而根据预渲染次数阈值可以灵活、高效地对游戏的流畅性和一致性进行控制,并可以有效降低游戏的开发成本。
请参阅图5,为本发明实施例提供的一种服务器的结构示意图。本实施例中所描述的服务器,包括:
接收模块501,用于接收处于同一游戏场景的各个客户端在本地预渲染定时到达时发送的游戏数据;
缓存模块502,用于将所述游戏数据对应缓存到预先为所述各个客户端分别建立的游戏数据缓冲区队列中;
生成模块503,用于当游戏同步定时到达时,通过读取所述游戏数据缓冲区队列生成网络数据包;
发送模块504,用于向所述各个客户端发送所述网络数据包,所述网络数据包包括所述游戏数据,所述网络数据包用于所述各个客户端的游戏画面的同步。
在一些可行的实施方式中,所述生成模块503,具体用于:
从所述各个客户端各自对应的游戏数据缓冲区队列中分别获取游戏数据;
将所述分别获取的游戏数据合并后生成网络数据包。
在一些可行的实施方式中,所述游戏数据包括游戏操作指令和/或游戏状态参数。
可以理解的是,本实施例的服务器的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本发明实施例中,接收模块501接收处于同一游戏场景的各个客户端在本地预渲染定时到达时发送的游戏数据,缓存模块502将该游戏数据对应缓存到预先为各个客户端分别建立的游戏数据缓冲区队列中,当游戏同步定时到达时,生成模块503通过读取游戏数据缓冲区队列生成网络数据包,发送模块504向各个客户端发送网络数据包,网络数据包包括游戏数据,网络数据包用于各个客户端的游戏画面的同步,从可以灵活、高效地对游戏的流畅性和一致性进行控制,并可以有效降低游戏的开发成本。
请参阅图6,为本发明实施例提供的另一种客户端的结构示意图。本实施例中所描述的客户端,包括:处理器601、用户接口602、网络接口603及存储器604。其中,处理器601、用户接口602、网络接口603及存储器604可通过总线或其他方式连接,本发明实施例以通过总线连接为例。
其中,处理器601(或称CPU(Central Processing Unit,中央处理器))是客户端的计算核心以及控制核心,其可以解析客户端内的各类指令以及处理客户端的各类数据,例如:CPU可以用于解析用户向客户端所发送的开关机指令,并控制客户端进行开关机操作;再如:CPU可以在客户端内部结构之间传输各类交互数据,等等。用户接口602是实现用户与客户端进行交互和信息交换的媒介,其具体体现可以包括用于输出的显示屏(Display)以及用于输入的键盘(Keyboard)、鼠标、游戏手柄等等,需要说明的是,此处的键盘既可以为实体键盘,也可以为触屏虚拟键盘,还可以为实体与触屏虚拟相结合的键盘。网络接口603可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器601的控制用于收发数据。存储器604(Memory)是客户端中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器604既可以包括客户端的内置存储器,当然也可以包括客户端所支持的扩展存储器。存储器604提供存储空间,该存储空间存储了客户端的操作系统,可包括但不限于:Windows系统(一种操作系统)、Android系统、IOS系统等等,本发明对此并不作限定。
在本发明实施例中,处理器601通过运行存储器604中的可执行程序代码,执行如下操作:
用户接口602,用于获取输入的游戏操作指令;
处理器601,用于当本地预渲染定时到达时,根据预渲染次数和预设的预渲染次数阈值运行所述游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染;
网络接口603,用于接收服务器发送的网络数据包;
所述处理器601,还用于当所述网络接口603接收到所述网络数据包时,运行所述网络数据包对应的游戏逻辑,以进行游戏画面在处于同一游戏场景的各个客户端之间的同步,并将所述预渲染次数清零,所述网络数据包包括所述各个客户端发送的游戏数据。
在一些可行的实施方式中,所述网络接口603,还用于向所述服务器发送游戏数据。
在一些可行的实施方式中,所述处理器601运行所述网络数据包对应的游戏逻辑的具体方式为:
获取所述网络数据包中处于同一游戏场景的其它客户端向所述服务器发送的游戏数据;
确定所述其它客户端向所述服务器发送的游戏数据对应的游戏逻辑,并运行所述游戏逻辑。
在一些可行的实施方式中,所述游戏数据包括所述游戏操作指令和/或游戏状态参数。
具体实现中,本发明实施例中所描述的处理器601、用户接口602、网络接口603及存储器604可执行本发明实施例提供的一种游戏同步方法的流程中所描述的实现方式,也可执行本发明实施例提供的一种客户端中所描述的实现方式,在此不再赘述。
本发明实施例中,用户接口602获取输入的游戏操作指令,当本地预渲染定时到达时,处理器601根据预渲染次数和预设的预渲染次数阈值运行游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染;当网络接口603接收到服务器发送的网络数据包时,处理器601运行网络数据包对应的游戏逻辑,以进行游戏画面在处于同一游戏场景的各个客户端之间的同步,并将预渲染次数清零,从而根据预渲染次数阈值可以灵活、高效地对游戏的流畅性和一致性进行控制,并可以有效降低游戏的开发成本。
请参阅图7,为本发明实施例提供的另一种服务器的结构示意图。本实施例中所描述的服务器,包括:处理器701、网络接口702及存储器703。其中,处理器701、网络接口702及存储器703可通过总线或其他方式连接,本发明实施例以通过总线连接为例。
其中,处理器701(或称中央处理器(Central Processing Unit,CPU))是服务器的计算核心以及控制核心。网络接口702可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器701的控制用于收发数据。存储器703(Memory)是服务器的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器703可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器701的存储装置。存储器703提供存储空间,该存储空间存储了服务器的操作系统和可执行程序代码,可包括但不限于:Windows系统(一种操作系统)、Linux(一种操作系统)系统等等,本发明对此并不作限定。
在本发明实施例中,处理器701通过运行存储器703中的可执行程序代码,执行如下操作:
网络接口702,用于接收处于同一游戏场景的各个客户端在本地预渲染定时到达时发送的游戏数据;
处理器701,用于将所述游戏数据对应缓存到预先为所述各个客户端分别建立的游戏数据缓冲区队列中;
所述处理器701,还用于当游戏同步定时到达时,通过读取所述游戏数据缓冲区队列生成网络数据包;
所述网络接口702,还用于向所述各个客户端发送所述网络数据包,所述网络数据包包括所述游戏数据,所述网络数据包用于所述各个客户端的游戏画面的同步。
在一些可行的实施方式中,所述处理器701,具体用于:
从所述各个客户端各自对应的游戏数据缓冲区队列中分别获取游戏数据;
将所述分别获取的游戏数据合并后生成网络数据包。
在一些可行的实施方式中,所述游戏数据包括游戏操作指令和/或游戏状态参数。
具体实现中,本发明实施例中所描述的处理器701、网络接口702及存储器703可执行本发明实施例提供的一种游戏同步方法的流程中所描述的实现方式,也可执行本发明实施例提供的一种服务器中所描述的实现方式,在此不再赘述。
本发明实施例中,网络接口702接收处于同一游戏场景的各个客户端在本地预渲染定时到达时发送的游戏数据,处理器701将该游戏数据对应缓存到预先为各个客户端分别建立的游戏数据缓冲区队列中,当游戏同步定时到达时,处理器701通过读取游戏数据缓冲区队列生成网络数据包,网络接口702向各个客户端发送网络数据包,网络数据包包括游戏数据,网络数据包用于各个客户端的游戏画面的同步,从可以灵活、高效地对游戏的流畅性和一致性进行控制,并可以有效降低游戏的开发成本。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (13)

1.一种游戏同步方法,其特征在于,包括:
获取输入的游戏操作指令;
当本地预渲染定时到达时,如果预渲染次数小于或等于预设的预渲染次数阈值,则运行所述游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染,并向服务器发送游戏数据,以使得所述服务器将所述游戏数据对应缓存到预先建立的游戏数据缓冲区队列中,所述本地预渲染定时用于表示客户端本地每隔预设第一时长渲染一次游戏画面;
当接收到所述服务器在游戏同步定时到达时发送的网络数据包时,运行所述网络数据包对应的游戏逻辑,以进行游戏画面在处于同一游戏场景的各个客户端之间的同步,并将所述预渲染次数清零,所述网络数据包是由所述服务器通过读取所述各个客户端各自对应的游戏数据缓冲区队列生成的。
2.根据权利要求1所述的方法,其特征在于,所述运行所述网络数据包对应的游戏逻辑,包括:
获取所述网络数据包中处于同一游戏场景的其它客户端向所述服务器发送的游戏数据;
确定所述其它客户端向所述服务器发送的游戏数据对应的游戏逻辑,并运行所述游戏逻辑。
3.根据权利要求1所述的方法,其特征在于,
所述游戏数据包括所述游戏操作指令和/或游戏状态参数。
4.一种游戏同步方法,其特征在于,包括:
接收处于同一游戏场景的各个客户端的游戏数据,所述游戏数据是由所述各个客户端在本地预渲染定时到达时,如果预渲染次数小于或等于预设的预渲染次数阈值,则运行游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染后发送的,所述本地预渲染定时用于表示客户端本地每隔预设第一时长渲染一次游戏画面;
将所述游戏数据对应缓存到预先为所述各个客户端分别建立的游戏数据缓冲区队列中;
当游戏同步定时到达时,通过读取所述游戏数据缓冲区队列生成网络数据包,并向所述各个客户端发送所述网络数据包,所述网络数据包包括所述游戏数据,以使得所述各个客户端根据所述网络数据包进行游戏画面的同步,并将所述预渲染次数清零。
5.根据权利要求4所述的方法,其特征在于,所述通过读取所述游戏数据缓冲区队列生成网络数据包,包括:
从所述各个客户端各自对应的游戏数据缓冲区队列中分别获取游戏数据;
将所述分别获取的游戏数据合并后生成网络数据包。
6.根据权利要求4或5所述的方法,其特征在于,
所述游戏数据包括游戏操作指令和/或游戏状态参数。
7.一种客户端,其特征在于,包括:
获取模块,用于获取输入的游戏操作指令;
处理模块,用于当本地预渲染定时到达时,如果预渲染次数小于或等于预设的预渲染次数阈值,则运行所述游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染,所述本地预渲染定时用于表示客户端本地每隔预设第一时长渲染一次游戏画面;
发送模块,用于在所述处理模块运行所述游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染后向服务器发送游戏数据,以使得所述服务器将所述游戏数据对应缓存到预先建立的游戏数据缓冲区队列中;
接收模块,用于接收所述服务器在游戏同步定时到达时发送的网络数据包;
所述处理模块,还用于当所述接收模块接收到所述网络数据包时,运行所述网络数据包对应的游戏逻辑,以进行游戏画面在处于同一游戏场景的各个客户端之间的同步,并将所述预渲染次数清零,所述网络数据包是由所述服务器通过读取所述各个客户端各自对应的游戏数据缓冲区队列生成的。
8.根据权利要求7所述的客户端,其特征在于,所述处理模块运行所述网络数据包对应的游戏逻辑的具体方式为:
获取所述网络数据包中处于同一游戏场景的其它客户端向所述服务器发送的游戏数据;
确定所述其它客户端向所述服务器发送的游戏数据对应的游戏逻辑,并运行所述游戏逻辑。
9.根据权利要求7所述的客户端,其特征在于,
所述游戏数据包括所述游戏操作指令和/或游戏状态参数。
10.一种服务器,其特征在于,包括:
接收模块,用于接收处于同一游戏场景的各个客户端的游戏数据,所述游戏数据是由所述各个客户端在本地预渲染定时到达时,如果预渲染次数小于或等于预设的预渲染次数阈值,则运行游戏操作指令对应的游戏逻辑,以进行游戏画面的预渲染后发送的,所述本地预渲染定时用于表示客户端本地每隔预设第一时长渲染一次游戏画面;
缓存模块,用于将所述游戏数据对应缓存到预先为所述各个客户端分别建立的游戏数据缓冲区队列中;
生成模块,用于当游戏同步定时到达时,通过读取所述游戏数据缓冲区队列生成网络数据包;
发送模块,用于向所述各个客户端发送所述网络数据包,所述网络数据包包括所述游戏数据,以使得所述各个客户端根据所述网络数据包进行游戏画面的同步,并将所述预渲染次数清零。
11.根据权利要求10所述的服务器,其特征在于,所述生成模块,具体用于:
从所述各个客户端各自对应的游戏数据缓冲区队列中分别获取游戏数据;
将所述分别获取的游戏数据合并后生成网络数据包。
12.根据权利要求10或11所述的服务器,其特征在于,
所述游戏数据包括游戏操作指令和/或游戏状态参数。
13.一种游戏同步系统,其特征在于,包括:如权利要求7~9中任一项所述的客户端和如权利要求10~12中任一项所述的服务器。
CN201710600716.9A 2017-07-21 2017-07-21 一种游戏同步方法、系统及相关设备 Active CN107222510B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710600716.9A CN107222510B (zh) 2017-07-21 2017-07-21 一种游戏同步方法、系统及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710600716.9A CN107222510B (zh) 2017-07-21 2017-07-21 一种游戏同步方法、系统及相关设备

Publications (2)

Publication Number Publication Date
CN107222510A CN107222510A (zh) 2017-09-29
CN107222510B true CN107222510B (zh) 2018-10-09

Family

ID=59953754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710600716.9A Active CN107222510B (zh) 2017-07-21 2017-07-21 一种游戏同步方法、系统及相关设备

Country Status (1)

Country Link
CN (1) CN107222510B (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107930129B (zh) * 2017-11-30 2022-01-28 网易(杭州)网络有限公司 基于虚拟场景的通信方法、介质、装置和计算设备
CN108144303A (zh) * 2017-12-01 2018-06-12 腾讯科技(深圳)有限公司 游戏帐号之间的交互方法和装置、存储介质及电子装置
CN108159691B (zh) * 2017-12-06 2020-07-14 北京像素软件科技股份有限公司 游戏状态同步方法及系统
CN108379832B (zh) * 2018-01-29 2021-03-30 珠海金山网络游戏科技有限公司 一种游戏同步方法和装置
CN108310766B (zh) * 2018-02-06 2021-12-21 网易(杭州)网络有限公司 数据处理方法和装置、存储介质、处理器及终端
CN113786610B (zh) * 2018-02-11 2024-05-31 鲸彩在线科技(大连)有限公司 载具位置修正方法、装置、第二客户端、第二电子设备
CN108540454B (zh) * 2018-03-16 2020-09-15 武汉微派网络科技有限公司 碰撞同步方法、客户端及存储介质
CN108171783A (zh) 2018-03-20 2018-06-15 联想(北京)有限公司 图像渲染方法、系统以及电子设备
CN111385589B (zh) * 2018-12-28 2020-12-08 广州市百果园信息技术有限公司 基于多人语音房的游戏直播方法、介质及计算机设备
CN109999490B (zh) * 2019-04-18 2020-03-31 贵阳动视云科技有限公司 一种降低联网云应用延迟的方法及系统
CN110138769B (zh) * 2019-05-09 2021-06-15 深圳市腾讯网域计算机网络有限公司 一种图像传输的方法以及相关装置
CN110659094A (zh) * 2019-09-11 2020-01-07 北京达佳互联信息技术有限公司 一种对象渲染及其控制方法、装置、设备及介质
CN110659032B (zh) * 2019-09-24 2023-08-22 网易(杭州)网络有限公司 游戏应用的指令执行方法、装置、终端设备和存储介质
CN111111162A (zh) * 2019-12-24 2020-05-08 北京像素软件科技股份有限公司 游戏npc的数据同步方法、装置、存储介质和服务器
CN111632382B (zh) * 2020-05-25 2021-06-25 腾讯科技(深圳)有限公司 游戏数据同步方法、装置、计算机及可读存储介质
CN111569426B (zh) * 2020-06-09 2021-08-24 网易(杭州)网络有限公司 游戏场景的编辑方法、装置、存储介质和电子装置
CN112221120B (zh) * 2020-10-15 2024-07-23 网易(杭州)网络有限公司 游戏状态同步方法、装置、电子设备及存储介质
CN112206540B (zh) * 2020-10-19 2022-08-26 珠海金山数字网络科技有限公司 数据处理方法及装置
CN113018857B (zh) * 2021-04-09 2023-07-18 腾讯科技(深圳)有限公司 游戏操作数据处理方法、装置、设备及存储介质
CN112999652A (zh) * 2021-04-28 2021-06-22 苏州仙峰网络科技股份有限公司 一种高效网络同步方法、装置及系统
CN114653056A (zh) * 2022-03-28 2022-06-24 深圳市瑞云科技有限公司 一种多人异地同玩云游戏的方法
CN114904265A (zh) * 2022-04-20 2022-08-16 西安万像电子科技有限公司 数据处理方法、装置、存储介质及电子设备
CN117046103B (zh) * 2023-07-18 2024-07-12 广州三七极梦网络技术有限公司 游戏战斗处理方法、装置、设备及存储介质
CN116617659B (zh) * 2023-07-26 2023-12-12 深圳市凉屋游戏科技有限公司 基于数据同步周期的游戏画面渲染方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069258B1 (en) * 2007-09-11 2011-11-29 Electronic Arts Inc. Local frame processing to apparently reduce network lag of multiplayer deterministic simulations
CN103077015A (zh) * 2012-12-25 2013-05-01 福州博远无线网络科技有限公司 一种动态控制游戏帧率的方法
CN103634333A (zh) * 2012-08-21 2014-03-12 腾讯科技(深圳)有限公司 网络应用的数据同步方法和装置
CN106559426A (zh) * 2016-11-24 2017-04-05 腾讯科技(深圳)有限公司 一种基于帧同步的数据处理方法和服务器以及客户端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069258B1 (en) * 2007-09-11 2011-11-29 Electronic Arts Inc. Local frame processing to apparently reduce network lag of multiplayer deterministic simulations
CN103634333A (zh) * 2012-08-21 2014-03-12 腾讯科技(深圳)有限公司 网络应用的数据同步方法和装置
CN103077015A (zh) * 2012-12-25 2013-05-01 福州博远无线网络科技有限公司 一种动态控制游戏帧率的方法
CN106559426A (zh) * 2016-11-24 2017-04-05 腾讯科技(深圳)有限公司 一种基于帧同步的数据处理方法和服务器以及客户端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《大型多人在线游戏同步策略的研究和设计》;陈国青;《优秀硕士学位论文-2010年工程科技Ⅰ辑》;20100830;全文 *

Also Published As

Publication number Publication date
CN107222510A (zh) 2017-09-29

Similar Documents

Publication Publication Date Title
CN107222510B (zh) 一种游戏同步方法、系统及相关设备
CN111767503B (zh) 一种游戏数据处理方法、装置、计算机及可读存储介质
WO2018019160A1 (zh) 碰撞控制方法、装置及存储介质
CN108619720A (zh) 动画的播放方法和装置、存储介质、电子装置
US11724182B2 (en) Dynamic streaming video game client
JP7451563B2 (ja) 仮想キャラクタの制御方法並びにそのコンピュータ機器、コンピュータプログラム、及び仮想キャラクタの制御装置
KR100823774B1 (ko) 메시지 출력장치, 메시지 제어방법, 및 정보기록매체
CN111744177B (zh) 游戏数据处理方法和装置、存储介质和电子设备
US20230043121A1 (en) Skill casting method and apparatus of virtual object, device, and storage medium
US11110352B2 (en) Object moving method and apparatus, storage medium, and electronic apparatus
CN106914019B (zh) 一种数据处理方法、装置及服务器
US11752426B2 (en) Peer-to-peer multiplayer cloud gaming architecture
JP2023552212A (ja) 対局決済インタフェースの表示方法、装置、機器及びコンピュータプログラム
US20240261674A1 (en) State stream game engine
CN112604286B (zh) 一种游戏技能同步执行方法及装置
CN109873876A (zh) 一种分布式虚拟环境的交互和计算负载均衡分配的方法
CN109582389B (zh) 消息处理方法、装置、存储介质、处理器及终端
KR20150017016A (ko) 게임 스킬 구현 방법 및 서버
CN113018861A (zh) 虚拟角色显示方法、装置、计算机设备和存储介质
KR101400536B1 (ko) 온라인 게임 서비스에서의 캐릭터간 충격 반응 표시 방법 및 서버, 및 충격 반응 표시 기능을 가지는 온라인 게임 시스템
US10834561B2 (en) Smart hardware operation method and apparatus
CN111790155A (zh) 一种网络游戏状态同步方法、装置、终端及存储介质
CN111228818A (zh) 通信交互方法、装置、存储介质、处理器及电子装置
WO2023231557A9 (zh) 虚拟对象的互动方法、装置、设备、存储介质及程序产品
Sun Interactive Media and Game Development Master’s Project

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
GR01 Patent grant