CN103780694A - 广域网实时互动游戏分布式联网方法、装置及系统 - Google Patents
广域网实时互动游戏分布式联网方法、装置及系统 Download PDFInfo
- Publication number
- CN103780694A CN103780694A CN201410029359.1A CN201410029359A CN103780694A CN 103780694 A CN103780694 A CN 103780694A CN 201410029359 A CN201410029359 A CN 201410029359A CN 103780694 A CN103780694 A CN 103780694A
- Authority
- CN
- China
- Prior art keywords
- party
- wide area
- area network
- running status
- time interactive
- 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
- 230000002452 interceptive effect Effects 0.000 title claims abstract description 185
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000006855 networking Effects 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims abstract description 14
- 230000001360 synchronised effect Effects 0.000 claims description 124
- 230000006854 communication Effects 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 5
- 238000012797 qualification Methods 0.000 claims description 3
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008030 elimination Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种广域网实时互动游戏分布式联网方法,该方法包括以下步骤:在终端设备上运行广域网实时互动游戏;将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算;将各所述终端设备上运行的广域网实时互动游戏的运行过程的用户表现和游戏结果上报所述服务器。本发明通过在终端设备上运行具体游戏的业务逻辑,服务器仅用于处理广域网实时互动游戏运行后的数据,从而减少了服务器的压力。另外,本发明还提供了一种广域网实时互动游戏分布式联网装置及一种使用广域网实时互动游戏分布式联网方法的网络系统。
Description
技术领域
本发明涉及计算机软件领域,尤其涉及一种广域网实时互动游戏分布式联网方法、装置及系统。
背景技术
现有的网络游戏大多采用集中式处理。游戏场景、物品生成、游戏逻辑执行及结果判定均由游戏服务器进行处理和运算。同时,所有客户端均和服务器进行直连通讯,数据吞吐量非常大,服务器的带宽和机器配置都要求非常高。
发明内容
本发明实施例所要解决的技术问题是提供一种广域网实时互动游戏分布式联网方法、装置及系统,将大部分业务逻辑放在客户端完成,从而降低服务器的性能需求。
本发明实施例提供一种广域网实时互动游戏分布式联网方法,该方法包括以下步骤:
在终端设备上运行广域网实时互动游戏;
将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算;
将各所述终端设备上运行的广域网实时互动游戏的运行过程的用户表现和游戏结果上报所述服务器。
其中,在将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算的步骤中还包括以下子步骤:
判断网络状况是否可进行P2P穿透:
若网络状况可进行P2P穿透,采用P2P穿透技术同步。
其中,在将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算的步骤中还包括以下子步骤:
获取当前所述广域网实时互动游戏的己方输入指令;
按照时间先后顺序保存所述己方输入指令;
根据预设的帧时间间隔将所述己方输入指令及所述广域网实时互动游戏的运行状态生成至少一个己方数据帧,各所述己方数据帧分别对应一个所述己方输入指令及当时对应的所述广域网实时互动游戏的运行状态;
发送己方数据包,所述己方数据包包括至少一个待同步的所述己方数据帧,所述己方数据帧的帧数小于等于同步临界值;
获取其他所述广域网实时互动游戏发送的与所述己方数据包相同方式生成的他方数据包;
判断当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差是否大于等于所述同步临界值;
若当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差小于所述同步临界值,将所述他方数据包内的他方数据帧对应的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应,根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。
其中,在所述获取当前所述广域网实时互动游戏的己方输入指令的步骤之前还包括:
通过服务器联网各终端设备内置的所述广域网实时互动游戏;
同步至少两个所述终端设备的所述广域网实时互动游戏的初始状态至相同。
其中,在所述若当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差小于所述同步临界值,将所述他方数据包内的他方数据帧对应的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应,根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏的步骤中还包括以下子步骤:
解析所述他方数据包,获取他方数据帧对应的各他方输入指令及他方运行状态;
将所述他方数据包内的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应;
将所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态逐个同步。
其中,在所述将所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态逐个同步的步骤之后还包括以下步骤:
判断所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态是否全部同步;
若所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态全部同步,则根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。
其中,在所述发送己方数据包,所述己方数据包包括至少一个待同步的所述己方数据帧,所述己方数据帧的帧数小于等于同步临界值步骤中,还包括以下步骤:
根据通信过程中网络状态的变化,动态检测并调整所述同步临界值,当网络状况好的情况下,减小所述同步临界值;当网络状况差的情况,增加所述同步临界值。
相应的,本发明实施例还提供了一种广域网实时互动游戏分布式联网装置,所述广域网实时互动游戏分布式联网装置包括:
处理模块,用于在终端设备上运行广域网实时互动游戏;
同步模块,用于将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算;
上报模块,用于将各所述终端设备上运行的广域网实时互动游戏的运行过程的用户表现和游戏结果上报所述服务器。
其中,所述同步模块还包括:
网络判断模块,用于判断网络状况是否可进行P2P穿透;
穿透模块,用于采用P2P穿透技术同步。
其中,所述同步模块还包括:
获取模块,用于获取当前所述广域网实时互动游戏的己方输入指令;
指令存储模块,用于按照时间先后顺序保存所述己方输入指令;
数据帧生成模块,用于根据预设的帧时间间隔将所述己方输入指令及所述广域网实时互动游戏的运行状态生成至少一个己方数据帧,各所述己方数据帧分别对应一个所述己方输入指令及当时对应的所述广域网实时互动游戏的运行状态;
发送模块,用于发送己方数据包,所述己方数据包包括至少一个待同步的所述己方数据帧,所述己方数据帧的帧数小于等于同步临界值;
接收模块,用于获取其他所述广域网实时互动游戏发送的与所述己方数据包相同方式生成的他方数据包;
判断模块,用于判断当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差是否大于等于所述同步临界值;
同步子模块,用于将所述他方数据包内的他方数据帧对应的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应,根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。
其中,所述同步模块还包括:
通信模块,用于通过服务器联网各终端设备内置的广域网实时互动游戏;
初始化模块,用于同步至少两个终端设备的广域网实时互动游戏的初始状态至相同。
其中,所述同步子模块还包括:
解析子模块,用于解析所述他方数据包,获取他方数据帧对应的各他方输入指令及他方运行状态;
映射子模块,用于将所述他方数据包内的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应;
所述处理子模块,用于将所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态逐个同步。
其中,所述同步子模块还包括:
同步进程子模块,用于判断所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态是否全部同步;
运行子模块,用于当所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态全部同步后,根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。
其中,所述发送模块还包括:
调整模块,用于根据通信过程中网络状态的变化,动态检测并调整所述同步临界值,当网络状况好的情况下,减小所述同步临界值;当网络状况差的情况,增加所述同步临界值。
一种网络系统,所述网络系统包括服务器及至少两个终端设备,各所述终端设备均运行一个广域网实时互动游戏,所述至少两个终端设备通过所述服务器进行广域网联网,并同步各所述广域网实时互动游戏,其中,各所述终端设备均包括上述的广域网实时互动游戏分布式联网装置。
其中,所述服务器根据各所述终端设备内置的所述广域网实时互动游戏中玩家的熟练程度、系统相应速度、网络状态及硬件配置进行配对。
本发明实施例中,通过在终端设备上运行具体游戏的业务逻辑,服务器仅用于处理广域网实时互动游戏运行后的数据,从而减少了服务器的压力。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施方式提供的一种广域网实时互动游戏分布式联网方法的网络示意图;
图2是本发明第一实施方式提供的一种广域网实时互动游戏分布式联网方法的流程图;
图3是本发明第一实施方式提供的一种广域网实时互动游戏分布式联网装置的模块化结构图;
图4是本发明第二实施方式提供的一种广域网实时互动游戏分布式联网方法的服务端及客户端示意图;
图5是本发明第二实施例提供的一种广域网实时互动游戏分布式联网方法的流程图;
图6是图5的部分流程图;
图7是本发明第二实施例提供的一种广域网实时互动游戏分布式联网装置的数据交换示意图;
图8是本发明第二实施例提供的一种广域网实时互动游戏分布式联网装置的模块化结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例所要解决的技术问题是提供一种广域网实时互动游戏分布式联网方法、装置及系统,将大部分业务逻辑放在客户端完成,从而降低服务器的性能需求,大大降低服务器的带宽需求,最终达到低成本服务器架构的游戏系统。以下分别进行详细说明。
请参阅图1,是本发明实施例提供的一种广域网实时互动游戏分布式联网方法的流程图。其中,图1所描述的广域网实时互动游戏分布式联网方法适用于各种终端设备,例如移动手机、掌上电脑(Personal Digital Assistant,PDA)、掌上游戏机、平板电脑、数码相机以及其他移动互联网设备(Mobile Internet Devices,MID)等,同样适合电视、机顶盒、PC和手提电脑等终端,本发明实施例不作具体限定。所述广域网实时互动游戏可以是街机广域网实时互动游戏、家用机广域网实时互动游戏、电脑广域网实时互动游戏、手掌机广域网实时互动游戏、电脑用手机广域网实时互动游戏等游戏,本发明实施例不作限定。至少两个所述广域网实时互动游戏通过广域网联网,并同步各所述广域网实时互动游戏,建立一个网络系统1。所述分布式联网方法仅通过广域网传输数据,即没有采用现有的RPC(Remote Procedure CallProtocol,远程过程调用协议)通信机制。具体地,两个所述广域网实时互动游戏通过对等连接(P2P,Peer-to-Peer)或者服务器中转通信方式通信。请一并参阅图1及图2,本发明第一实施方式提供的广域网实时互动游戏分布式联网方法可以包括以下步骤。
步骤101,在终端设备上运行广域网实时互动游戏。本实施方式中,在终端设备100及终端设备200上运行广域网实时互动游戏。所述广域网实时互动游戏为模拟器游戏。所述终端设备100及终端设备200均为手机,所述终端设备100及终端设备200实现所述广域网实时互动游戏分布式联网方法的具体步骤相同。所述终端设备100及终端设备200分别安装一个所述广域网实时互动游戏。具体地,所述广域网实时互动游戏为在终端设备100及终端设备200上预先安装的使用模拟器软件模拟街机运行rom游戏文件运行的“拳皇”、“合金弹头”等对战类游戏。所述终端设备100和终端设备200上分别运行所述广域网实时互动游戏。所述广域网实时互动游戏的游戏场景、物品生成、怪物生成及主要的业务逻辑等均在终端设备上实现,减少服务器的性能需求及运行压力。当然,在其他实施方式中,所述广域网实时互动游戏也可以是“英雄联盟”、CF、跑跑卡丁车等网游。所述广域网实时互动游戏同步方法可用于3个、4个或更多个终端设备运行。
步骤103,将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算。本实施方式中,所述终端设备100及终端设备200与所述服务器300广域网联网,并同步各所述广域网实时互动游戏,建立一个网络系统。两个所述终端设备100、200通信时通过UDP协议进行通信。当然,在其他实施方式中,所述广域网实时互动游戏分布式联网方法可用于3个、4个或更多个终端设备运行。
所述终端设备100及终端设备200可以通过P2P穿透或服务器转发建立客户端之间的通信链路。所述终端设备100通过路由器9、服务器300及路由器8与所述终端设备100进行广域网连接,通过对所述终端设备100及终端设备200的网络状况进行分析判断是否可进行P2P穿透(即两个主机间建立一条直接进行数据通信的键路),若穿透无可能性,则切换为使用服务器转发建立客户端之间的通信链路。具体地,所述服务器300判断所述终端设备100及终端设备200是否同时采用对称网络地址转换(Symmetic NAT)。若所述终端设备100及终端设备200同时采用Symmetic NAT,则所述服务器300判断所述终端设备100及终端设备200无法实现打通。若所述终端设备100及终端设备200中仅一个采用Symmetic NAT,则所述服务器300判断所述终端设备100及终端设备200能够实现打通。本实施方式中,所述终端设备100采用Symmetic NAT,所述终端设备200采用锥形网络地址转换(Cone NAT)。Symmetic NAT每次发往不同的目标端口映射会变化,Cone NAT每次发往不同的目标端口映射不变。由于所述终端设备100及终端设备200中仅一个采用Symmetic NAT,所以所述终端设备100及终端设备200可以实现打通。当然,在其他实施方式中,还可以采用其他方式进行判断网络是否可进行P2P穿透。
打通时,所述终端设备100通过其端口9999连接所述服务器300的23.3.213.2:6666端口,路由9产生一条NAT记录192.168.1.2:9999->23.3.213.2:6666[33.29.112.4:4000];同理所述终端设备200通过其端口9999连接所述服务器300的23.3.213.2:6666端口,所述路由器8产生一条NAT记录192.168.1.2:9999->23.3.213.2:?[43.12.6.32:12100];所述服务器300识别到所述终端设备100为33.29.112.4:4000,识别到所述终端设备200为43.12.6.32:12100。此时为了让所述终端设备100及终端设备200实现p2p通信,所述服务器300通知所述终端设备200去发送打洞包到33.29.112.4:4000,使得所述路由器8上建立NAT记录192.168.1.2:9999->33.29.112.4:?[43.12.6.32:12100],之后所述终端设备100发向B43.12.6.32:12100的数据包通过所述路由器9的新NAT记录192.168.1.2:9999->43.12.6.32:12100[33.29.112.4:4001]发往所述路由器8,可以通过所述路由器8的NAT,被所述终端设备200接收和处理,同时所述终端设备200更新所述终端设备100的地址和端口为33.29.112.4:4001,此时,所述终端设备200可以通过33.29.112.4:4001穿过所述路由器9的NAT给所述终端设备100发送消息,即实现了所述终端设备100及终端设备200的双向P2P通信。P2P数据同步的逻辑是双方在操作中将用户各自的输入指令(键盘、触摸、鼠标等)、游戏配置及运行状态同步给对端,双方所述终端设备100及终端设备200负责处理输入和状态,保证所述终端设备100及终端设备200得到相同的输出画面,使得双方能一起享受游戏。游戏过程中可以不需要所述服务器300参与所述终端设备100及终端设备200各自的广域网实时互动游戏内部数据的处理和同步。当所述终端设备100及终端设备200无法通过P2P穿透时,所述服务器300仅负责转发所述终端设备100及终端设备200之间的通信链路。所述服务器300不涉及所述终端设备100及终端设备200各自运行的广域网实时互动游戏的业务逻辑及数据同步。
步骤105,将各所述终端设备上运行的广域网实时互动游戏的运行过程的用户表现和游戏结果上报所述服务器。本实施方式中,所述运行过程的用户表现和游戏结果可以是得分、行为、胜负、游戏的对战结果、获胜次数、操作次数的统计、消灭怪物等参数。所述服务器300包含多台应用服务器(未图示)。所述终端设备100及终端设备200各自的广域网实时互动游戏的对战结果上传所述服务器300,所述服务器300做校验、统计、积分、比赛奖励、输赢结果等处理。
本实施方式提供的一种广域网实时互动游戏同步方法主要用于对战类游戏而设计。通过在终端设备上运行具体游戏的业务逻辑,服务器仅用于处理广域网实时互动游戏运行后的数据,从而减少了服务器的压力。相对传统集中式系统具有更强灵活性,服务器配置和带宽要求不高,在同等条件下,可以支持更多客户端接入。分布式游戏系统一台普通业务服务器,最大可支撑6万多活跃用户同时在线。而传统游戏系统中一台高性能服务器一般只能支撑0.5~2万的活跃用户同时在线。根据实际测试,通过本发明实施例提供的广域网实时互动游戏分布式联网方法,服务端仅一台业务服务器,可支撑6万活跃用户同时在线游戏。
请一并参阅图1及图3,为本发明第一实施方式提供的一种广域网实时互动游戏分布式联网装置400。所述广域网实时互动游戏分布式联网装置400设置于一个终端设备100、200中。所述广域网实时互动游戏分布式联网装置400用于将2个所述终端设备100、200上运行广域网实时互动游戏广域网联网。
所述广域网实时互动游戏分布式联网装置400包括处理模块410、同步模块420及上报模块430。
所述处理模块410,用于在终端设备上运行广域网实时互动游戏。本实施方式中,所述处理模块410用于处理所述广域网实时互动游戏的游戏场景、物品生成、怪物生成及主要的业务逻辑等。
所述同步模块420,用于将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算。本实施方式中,两个设置于所述终端设备100及终端设备200中的所述同步模块420通过UDP协议进行通信。两个所述同步模块420可以通过P2P穿透或服务器转发建立客户端之间的通信链路进行同步。两个所述同步模块420分别将所述终端设备100及终端设备200各自的输入指令(键盘、触摸、鼠标等)、游戏配置及运行状态同步给对端。游戏过程中不需要所述服务器300参与所述终端设备100及终端设备200各自的广域网实时互动游戏内部数据的处理和同步。当两个所述同步模块420通过P2P穿透时,两个所述同步模块420通过所述终端设备100的路由器及所述终端设备200路由器,将用户各自的输入指令(键盘、触摸、鼠标等)、游戏配置及运行状态通过P2P数据同步方式同步给对端。当两个所述同步模块420通过所述服务器300转发建立客户端之间的通信链路进行同步时,所述服务器300不涉及所述终端设备100及终端设备200各自运行的广域网实时互动游戏的业务逻辑,仅用于辅助实现数据同步。
所述上报模块430,用于将各所述终端设备上运行的广域网实时互动游戏的运行过程的用户表现和游戏结果上报所述服务器。本实施方式中,所述运行过程的用户表现和游戏结果可以是游戏的对战结果、获胜次数、操作次数的统计、消灭怪物等参数。所述终端设备100及终端设备200中的所述上报模块430分别获取各自的游戏的运行过程的用户表现和游戏结果,将其报所述服务器300。具体地,所述上报模块430将各自的广域网实时互动游戏的对战结果上传所述服务器300,所述服务器300做校验、统计、积分、比赛奖励、输赢结果等处理。
请一并参阅图4至图6,为本发明第二实施方式提供的广域网实时互动游戏分布式联网方法,该方法可以包括以下步骤。
步骤201,在终端设备上运行广域网实时互动游戏。本实施方式中,两个用户分别在终端设备500及终端设备600上运行各自的所述广域网实时互动游戏。具体地,所述终端设备500及终端设备600上均运行“拳皇97”。
步骤203,判断网络状况是否可进行P2P穿透。本实施方式中,根据服务器700反馈的指示判断网络状况是否可进行P2P穿透。具体地,根据所述终端设备100及终端设备200是否同时采用对称网络地址转换判断网络状况是否可进行P2P穿透。若所述终端设备500及终端设备600同时采用Symmetic NAT,则判断所述终端设备500及终端设备600无法实现打通。若所述终端设备500及终端设备600中仅一个采用Symmetic NAT,则判断所述终端设备500及终端设备600能够实现打通。
步骤205,若网络状况可进行P2P穿透,采用P2P穿透技术同步。本实施方式中,所述终端设备500通过其端口9999连接所述服务器300的23.3.213.2:6666端口,路由19产生一条NAT记录192.168.1.2:9999->23.3.213.2:6666[33.29.112.4:4000];同理所述终端设备600通过其端口9999连接所述服务器700的23.3.213.2:6666端口,所述路由器(未图示)产生一条NAT记录192.168.1.2:9999->23.3.213.2:?[43.12.6.32:12100];所述服务器700识别到所述终端设备500为33.29.112.4:4000,识别到所述终端设备600为43.12.6.32:12100。此时为了让所述终端设备500及终端设备600实现p2p通信,所述服务器700通知所述终端设备700去发送打洞包到33.29.112.4:4000,使得所述路由器上建立NAT记录192.168.1.2:9999->33.29.112.4:?[43.12.6.32:12100],之后所述终端设备500发向B43.12.6.32:12100的数据包通过所述路由器(未图示)的新NAT记录192.168.1.2:9999->43.12.6.32:12100[33.29.112.4:4001]发往所述路由器,可以通过所述路由器的NAT,被所述终端设备600接收和处理,同时所述终端设备600更新所述终端设备500的地址和端口为33.29.112.4:4001,此时,所述终端设备600可以通过33.29.112.4:4001穿过所述路由器的NAT给所述终端设备500发送消息,即实现了所述终端设备500及终端设备600的双向P2P通信。
步骤207、通过服务器联网各终端设备内置的所述广域网实时互动游戏。本实施方式中,所述服务器700包含多台应用服务器,其中包括用户中心服务701-用于用户鉴权、用户登陆注册等。接入服务702-用户接入交互、智能分配等服务。游戏业务服务703-用于处理所述终端设备500及终端设备600游戏数据的处理、辅助p2p穿透数据转发和判定等。
本实施方式中,还包括以下子步骤:
将所述各终端设备内置的所述广域网实时互动游戏进行配对。本实施方式中,所述接入服务702应用服务器根据各终端设备内置的所述广域网实时互动游戏中玩家的熟练程度、系统相应速度、网络状态及硬件配置等参数进行配对。例如,玩家的等级相同或相近的配对,响应速度相同或相近的配对、网络延迟低和网络延迟低的配对、网络延迟高和网络延迟高的配对,相同网络运营商的配对,硬件配置好的配对等等配对方式。使得各终端设备的玩家体验相近,提高用户体验,维护游戏公平性。
步骤209,同步至少两个所述终端设备的所述广域网实时互动游戏的初始状态至相同。本发明实施例中,数据同步开始可以由服务器触发,或者由需要同步的任意一方出发开始信号,在参数初始化时,将终端设备100、终端设备200的广域网实时互动游戏同时初始到游戏的开始界面,将两个游戏进行相同的配置。
步骤211,获取当前所述广域网实时互动游戏的己方输入指令。本实施方式中,以所述终端设备500为例,所述终端设备500接收用户输入,所述己方输入指令可以是例如上下左右的方向键的输入、A键、B键、X键、Y键、L键、R键的动作键的输入指令、开始键、选择键的状态键的输入指令、重力方向的输入指令、动作输入指令等输入方式。所述己方输入指令的输入方式可以是通过物理键盘输入、触控输入、外设手柄输入、Wii标准控制器输入、电视遥控器输入、重力感应输入、游戏摇杆输入、方向盘输入、视频动作捕捉技术输入、键盘输入、鼠标输入、扫描仪输入、光笔输入、手写输入板输入、语音输入等输入方式。具体地,所述输入方式为通过触控所述终端设备500触控屏显示的虚拟的街机按键输入。所述终端设备500的己方输入指令相对于所述终端设备600而言为他方输入指令。所述终端设备600及其他终端设备的己方输入指令相对于所述终端设备500而言为他方输入指令。本实施方式中,所述终端设备500作为己方。所述终端设备600作为他方。由于本实施方式中,是通过增加传输数据量减少单次传输时间产生的延迟,所以只要带宽允许,所述广域网实时互动游戏分布式联网方法可以支持无限多的终端设备运行。
步骤213,按照时间先后顺序保存所述己方输入指令。本实施方式中,将用户输入的多个己方输入指令按照时间先后顺序保存在缓存中,形成输入序列。
步骤215,根据预设的帧时间间隔将所述己方输入指令及所述广域网实时互动游戏的运行状态生成至少一个己方数据帧,各所述己方数据帧分别对应一个所述己方输入指令及当时对应的所述广域网实时互动游戏的运行状态。所述帧时间间隔Δt决定产生己方数据帧的频率,所述帧时间间隔Δt可根据实际需要进行调整,一般实时互动游戏同步的需求下取值范围为10ms~100ms之间。通过交换所述终端设备500的己方数据帧及所述终端设备600的他方数据帧,实现输入及游戏实时状态的同步。本实施方式中,所述帧时间间隔Δt为50ms。具体请参阅图7所示的表格中终端设备500第1列,为以所述帧时间间隔Δt等间隔划分的16个时间节点。按照50ms的时间间隔生成多个能够表示己方输入指令及当时对应的运行状态的编码格式的数据,作为己方数据帧。并将生成的多个所述己方数据帧存储在缓存中。相应的,所述终端设备600也按照相同的帧时间间隔Δt生成多个他方数据帧,具体请参阅图7所示的表格中终端设备600第1列。
步骤217,发送己方数据包,所述己方数据包包括至少一个待同步的所述己方数据帧,所述己方数据帧的帧数小于等于同步临界值。所述同步临界值是可容忍最大等待的同步帧的帧数,相当于同步窗口的大小,即限定每次最多能同步帧的帧数。本实施方式中,所述同步临界值是4,在平均延迟为4~5倍Δt的情况下实现数据同步。具体请参阅图7所示的表格中终端设备500第2列。所述同步临界值可根据实际需要进行调整。当接入所述终端设备较多时,所述同步临界值可相应减小。同时可在同步过程中适应网络状况的变化而动态调整,例如,根据通信过程中网络状态的变化,动态检测并调整所述同步临界值,当网络状况好的情况下,减小所述同步临界值;减少网络传输数据量。当网络状况差的情况,增加所述同步临界值,保证较好的同步效果。具体地,将同步过程按时间间隔或按同步包数量分段,根据上一段同步过程的状况,如出现所述己方数据帧的帧数大于等于所述同步临界值次数较多,超过预设的上限阈值,例如5,说明当前临界值偏小,网络延迟过大,所以适度增加所述同步临界值,使得下一段同步过程减少出现大于等于所述同步临界值的情况,提高同步流畅度。同理,如果完全未出现临界值,说明网络延迟低,可适当减小所述同步临界值,减少网络通信数据量,节省网络带宽资源。
步骤219,获取其他所述广域网实时互动游戏发送的与所述己方数据包相同方式生成的他方数据包。本实施方式中,所述终端设备500接收所述终端设备600运行的广域网实时互动游戏所发送的与所述己方数据包相同方式生成的他方数据包。具体请参阅图7所示的表格中终端设备500第3列。当有3个或更多个终端设备进行联网时,将获取不同终端设备发送的与所述己方数据包相同方式生成的多个他方数据包。具体请参阅图7所示的表格中终端设备600第2列。
步骤221,判断当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差是否大于等于所述同步临界值。本实施方式中,所述终端设备500判断当前生成的所述己方数据帧及所述他方数据包内的帧数最大的他方数据帧的帧数相差是否大于等于4。具体如图7所示的t8时间,当前生成的所述己方数据帧a8与B2数据包的b4的帧数相差等于4。当有3个或更多个终端设备进行联网时,将当前生成的所述己方数据帧分别与各个所述他方数据包内的帧数最大的他方数据帧的帧数比较,以相差最大的所述他方数据包为判断标准、或折中或其他优化的判断方式进行判断。
步骤223,若当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差小于所述同步临界值,将所述他方数据包内的他方数据帧对应的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应,根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。本实施方式中,具体如图7所示的表格中终端设备500第4列,如时间t4、t5时,将a1与b1,a2与b2进行同步运算,从而实现所述终端设备500内的街机游戏与所述终端设备600内的街机游戏的同步。所述终端设备600内置的所述广域网实时互动游戏采用与所述终端设备500相同的方法同步运行。具体如图7所示的表格中终端设备600第4列,如时间t3、t4时,将b1与a1,b2与a2进行同步运算。
本实施方式中,在所述步骤223中还包括以下子步骤(请参阅图7):
步骤225,若当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差小于所述同步临界值,解析所述他方数据包,获取他方数据帧对应的各他方输入指令及他方运行状态。本实施方式中,将他方数据包中的数据帧进行解码,获取他方数据帧对应的各他方输入指令及他方运行状态,并更新当前所述广域网实时互动游戏的缓存。
步骤227,将所述他方数据包内的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应。本实施方式中,由于终端设备500、终端设备600以相同的初始状态开始运行,所以所述终端设备500的所述己方输入指令及己方运行状态的时序与所述终端设备600的他方输入指令及他方运行状态的时序与相同时序是相同的,只是触发的时间点由于延迟有差异。所以只需将他方输入指令及他方运行状态的时间点对应到所述终端设备500相同的时间点,即可将两方的输入指令及他方运行状态进行对应。
步骤229,将所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态逐个同步。本实施方式中,按照时间顺序依次将所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态逐个同步。
步骤231,判断所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态是否全部同步。同步时,由于是指令序列,所以需要一个一个同步,如果一个所述他方数据包内包括多个各他方输入指令及他方运行状态,需要判断是否所有的同步是否完成,避免有遗漏。
步骤233,若所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态全部同步,则根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。
步骤240,将各所述终端设备上运行的广域网实时互动游戏的运行过程的用户表现和游戏结果上报所述服务器。本实施方式中,所述运行过程的用户表现和游戏结果可以是游戏的对战结果、获胜次数、操作次数的统计、消灭怪物等参数。所述终端设备500及终端设备600各自的广域网实时互动游戏的对战结果上传所述服务器700,所述服务器700做校验、统计、积分、比赛奖励、输赢结果等处理。
在所述步骤203中,若网络状况无法进行P2P穿透,则进行所述步骤207,通过所述服务器700联网及转发数据。
在所述步骤221中,若当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差大于等于所述同步临界值,返回所述步骤217,即暂停生成下一个己方数据帧,重新发送上一次发送的所述己方数据包。本实施方式中,所述终端设备500检查接收到的所述终端设备600的他方数据帧与当前生成的所述己方数据帧是否相差大于等于4,若大于等于4证明此时网络可能出现阻塞或者异常,所述终端设备500暂停产生新的己方数据帧,并重发包含最近发送的包括多个己方数据帧的所述己方数据包。请参阅图7中的时间t9,由于时间t8时己方数据帧a8与B2数据包的b4的帧数相差等于4,所以此时将重发与A8相同内容的A9数据包。
在所述步骤231中,若所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态未全部同步,则返回到所述步骤229中继续同步尚未同步的部分。
请参阅图8,为本发明第二实施方式提供的一种广域网实时互动游戏分布式联网装置800。所述广域网实时互动游戏分布式联网装置800与第一实施方式提供的广域网实时互动游戏分布式联网装置400基本相同。
所述广域网实时互动游戏分布式联网装置800包括处理模块810、同步模块820及上报模块830。
所述处理模块810用于在终端设备上运行广域网实时互动游戏。本实施方式中,两个用户分别在终端设备500及终端设备600上运行各自的所述广域网实时互动游戏。具体地,所述终端设备500及终端设备600上均运行“拳皇97”。
所述同步模块820用于将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算。本实施方式中,所述同步模块820还包括网络判断模块821、穿透模块822、通信模块823、初始化模块824、获取模块825、指令存储模块826、数据帧生成模块827、发送模块828、接收模块829、判断模块830、反馈模块831及同步子模块832。
所述网络判断模块821,用于判断网络状况是否可进行P2P穿透。本实施方式中,根据服务器700反馈的指示判断网络状况是否可进行P2P穿透。具体地,根据所述终端设备500及终端设备600是否同时采用对称网络地址转换判断网络状况是否可进行P2P穿透。若所述终端设备500及终端设备600同时采用Symmetic NAT,则判断所述终端设备500及终端设备600无法实现打通。若所述终端设备500及终端设备600中仅一个采用Symmetic NAT,则判断所述终端设备500及终端设备600能够实现打通。
所述穿透模块822,用于采用P2P穿透技术同步。
所述通信模块823,用于通过服务器联网各终端设备内置的广域网实时互动游戏。本实施方式中,联网两个所述终端设备内置的广域网实时互动游戏。两个所述终端设备通过服务器的辅助建立P2P链路,或者通过服务器转发实现通信链路。
所述初始化模块824,用于同步至少两个终端设备的广域网实时互动游戏的初始状态至相同。本发明实施例中,所述初始化模块824可以由服务器触发开始,或者由需要同步的任意一方出发开始信号,在参数初始化时,所述初始化模块824将终端设备500、终端设备600的广域网实时互动游戏同时初始到游戏的开始界面,将两个游戏进行相同的配置。
所述获取模块825,用于获取当前所述广域网实时互动游戏的己方输入指令。本实施方式中,所述终端设备500作为己方。所述终端设备600作为他方。由于本实施方式中,是通过增加传输数据量减少单次传输时间产生的延迟,所以只要带宽允许,所述广域网实时互动游戏分布式联网方法可以支持无限多的终端设备运行。
所述指令存储模块826,用于按照时间先后顺序保存所述己方输入指令。本实施方式中,所述指令存储模块826将用户输入的多个己方输入指令按照时间先后顺序保存在缓存中,形成输入序列。
所述数据帧生成模块827,用于根据预设的帧时间间隔将所述己方输入指令及所述广域网实时互动游戏的运行状态生成至少一个己方数据帧,各所述己方数据帧分别对应一个所述己方输入指令及当时对应的所述广域网实时互动游戏的运行状态。本实施方式中,所述帧时间间隔Δt为50ms。所述数据帧生成模块827按照50ms的时间间隔生成多个能够表示己方输入指令及当时对应的运行状态的编码格式的数据,作为己方数据帧。并将生成的多个所述己方数据帧存储在缓存中。
所述发送模块828,用于发送己方数据包,所述己方数据包包括至少一个待同步的所述己方数据帧,所述己方数据帧的帧数小于等于同步临界值。本实施方式中,所述同步临界值是4,在平均延迟为4~5倍Δt的情况下实现数据同步。所述同步临界值可根据实际需要进行调整的。当接入所述终端设备较多时,所述同步临界值可相应减小。同时可在同步过程中适应网络状况的变化而动态调整,例如,例如所述发送模块828还可以包括一调整模块,所述调整模块用于根据通信过程中网络状态的变化,动态检测并调整所述同步临界值,当网络状况好的情况下,减小所述同步临界值;减少网络传输数据量。
所述接收模块829,用于获取其他所述广域网实时互动游戏发送的与所述己方数据包相同方式生成的他方数据包。本实施方式中,所述接收模块829接收所述终端设备600运行的广域网实时互动游戏所发送的与所述己方数据包相同方式生成的他方数据包。当有3个或更多个终端设备进行联网时,将获取不同终端设备发送的与所述己方数据包相同方式生成的多个他方数据包。
所述判断模块830,用于判断当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差是否大于等于所述同步临界值。本实施方式中,所述判断模块830判断当前生成的所述己方数据帧及所述他方数据包内的帧数最大的他方数据帧的帧数相差是否大于等于4。当有3个或更多个终端设备进行联网时,将当前生成的所述己方数据帧分别与各个所述他方数据包内的帧数最大的他方数据帧的帧数比较,以相差最大的所述他方数据包为判断标准、或折中或其他优化的判断方式进行判断。
所述反馈模块831,用于暂停生成下一个己方数据帧,重新发送上一次发送的所述己方数据包。本实施方式中,所述反馈模块831向所述数据帧生成模块827发送停止信号,控制所述数据帧生成模块827暂停生成下一个己方数据帧,并控制所述发送模块828重发包含最近发送的包括多个己方数据帧的所述己方数据包。
所述同步子模块832,用于将所述他方数据包内的他方数据帧对应的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应,根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。本实施方式中,所述同步子模块832还包括以下子模块。
解析子模块832a,用于解析所述他方数据包,获取他方数据帧对应的各他方输入指令及他方运行状态。本实施方式中,所述解析子模块832a将他方数据包中的数据帧进行解码,获取他方数据帧对应的各他方输入指令及他方运行状态,并更新当前所述广域网实时互动游戏的缓存。
映射子模块832b,用于将所述他方数据包内的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应。本实施方式中,由于终端设备500、终端设备600以相同的初始状态开始运行,所以所述终端设备500的所述己方输入指令及己方运行状态的时序与所述终端设备600的他方输入指令及他方运行状态的时序与相同时序是相同的,只是触发的时间点由于延迟有差异。所以只需将他方输入指令及他方运行状态的时间点对应到所述终端设备500相同的时间点,即可将两方的输入指令及他方运行状态进行对应。
所述处理子模块832c,用于将所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态逐个同步。本实施方式中,所述处理子模块832c按照时间顺序依次将所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态逐个同步。
所述同步进程子模块832d,用于判断所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态是否全部同步。同步时,由于是指令序列,所以需要一个一个同步,如果一个所述他方数据包内包括多个各他方输入指令及他方运行状态,需要所述同步进程子模块832d判断是否所有的同步是否完成,避免有遗漏。
所述运行子模块832e,用于当所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态全部同步后,根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。
所述上报模块840,用于将各所述终端设备上运行的广域网实时互动游戏的运行过程的用户表现和游戏结果上报所述服务器。
通过实际测试,通过本实施方式提供的广域网实时互动游戏分布式联网方法及系统,在网络最高延迟200ms~300ms的情况下,所述终端设备及所述终端设备之间的输入同步频率达到每秒20~60次,较传统停等同步协议的每秒同步7次,极大的改善了停等同步方式下的卡顿问题,提供了流畅的游戏同步解决方案。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
以上对本发明实施例提供的阅读源订阅方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种广域网实时互动游戏分布式联网方法,该方法包括以下步骤:
在终端设备上运行广域网实时互动游戏;
将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算;
将各所述终端设备上运行的广域网实时互动游戏的运行过程的用户表现和游戏结果上报所述服务器。
2.如权利要求1所述的广域网实时互动游戏分布式联网方法,其特征在于,在所述将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算的步骤中还包括以下子步骤:
判断网络状况是否可进行P2P穿透:
若网络状况可进行P2P穿透,采用P2P穿透技术同步。
3.如权利要求2所述的广域网实时互动游戏分布式联网方法,其特征在于,在所述将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算的步骤中还包括以下子步骤:
获取当前所述广域网实时互动游戏的己方输入指令;
按照时间先后顺序保存所述己方输入指令;
根据预设的帧时间间隔将所述己方输入指令及所述广域网实时互动游戏的运行状态生成至少一个己方数据帧,各所述己方数据帧分别对应一个所述己方输入指令及当时对应的所述广域网实时互动游戏的运行状态;
发送己方数据包,所述己方数据包包括至少一个待同步的所述己方数据帧,所述己方数据帧的帧数小于等于同步临界值;
获取其他所述广域网实时互动游戏发送的与所述己方数据包相同方式生成的他方数据包;
判断当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差是否大于等于所述同步临界值;
若当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差小于所述同步临界值,将所述他方数据包内的他方数据帧对应的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应,根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。
4.如权利要求3所述的广域网实时互动游戏分布式联网方法,其特征在于,在所述获取当前所述广域网实时互动游戏的己方输入指令的步骤之前还包括:
通过服务器联网各终端设备内置的所述广域网实时互动游戏;
同步至少两个所述终端设备的所述广域网实时互动游戏的初始状态至相同。
5.如权利要求4所述的广域网实时互动游戏分布式联网方法,其特征在于,在所述若当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差小于所述同步临界值,将所述他方数据包内的他方数据帧对应的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应,根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏的步骤中还包括以下子步骤:
解析所述他方数据包,获取他方数据帧对应的各他方输入指令及他方运行状态;
将所述他方数据包内的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应;
将所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态逐个同步。
6.如权利要求5所述的广域网实时互动游戏分布式联网方法,其特征在于,在所述将所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态逐个同步的步骤之后还包括以下步骤:
判断所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态是否全部同步;
若所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态全部同步,则根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。
7.如权利要求3所述的广域网实时互动游戏分布式联网方法,其特征在于,在所述发送己方数据包,所述己方数据包包括至少一个待同步的所述己方数据帧,所述己方数据帧的帧数小于等于同步临界值步骤中,还包括以下步骤:
根据通信过程中网络状态的变化,动态检测并调整所述同步临界值,当网络状况好的情况下,减小所述同步临界值;当网络状况差的情况,增加所述同步临界值。
8.一种广域网实时互动游戏分布式联网装置,所述广域网实时互动游戏分布式联网装置包括:
处理模块,用于在终端设备上运行广域网实时互动游戏;
同步模块,用于将至少两个所述终端设备上运行的广域网实时互动游戏的输入指令、游戏配置及运行状态通过广域网传输,并在各所述终端设备上进行同步及游戏业务逻辑的运算;
上报模块,用于将各所述终端设备上运行的广域网实时互动游戏的运行过程的用户表现和游戏结果上报所述服务器。
9.如权利要求8所述的广域网实时互动游戏分布式联网装置,其特征在于,所述同步模块还包括:
网络判断模块,用于判断网络状况是否可进行P2P穿透;
穿透模块,用于采用P2P穿透技术同步。
10.如权利要求9所述的广域网实时互动游戏分布式联网装置,其特征在于,所述同步模块还包括:
获取模块,用于获取当前所述广域网实时互动游戏的己方输入指令;
指令存储模块,用于按照时间先后顺序保存所述己方输入指令;
数据帧生成模块,用于根据预设的帧时间间隔将所述己方输入指令及所述广域网实时互动游戏的运行状态生成至少一个己方数据帧,各所述己方数据帧分别对应一个所述己方输入指令及当时对应的所述广域网实时互动游戏的运行状态;
发送模块,用于发送己方数据包,所述己方数据包包括至少一个待同步的所述己方数据帧,所述己方数据帧的帧数小于等于同步临界值;
接收模块,用于获取其他所述广域网实时互动游戏发送的与所述己方数据包相同方式生成的他方数据包;
判断模块,用于判断当前生成的所述己方数据帧与所述他方数据包内的帧数最大的他方数据帧的帧数相差是否大于等于所述同步临界值;
同步子模块,用于将所述他方数据包内的他方数据帧对应的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应,根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。
11.如权利要求10所述的广域网实时互动游戏分布式联网装置,其特征在于,所述同步模块还包括:
通信模块,用于通过服务器联网各终端设备内置的广域网实时互动游戏;
初始化模块,用于同步至少两个终端设备的广域网实时互动游戏的初始状态至相同。
12.如权利要求11所述的广域网实时互动游戏分布式联网装置,其特征在于,所述同步子模块还包括:
解析子模块,用于解析所述他方数据包,获取他方数据帧对应的各他方输入指令及他方运行状态;
映射子模块,用于将所述他方数据包内的各他方输入指令及他方运行状态分别与相同时序的所述己方输入指令及己方运行状态相对应;
所述处理子模块,用于将所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态逐个同步。
13.如权利要求12所述的广域网实时互动游戏分布式联网装置,其特征在于,所述同步子模块还包括:
同步进程子模块,用于判断所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态是否全部同步;
运行子模块,用于当所述他方输入指令及他方运行状态与所述己方输入指令及己方运行状态全部同步后,根据所述己方输入指令、己方运行状态、所述他方输入指令及他方运行状态同步运行所述广域网实时互动游戏。
14.如权利要求8所述的广域网实时互动游戏分布式联网装置,其特征在于,所述发送模块还包括:
调整模块,用于根据通信过程中网络状态的变化,动态检测并调整所述同步临界值,当网络状况好的情况下,减小所述同步临界值;当网络状况差的情况,增加所述同步临界值。
15.一种网络系统,其特征在于,所述网络系统包括服务器及至少两个终端设备,各所述终端设备均运行一个广域网实时互动游戏,所述至少两个终端设备通过所述服务器进行广域网联网,并同步各所述广域网实时互动游戏,其中,各所述终端设备均包括如权利要求8-14中任意一项所述的广域网实时互动游戏分布式联网装置。
16.如权利要求15所述的网络系统,其特征在于,所述服务器根据各所述终端设备内置的所述广域网实时互动游戏中玩家的熟练程度、系统相应速度、网络状态及硬件配置进行配对。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410029359.1A CN103780694B (zh) | 2014-01-08 | 2014-01-08 | 广域网实时互动游戏分布式联网方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410029359.1A CN103780694B (zh) | 2014-01-08 | 2014-01-08 | 广域网实时互动游戏分布式联网方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103780694A true CN103780694A (zh) | 2014-05-07 |
CN103780694B CN103780694B (zh) | 2017-10-10 |
Family
ID=50572509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410029359.1A Expired - Fee Related CN103780694B (zh) | 2014-01-08 | 2014-01-08 | 广域网实时互动游戏分布式联网方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103780694B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107970603A (zh) * | 2017-12-15 | 2018-05-01 | 百度移信网络技术(北京)有限公司 | 游戏方法、客户端、服务端、游戏主机、设备和存储介质 |
CN109646947A (zh) * | 2018-12-05 | 2019-04-19 | 网易(杭州)网络有限公司 | 游戏数据的存盘方法、装置、设备和存储介质 |
CN109889425A (zh) * | 2017-12-06 | 2019-06-14 | 腾讯科技(深圳)有限公司 | 一种客户端的互动方法、装置及存储介质 |
CN110124307A (zh) * | 2019-04-26 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 操作控制方法和装置、存储介质及电子装置 |
CN111841015A (zh) * | 2020-07-29 | 2020-10-30 | 北京字节跳动网络技术有限公司 | 基于状态机的游戏大厅交互方法、装置、设备及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005022397A1 (en) * | 2003-08-28 | 2005-03-10 | Trihedron Co., Ltd. | Method of data synchronization in multiplayer network games |
CN101094245A (zh) * | 2007-07-11 | 2007-12-26 | 华中科技大学 | 一种基于对等覆盖网络的游戏平台系统 |
CN101763458A (zh) * | 2008-12-24 | 2010-06-30 | 中国移动通信集团公司 | 一种联机游戏实现方法与装置 |
CN102779218A (zh) * | 2011-05-09 | 2012-11-14 | 腾讯科技(深圳)有限公司 | 一种游戏开发装置和游戏运行装置 |
-
2014
- 2014-01-08 CN CN201410029359.1A patent/CN103780694B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005022397A1 (en) * | 2003-08-28 | 2005-03-10 | Trihedron Co., Ltd. | Method of data synchronization in multiplayer network games |
CN101094245A (zh) * | 2007-07-11 | 2007-12-26 | 华中科技大学 | 一种基于对等覆盖网络的游戏平台系统 |
CN101763458A (zh) * | 2008-12-24 | 2010-06-30 | 中国移动通信集团公司 | 一种联机游戏实现方法与装置 |
CN102779218A (zh) * | 2011-05-09 | 2012-11-14 | 腾讯科技(深圳)有限公司 | 一种游戏开发装置和游戏运行装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889425A (zh) * | 2017-12-06 | 2019-06-14 | 腾讯科技(深圳)有限公司 | 一种客户端的互动方法、装置及存储介质 |
CN109889425B (zh) * | 2017-12-06 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 一种客户端的互动方法、装置及存储介质 |
CN107970603A (zh) * | 2017-12-15 | 2018-05-01 | 百度移信网络技术(北京)有限公司 | 游戏方法、客户端、服务端、游戏主机、设备和存储介质 |
CN109646947A (zh) * | 2018-12-05 | 2019-04-19 | 网易(杭州)网络有限公司 | 游戏数据的存盘方法、装置、设备和存储介质 |
CN109646947B (zh) * | 2018-12-05 | 2022-08-05 | 网易(杭州)网络有限公司 | 游戏数据的存盘方法、装置、设备和存储介质 |
CN110124307A (zh) * | 2019-04-26 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 操作控制方法和装置、存储介质及电子装置 |
CN110124307B (zh) * | 2019-04-26 | 2021-04-09 | 腾讯科技(深圳)有限公司 | 操作控制方法和装置、存储介质及电子装置 |
US11839821B2 (en) | 2019-04-26 | 2023-12-12 | Tencent Technology (Shenzhen) Company Limited | Racing game operation control method and apparatus, storage medium, and device |
CN111841015A (zh) * | 2020-07-29 | 2020-10-30 | 北京字节跳动网络技术有限公司 | 基于状态机的游戏大厅交互方法、装置、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103780694B (zh) | 2017-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102575204B1 (ko) | 서버 시스템과 비디오 게임 컨트롤러 간에 직접 통신을 설정하기 위한 시스템 및 방법 | |
CN103780619A (zh) | 广域网实时互动游戏同步方法、装置及系统 | |
RU2439836C2 (ru) | Сервер и способ для осуществления компьютерных коммуникаций для автоматического выполнения и управления сравнением | |
CN111225230B (zh) | 一种网络直播数据的管理方法以及相关装置 | |
US20210195264A1 (en) | Synchronizing and dynamic chaining of a transport layer network service for live content broadcasting | |
CN103780694A (zh) | 广域网实时互动游戏分布式联网方法、装置及系统 | |
US9258380B2 (en) | Cross-platform multimedia interaction system with multiple displays and dynamically-configured hierarchical servers and related method, electronic device and computer program product | |
US11108840B2 (en) | Transport layer network service for live content broadcasting | |
CN111803923B (zh) | 基于云手机系统的游戏共享方法、电子设备、存储介质 | |
CN109995741B (zh) | 一种网络直播中连麦实现方法及系统 | |
KR20200128523A (ko) | 다중-사용자 플랫폼을 통해 해설 콘텐츠와 게임플레이 콘텐츠를 통합하기 | |
CN108259542A (zh) | 资源的传输方法和装置 | |
WO2021233093A1 (zh) | 帐号接入方法和装置、存储介质及电子设备 | |
WO2018072650A1 (zh) | 移动终端与iptv进行交互的实现方法、装置及平台 | |
CN111803921A (zh) | 基于云手机系统的游戏互动方法、电子设备、存储介质 | |
CN112511584A (zh) | 基于云手机系统的多屏互动方法、电子设备及存储介质 | |
CN111803954A (zh) | 基于云手机的游戏直播方法、电子设备、存储介质 | |
CN113827953B (zh) | 游戏控制系统 | |
CN112245907A (zh) | 游戏数据加速方法、存储介质、电子设备及系统 | |
CN104935443A (zh) | 组播数据处理方法、装置、系统、发送设备及接收客户端 | |
CN106549978A (zh) | 一种会话模式切换方法及代理服务器 | |
CN100496657C (zh) | 一种网络游戏系统以及移动终端实现网络游戏的方法 | |
KR20230150392A (ko) | 클라우드 애플리케이션에 기초한 디바이스 제어 방법 및 장치, 그리고 전자 디바이스 및 저장 매체 | |
CN113996065A (zh) | 云游戏的控制方法、装置、控制系统以及电子设备 | |
CN100437608C (zh) | 游戏中虚拟人物作交互动作的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
DD01 | Delivery of document by public notice |
Addressee: SHENZHEN ZHANGWAN NETWORK TECHNOLOGY Co.,Ltd. Person in charge of patents Document name: payment instructions |
|
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: SHENZHEN ZHANGWAN NETWORK TECHNOLOGY Co.,Ltd. Person in charge of patents Document name: Notice of Termination of Patent Rights |
|
DD01 | Delivery of document by public notice | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171010 |
|
CF01 | Termination of patent right due to non-payment of annual fee |