一种跨服务器战斗方法、设备及介质与流程



1.本发明涉及通信及数据整合技术领域,特别是涉及一种跨服务器战斗方法、设备及介质。


背景技术:



2.随着网络上玩的玩家越来越多,以及受限于服务器硬件性能和不同地区玩家网络状态,游戏提供方是无法将所有玩家放置于一台游戏服务器上。为了解决上述问题,游戏提供方设立了不同地区的游戏服务器以分担大量玩家,但同时也带来另一个问题,不同游戏服务器间的玩家如何进行同一场对局。
3.为了使不同游戏服务器间的玩家能够进行同一场对局,跨服务器技术应运而生。现有跨服务器技术实现的方式是:1、将不同游戏服务器的玩家数据传输至一台独立的中心服务器,并在中心服务器上创建玩家对象。2、中心服务器与玩家进行通信并使用新的玩家对象进行对局。
4.然而这种方式的缺点是:
5.1、如果只有一台中心服务器,则依然不能解决大量玩家在进行对局时造成的中心服务器性能吃紧的问题;
6.2、如果存在多台中心服务器,则需要大量的硬件资源和虚拟资源支持,造成无端浪费;
7.3、对局的游戏规则控制和玩家的资产管理需要在中心服务器中进行额外的编写程序;
8.4、玩家初始所在游戏服务器和中心服务器都存在一份同一个玩家的玩家对象,两个服务器都对玩家数据进行修改时,容易造成玩家数据冲突,进而导致一些数据无法写入。


技术实现要素:



9.鉴于此,本发明提供了一种跨服务器战斗方法、设备及介质,以解决在中心服务器上进行对局造成的中心服务器性能吃紧和多套玩家对象数据管理冲突的问题。
10.为实现上述目的,本发明提供了如下方案:
11.一种跨服务器战斗方法,包括:
12.当第一服务器接收到第一玩家客户端发送的对局请求时,所述第一服务器将所述对局请求发送至中心服务器;所述第一服务器为所述第一玩家客户端所在的游戏服务器;
13.所述中心服务器根据所述对局请求,筛选与所述第一玩家客户端相匹配的玩家客户端,并当所述第一玩家客户端与第二玩家客户端匹配成功后,所述中心服务器根据匹配结果创建对局,然后通过所述第一服务器和第二服务器使所述第一玩家客户端和所述第二玩家客户端进入对局;所述第二服务器为所述第二玩家客户端所在的游戏服务器;
14.所述中心服务器根据所述第一服务器的压力值和所述第二服务器的压力值,确定战斗服务器;所述战斗服务器为所述第一服务器或者所述第二服务器;
15.所述战斗服务器根据所述对局的id和战斗数据创建所述对局内每个玩家客户端对应的战斗角代理对象,并当所述战斗角代理对象创建后开始;所述战斗角代理对象用于与对应的玩家客户端进行通信以及业务逻辑上的数据处理。
16.可选地,还包括:
17.当所述第一服务器接收到所述第一玩家客户端发送的操作命令,且所述战斗服务器为所述第一服务器时,所述战斗服务器中的所述第一玩家客户端对应的战斗角代理对象对所述操作命令进行逻辑判断,并将逻辑判断结果发送至所述第一服务器,所述第一服务器根据所述逻辑判断结果执行游戏操作,并将游戏操作结果发送至所述第一玩家客户端;
18.当所述第一服务器接收到所述第一玩家客户端发送的操作命令,且所述战斗服务器为所述第二服务器时,所述第一服务器将所述操作指令发送至所述中心服务器,所述中心服务器将所述操作指令发送至所述战斗服务器,所述战斗服务器中的所述第一玩家客户端对应的战斗角代理对象对所述操作命令进行逻辑判断,并将逻辑判断结果发送至所述中心服务器,所述中心服务器将所述逻辑判断结果发送至所述第一服务器,所述第一服务器根据所述逻辑判断结果执行游戏操作,并将游戏操作结果发送至所述第一玩家客户端。
19.可选地,还包括:
20.当所述战斗服务器为所述第一服务器时,所述战斗服务器通过所述中心服务器将所述逻辑判断结果广播至每个所述第二服务器;
21.当所述战斗服务器为所述第二服务器时,所述战斗服务器通过所述中心服务器将所述逻辑判断结果广播至所述第一服务器和其他所述第二服务器;其他所述第二服务器为除了战斗服务器以外的第二服务器。
22.可选地,所述第一玩家客户端对所述游戏操作结果进行显示。
23.可选地,还包括:当所述第一服务器和所述第二服务器在启动时,所述第一服务器和所述第二服务器均是通过创建链接方式与所述中心服务器通信,所述中心服务器保存与所述中心服务器通信的游戏服务器的id和对应的链接信息。
24.可选地,所述第一服务器或者所述第二服务器向所述中心服务器发送的通信信息包括对局的id、信息发送目的地、玩家客户端的id以及操作指令。
25.可选地,所述第一服务器通过过滤器方式记录所述第一玩家客户端在对局过程中的有用信息;所述第二服务器通过过滤器方式记录所述第二玩家客户端在对局过程中的有用信息。
26.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过通信总线完成相互间的通信;
27.所述存储器,用于存放计算机程序;
28.所述处理器,用于执行存储器上所存放的计算机程序时,实现跨服务器战斗方法步骤。
29.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现跨服务器战斗方法步骤。
30.根据本发明提供的具体实施例,本发明公开了以下技术效果:
31.本发明设置的中心服务器只负责对局管理和消息转发,极大减少了中心服务器的
性能压力;此外,由于战斗角代理对象仅用于与对应的玩家客户端进行通信以及业务逻辑上的数据处理,那么玩家的实际数据处理还是在原来的玩家所在的游戏服务器中,数据管理简单,即仅有用玩家所在游戏服务器处理自身玩家数据,避免多个服务器同时操作玩家数据导致出现的数据冲突的风险。
附图说明
32.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
33.图1为本发明战斗角代理类图;
34.图2为本发明网络链接状态图;
35.图3为本发明通信信息数据结构图;
36.图4为本发明跨服务器战斗方法的流程示意图;
37.图5为本发明玩家战斗流程图;
38.图6为本发明玩家对局战斗时序图;图6中的(a)为本发明玩家创建对局时序图;图6中的(b)为本发明玩家战斗时序图。
具体实施方式
39.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.本发明提供了一种跨服务器战斗方法、设备及介质,本发明适用于位于不同游戏服务器的玩家能够快速进行战斗对局,且无需切换服务器,同时方便数据管理,减少中心服务器压力,支持战斗过程重播功能。
41.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
42.名称定义:
43.第一玩家客户端(或者称为玩家1):发送对局请求的第一个玩家客户端。
44.第二玩家客户端(或者称为玩家2):发送对局请求的第二以及之后的玩家客户端,第二玩家客户端数量由游戏规则决定。
45.第一服务器(或者称为服务器1):第一玩家客户端所在的游戏服务器。
46.第二服务器(或者称为服务器2):第二玩家客户端所在的游戏服务器。
47.中心服务器:指独立于游戏服务器之外的,且用于不同游戏服务器之间信息转发和玩家匹配的服务器,每个游戏服务器启动后都会创建一个链接以连接上中心服务器,但是游戏服务器之间并不知道彼此的存在。
48.战斗服务器:用于进行游戏规则和逻辑处理的服务器,本质上是第一服务器或者是第二服务器。
49.转发:将收到的信息原封不动的发送给另一个游戏服务器。
50.广播:将信息发送给对局内的所有玩家客户端。
51.玩家客户端:玩家的终端,可以为手机或者电脑。
52.游戏服务器压力值:游戏服务器内当前玩家数量,内存占用量,充当战斗服务器时的对局个数(一个游戏服务器里同时会存在多个对局,不同的玩家进行不同的对局),对这些数据进行加权加法处理,进而得到游戏服务器压力值。
53.加权加法:分为两步,第一步以基本数值乘以对应配置的权重,得到计算值;第二步将所有计算值进行加法求和。
54.战斗角代理:如图1所示,用于对战斗的角进行封装、对局过程中的数据变换以及网络链接的外层包装;如果玩家角在本游戏服务器上,则直接通过原有玩家链接与玩家客户端通信;如果玩家角在其他游戏服务器上,则通过:中心服务器转发《
‑‑‑‑
》对应所在游戏服务器转发《
‑‑‑‑
》玩家客户端的流程进行通信,从而降低耦合度,保证逻辑处理时不需要考虑玩家在哪个游戏服务器上。
55.网络链接状态图:如图2所示,每个游戏服务器启动时都会和中心服务器创建一个链接,用于和中心服务器通信,中心服务器将保存游戏服务器id和对应链接信息。每个玩家上线登录了玩家客户端时,该玩家客户端的游戏服务器会向中心服务器发送注册信息以记录该玩家所在的游戏服务器。
56.通信信息数据结构:如图3所示,游戏服务器之间相互通信的方式是:游戏服务器1向中心服务器发送通信信息(携带信息:1、对局id,表示是哪场对局,该id由中心服务器创建对局时产生并发送给对局内的所有游戏服务器;2、发往目标地,按类型区分,分为战斗服务器,某玩家所在游戏服务器,所有游戏服务器;3、玩家id列表,如果目标地是某玩家所在游戏服务器则使用这个数据内的玩家id到对应的游戏服务器;4、各自携带的其他自定义信息,例如用于业务逻辑处理的信息),中心服务器会根据对局id和发往目标地信息到目标服务器并将该消息转发给目标服务器。
57.图4为本发明跨服务器战斗方法的流程示意图,如图4所示,本发明实施例提供的跨服务器战斗方法,包括:
58.步骤100:当第一服务器接收到第一玩家客户端发送的对局请求时,第一服务器将所述对局请求发送至中心服务器。
59.步骤200:所述中心服务器根据所述对局请求,筛选与所述第一玩家客户端相匹配的第二玩家客户端,并当所述第一玩家客户端与所述第二玩家客户端匹配成功后,所述中心服务器根据匹配结果创建对局,然后通过所述第一服务器和第二服务器使所述第一玩家客户端和所述第二玩家客户端进入对局。
60.步骤300:所述中心服务器根据所述第一服务器的压力值和所述第二服务器的压力值,确定战斗服务器;所述战斗服务器为所述第一服务器或者所述第二服务器。
61.步骤400:所述战斗服务器根据所述对局的id和战斗数据创建所述对局内每个玩家客户端对应的战斗角代理对象,并当所述战斗角代理对象创建后开始;所述战斗角代理对象用于与对应的玩家客户端进行通信以及业务逻辑上的数据处理。
62.进一步地,本发明实施例提供的方法还包括:
63.当所述第一服务器接收到所述第一玩家客户端发送的操作命令,且所述战斗服务
器为所述第一服务器时,所述战斗服务器中的所述第一玩家客户端对应的战斗角代理对象对所述操作命令进行逻辑判断,并将逻辑判断结果发送至所述第一服务器,所述第一服务器根据所述逻辑判断结果执行游戏操作,并将游戏操作结果发送至所述第一玩家客户端;所述第一玩家客户端对所述游戏操作结果进行显示。
64.当所述第一服务器接收到所述第一玩家客户端发送的操作命令,且所述战斗服务器为所述第二服务器时,所述第一服务器将所述操作指令发送至所述中心服务器,所述中心服务器将所述操作指令发送至所述战斗服务器,所述战斗服务器中的所述第一玩家客户端对应的战斗角代理对象对所述操作命令进行逻辑判断,并将逻辑判断结果发送至所述中心服务器,所述中心服务器将所述逻辑判断结果发送至所述第一服务器,所述第一服务器根据所述逻辑判断结果执行游戏操作,并将游戏操作结果发送至所述第一玩家客户端;所述第一玩家客户端对所述游戏操作结果进行显示。
65.其中,当所述战斗服务器为所述第一服务器时,所述战斗服务器通过所述中心服务器将所述逻辑判断结果广播至每个所述第二服务器。
66.当所述战斗服务器为所述第二服务器时,所述战斗服务器通过所述中心服务器将所述逻辑判断结果广播至所述第一服务器和其他所述第二服务器;其他所述第二服务器为除了战斗服务器以外的第二服务器。
67.第二玩家客户端与第一玩家客户端处理过程相同,在此不过多赘述。
68.优选地,在本发明实施例中,当所述第一服务器和所述第二服务器在启动时,所述第一服务器和所述第二服务器均是通过创建链接方式与所述中心服务器通信,所述中心服务器保存与所述中心服务器通信的游戏服务器的id和对应的链接信息。
69.所述第一服务器通过过滤器方式记录所述第一玩家客户端在对局过程中的有用信息;所述第二服务器通过过滤器方式记录所述第二玩家客户端在对局过程中的有用信息
70.先以玩家1和玩家2为例子,来说明本发明实施例提供的跨服务器战斗方法。如图5和图6所示,包括:
71.首先,玩家1发送对局请求,服务器1收到后转发到中心服务器进行匹配。
72.其次,中心服务器收到请求后查对应的玩家2,没到则等待更多玩家请求对局,到则将玩家1和玩家2加入新对局,通知服务器1和服务器2,玩家1和玩家2到对局并开始游戏。
73.然后,中心服务器在服务器1和服务器2中筛选到更优的服务器来充当战斗服务器,对局中的每个游戏服务器会向中心服务器发送自己当前服务器压力,中心服务器对对局内的服务器1的压力情况和服务器2的压力情况进行比较,选用数值最小的那个服务器充当战斗服务器,权重可以自定义。
74.接着,服务器1和服务器2向战斗服务器发送战斗数据,战斗服务器收到数据后根据对局id和玩家信息创建战斗角代理对象并加入对局,用来处理和玩家的通信以及业务逻辑上的数据处理。
75.再接着,玩家1发送操作命令给服务器1,服务器1将命令转发给战斗服务器,战斗服务器接受玩家的操作进行逻辑处理,这里的处理规则是强业务相关,根据具体的游戏规则指定不同的方案。
76.例如:走格子类型游戏,战斗服务器收到玩家1点击了骰子的操作,进行判断该玩
家当前回合是否可以进行此操作,可以则继续,然后随机骰子数,让玩家1的棋子前进相应步数,最后将结果发送给该玩家的客户端(玩家操作成功,随机出来的骰子数,玩家1棋子最终到达的位置等信息均是通过所有玩家的战斗角代理发送给对应玩家客户端,从而展示该玩家的操作和表现)。如果不可以则直接将结果(玩家操作失败,失败原因)发送给该玩家的客户端,提示玩家操作失败。
77.最后,将结果广播发送给服务器1和服务器2,服务器1和服务器2收到信息后再转发给对应的玩家客户端,玩家客户端收到结果信息并进行展示。
78.为实现上述目的,本发明实施例还提供了一种电子设备,该电子设备包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过通信总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行存储器上所存放的计算机程序时,实现跨服务器战斗方法步骤。
79.此外,本发明实施例还一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现跨服务器战斗方法步骤。
80.与现有技术相比,本发明具有以下优点:
81.1、本发明设置的中心服务器只负责对局管理和消息转发,极大减少了中心服务器的性能压力;对局管理:哪些玩家在同一场对局里以及这些玩家所在的游戏服务器;消息转发:将同一场对局里的不同游戏服务器间的信息进行转发。
82.2、玩家不需要额外连接中心服务器,玩家和其他玩家进行对局时无需切换服务器。
83.3、初始化时不需要传输玩家所有信息,只需要战斗相关信息,减少了网络资源消耗。
84.4、每个游戏服务器只连接中心服务器不需要知道其他游戏服务器的存在,由中心服务器负责将信息发送给其他游戏服务器,避免当单个游戏服务器对局过多时出现连接过多问题。
85.5、玩家的实际数据处理还是在原来的玩家所在的游戏服务器中,数据管理简单,即仅有用玩家所在游戏服务器处理自身玩家数据,避免多个服务器同时操作玩家数据导致出现的数据冲突的风险。
86.6、游戏服务器可以通过过滤器方式记录玩家对局过程中的有用信息。
87.7、增加战斗角代理,将跨服通信和逻辑解耦,开发人员进行对局逻辑开发时不需要考虑玩家所处游戏服务器是否是本游戏服务器,提高了开发人员的开发效率。
88.8、玩家的操作都封装成命令信息的形式发送给战斗服务器,战斗服务器将结果信息以状态信息的形式广播发送给其他玩家,可以通过重新输入命令列表然后重播对局,可以让玩家重播之前的对局。
89.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
90.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

技术特征:


1.一种跨服务器战斗方法,其特征在于,包括:当第一服务器接收到第一玩家客户端发送的对局请求时,所述第一服务器将所述对局请求发送至中心服务器;所述第一服务器为所述第一玩家客户端所在的游戏服务器;所述中心服务器根据所述对局请求,筛选与所述第一玩家客户端相匹配的玩家客户端,并当所述第一玩家客户端与第二玩家客户端匹配成功后,所述中心服务器根据匹配结果创建对局,然后通过所述第一服务器和第二服务器使所述第一玩家客户端和所述第二玩家客户端进入对局;所述第二服务器为所述第二玩家客户端所在的游戏服务器;所述中心服务器根据所述第一服务器的压力值和所述第二服务器的压力值,确定战斗服务器;所述战斗服务器为所述第一服务器或者所述第二服务器;所述战斗服务器根据所述对局的id和战斗数据创建所述对局内每个玩家客户端对应的战斗角代理对象,并当所述战斗角代理对象创建后开始;所述战斗角代理对象用于与对应的玩家客户端进行通信以及业务逻辑上的数据处理。2.根据权利要求1所述的一种跨服务器战斗方法,其特征在于,还包括:当所述第一服务器接收到所述第一玩家客户端发送的操作命令,且所述战斗服务器为所述第一服务器时,所述战斗服务器中的所述第一玩家客户端对应的战斗角代理对象对所述操作命令进行逻辑判断,并将逻辑判断结果发送至所述第一服务器,所述第一服务器根据所述逻辑判断结果执行游戏操作,并将游戏操作结果发送至所述第一玩家客户端;当所述第一服务器接收到所述第一玩家客户端发送的操作命令,且所述战斗服务器为所述第二服务器时,所述第一服务器将所述操作指令发送至所述中心服务器,所述中心服务器将所述操作指令发送至所述战斗服务器,所述战斗服务器中的所述第一玩家客户端对应的战斗角代理对象对所述操作命令进行逻辑判断,并将逻辑判断结果发送至所述中心服务器,所述中心服务器将所述逻辑判断结果发送至所述第一服务器,所述第一服务器根据所述逻辑判断结果执行游戏操作,并将游戏操作结果发送至所述第一玩家客户端。3.根据权利要求2所述的一种跨服务器战斗方法,其特征在于,还包括:当所述战斗服务器为所述第一服务器时,所述战斗服务器通过所述中心服务器将所述逻辑判断结果广播至每个所述第二服务器;当所述战斗服务器为所述第二服务器时,所述战斗服务器通过所述中心服务器将所述逻辑判断结果广播至所述第一服务器和其他所述第二服务器;其他所述第二服务器为除了战斗服务器以外的第二服务器。4.根据权利要求2所述的一种跨服务器战斗方法,其特征在于,还包括:所述第一玩家客户端对所述游戏操作结果进行显示。5.根据权利要求2所述的一种跨服务器战斗方法,其特征在于,还包括:当所述第一服务器和所述第二服务器在启动时,所述第一服务器和所述第二服务器均是通过创建链接方式与所述中心服务器通信,所述中心服务器保存与所述中心服务器通信的游戏服务器的id和对应的链接信息。6.根据权利要求2所述的一种跨服务器战斗方法,其特征在于,所述第一服务器或者所述第二服务器向所述中心服务器发送的通信信息包括对局的id、信息发送目的地、玩家客户端的id以及操作指令。7.根据权利要求1所述的一种跨服务器战斗方法,其特征在于,所述第一服务
器通过过滤器方式记录所述第一玩家客户端在对局过程中的有用信息;所述第二服务器通过过滤器方式记录所述第二玩家客户端在对局过程中的有用信息。8.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过通信总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行存储器上所存放的计算机程序时,实现权利要求1-7任一所述的方法步骤。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。

技术总结


本发明公开了一种跨服务器战斗方法、设备及介质,涉及通信及数据整合技术领域,该方法包括中心服务器根据第一服务器发送的对局请求,筛选与第一玩家客户端相匹配的玩家客户端,并当第一玩家客户端与第二玩家客户端匹配成功后,中心服务器根据匹配结果创建对局,然后通过第一服务器和第二服务器使第一玩家客户端和所述第二玩家客户端进入对局;中心服务器根据对局内服务器的压力值确定战斗服务器;战斗服务器根据对局的id和战斗数据创建对局内的战斗角代理对象,从而与对应的玩家客户端进行通信以及业务逻辑上的数据处理,进而解决了在中心服务器上进行对局造成的中心服务器性能吃紧和多套玩家对象数据管理冲突的问题。的问题。的问题。


技术研发人员:

吴俊彦 罗亨

受保护的技术使用者:

珠海沙盒网络科技有限公司

技术研发日:

2022.06.01

技术公布日:

2022/11/1

本文发布于:2024-09-20 14:40:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/27564.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   服务器   玩家   客户端
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议