游戏服务端系统、游戏控制方法、装置、介质及电子设备与流程

文档序号:17431737发布日期:2019-04-17 03:35阅读:260来源:国知局
游戏服务端系统、游戏控制方法、装置、介质及电子设备与流程

本发明涉及计算机技术领域,具体而言,涉及一种游戏服务端系统、基于游戏服务端系统的游戏控制方法、基于游戏服务端系统的游戏控制装置、计算机可读介质及电子设备。



背景技术:

网络游戏作为用户娱乐消遣的项目,可以起到放松心情、减缓压力的作用。一般网络游戏是游戏玩家在客户端进行操作,而根据游戏玩家的操作,客户端需同服务端进行信息交互来实现游戏玩家操作的目的。

现有的游戏服务端构架中,游戏相关的多个进程或所有进程在服务端独立的节点中被统一管理。其中,游戏相关进程包括:游戏玩家的登录、游戏玩家对角色的选择、游戏玩家对主城的选择等。

然而,现有的游戏服务端系统中游戏逻辑耦合程度过高、跨服难度大。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本发明实施例的目的在于提供一种游戏服务端系统、基于游戏服务端系统的游戏控制方法、基于游戏服务端系统的游戏控制装置、计算机可读介质及电子设备,进而至少在一定程度上克服现有的游戏服务端系统中游戏逻辑耦合程度过高、跨服难度大的问题。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明实施例的第一方面,提供了一种游戏服务端系统,包括:

至少两种游戏服务节点,不同种类的游戏服务节点被配置为用于处理不同类型的游戏逻辑,所述游戏服务节点与游戏客户端通信连接,所述游戏服务节点接收所述游戏客户端的服务请求消息和/或向所述游戏客户端发送服务应答消息;不同种类的游戏服务节点之间通过所述转发节点通讯连接;以及,

转发节点,所述转发节点与所述至少两种游戏服务节点通讯连接,所述转发节点被配置为分别接收所述至少两种游戏服务节点提供的服务相关的全局注册消息,以及用于接收并转发所述游戏服务节点之间的服务相关的消息,其中,所述全局注册消息为所有游戏服务节点可获取的消息。

在本发明的一些实施例中,基于前述方案,所述至少两种游戏服务节点将各自节点内提供的服务相关的消息作为全局注册消息提供至所述转发节点,其中,所述全局注册消息为所有游戏服务节点可获取的消息。

在本发明的一些实施例中,基于前述方案,每个所述游戏服务节点,包括:业务子系统、数据库子系统和支持子系统,其中,

所述业务子系统被配置为:为游戏运行过程提供不同功能的进程;

所述数据库子系统被配置为:为所述业务子系统提供数据库的相关功能的处理,在所述数据库子系统被启动时,所述数据库子系统与相应的数据库集群建立连接;

所述支持子系统被配置为:为不同的游戏服务节点内提供不同的支持服务。

在本发明的一些实施例中,基于前述方案,所述业务子系统包括:

管理进程,用于节点内的进程的管理,以及节点内部服务信息的注册与发现;

消息转发进程,用于与所述游戏客户端通信连接,以接收所述游戏服务端的服务请求消息和/或向所述游戏服务端发送服务应答消息;还用于节点内的服务相关的消息的转发;

游戏服务进程,用于提供节点对应的游戏逻辑功能相关的服务;

数据库进程,用于与所述数据库子系统连接,以支持所述游戏服务进程提供游戏逻辑功能相关的服务。

在本发明的一些实施例中,基于前述方案,所述游戏服务节点包括以下节点的至少两种:

登录服务节点,与所述游戏客户端连接,所述登录服务节点被配置为响应于所述游戏客户端的登录服务请求,向所述游戏客户端提供登录服务;

角色服务节点,与所述游戏客户端连接,所述角色服务节点被配置为响应于所述游戏客户端的角色服务请求,向所述游戏客户端提供角色服务;

主城服务节点,与所述游戏客户端连接,所述登录主城服务节点被配置为响应于所述游戏客户端的主城服务请求,向所述游戏客户端提供主城服务;

战斗服务节点,与所述游戏客户端连接,所述战斗服务节点被配置为响应于所述游戏客户端的战斗服务请求,向所述游戏客户端提供战斗服务。

在本发明的一些实施例中,基于前述方案,所述游戏服务节点包括:服务提供节点,将其他服务以进程的方式呈现给各个服务节点,以供所述各个服务节点使用相关服务。

在本发明的一些实施例中,基于前述方案,所述游戏服务节点/转发节点包括负载流量监控模块,用于根据各自节点上的负载流量的大小对各自节点的容量进行扩大或缩小。

在本发明的一些实施例中,基于前述方案,所述游戏服务端系统包括多个分组,在每个所述分组内包括:至少两种所述游戏服务节点,且所述游戏服务节点包括负载流量监控模块;其中,

所述负载流量监控模块根据各自节点上的负载流量的大小在每个分组内部对各自节点的容量进行扩大或缩小。

根据本发明实施例的第二方面,提供了一种基于如前述第一方面所述的游戏服务端系统的游戏控制方法,包括:

通过第一游戏服务节点接收游戏客户端发送的登录服务请求消息,向所述游戏客户端提供登录服务,以供所述游戏客户端选择角色服务器进行登录;

通过第二游戏服务节点接收所述游戏客户端发送的角色服务请求消息,向所述游戏客户端提供角色服务,以供所述游戏客户端选择角色服务器进行登录,其中,所述第二游戏服务节点与所述角色服务器对应;

通过所述第二游戏服务节点获取并向所述游戏客户端发送主城服务器信息,以供所述游戏客户端与第三游戏服务节点通信连接,并通过所述第三游戏服务节点向所述游戏客户端提供主城服务;其中,所述第三游戏节点和所述主城服务器对应;或,

通过所述第二游戏服务节点获取并向所述游戏客户端发送战斗服务器信息,以供所述游戏客户端与第四游戏服务节点通信连接,并通过所述第四游戏服务节点向所述游戏客户端提供战斗服务;其中,所述第四游戏节点和所述战斗服务器对应。

在本发明的一些实施例中,基于前述方案,在通过所述第二游戏服务节点获取并向所述游戏客户端发送主城服务器信息之后,还包括:

通过所述第二游戏服务节点获取由服务提供节点提供的聊天服务对应的进程,其中,服务提供节点提供的聊天服务并以进程的方式进行呈现;

通过所述第二游戏服务节点向第一转发节点发送用于获取所述聊天服务的请求消息;

通过所述第一转发节点将所述请求消息转发至所述服务提供节点;

通过所述服务提供节点向第二转发节点发送所述聊天服务;

通过所述第二转发节点将所述主城服务器信息发送至所述第二游戏服务节点。

根据本发明实施例的第三方面,提供了一种基于如前述第一方面所述的游戏服务端系统的游戏控制装置,其特征在于,包括:

第一发送模块,用于通过第一游戏服务节点接收游戏客户端发送的登录服务请求消息,向所述游戏客户端提供登录服务,以供所述游戏客户端选择角色服务器进行登录;

接收模块,用于通过第二游戏服务节点接收所述游戏客户端发送的角色服务请求消息,向所述游戏客户端提供角色服务,以供所述游戏客户端选择角色服务器进行登录,其中,所述第二游戏服务节点与所述角色服务器对应;

第二发送模块,用于通过所述第二游戏服务节点获取并向所述游戏客户端发送主城服务器信息,以供所述游戏客户端与第三游戏服务节点通信连接,并通过所述第三游戏服务节点向所述游戏客户端提供主城服务;其中,所述第三游戏节点和所述主城服务器对应;或,

所述第二发送模块,用于通过所述第二游戏服务节点获取并向所述游戏客户端发送战斗服务器信息,以供所述游戏客户端与第四游戏服务节点通信连接,并通过所述第四游戏服务节点向所述游戏客户端提供战斗服务;其中,所述第四游戏节点和所述战斗服务器对应。

在本发明的一些实施例中,基于前述方案,游戏控制装置还包括其他服务获取模块,所述其他服务获取模块,包括:

获取单元,用于通过所述第二游戏服务节点获取由服务提供节点提供的聊天服务对应的进程,其中,服务提供节点提供的聊天服务并以进程的方式进行呈现;

第一发送单元,用于通过所述第二游戏服务节点向第一转发节点发送用于获取所述聊天服务的请求消息;

第一转发单元,用于通过所述第一转发节点将所述请求消息转发至所述服务提供节点;

第二发送单元,用于通过所述服务提供节点向第二转发节点发送所述聊天服务;

第二转发单元,用于通过所述第二转发节点将所述主城服务器信息发送至所述第二游戏服务节点。

根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第二方面所述的基于游戏服务端系统的游戏控制方法。

根据本发明实施例的第五方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第二方面所述的基于游戏服务端系统的游戏控制方法。

本发明实施例提供的技术方案可以包括以下有益效果:

在本发明的一些实施例所提供的技术方案中,一方面,通过设置至少两种游戏服务节点,且不同种类的游戏服务节点提供不同种类的服务,以用来处理不同类型的游戏逻辑,通过多种游戏服务节点将游戏逻辑解耦,将游戏逻辑以全局服务的形式进行提供,提高了跨服的便利性。同时,避免了现有技术中将游戏逻辑集中引出的过耦合问题。转发节点还用于接收并转发所述游戏服务节点之间的服务相关的消息,从而实现各种游戏服务节点之间的通讯。另一方面,本技术方案中,游戏服务节点和转发节点均可以进行水平扩容和动态扩容,从而提高了流量控制能力与动态扩容能力。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示意性示出了根据本发明的实施例的游戏服务端系统的结构图;

图2示意性示出了根据本发明的另一实施例的游戏服务端系统的结构图;

图3示意性示出了根据本发明的实施例的游戏服务节点的结构图;

图4示意性示出了根据本发明的实施例的游戏服务端系统中分组结构图;

图5示意性示出了根据本发明的实施例的基于游戏服务端系统的控制方法的流程图;

图6示意性示出了根据本发明的另一实施例的基于游戏服务端系统的控制方法的流程图;

图7示意性示出了根据本发明的实施例的消息转发方法的流程图;

图8示意性示出了根据本发明的实施例的基于游戏服务端系统的控制装置的结构图;

图9示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

图1示意性示出了根据本发明的实施例的游戏服务端系统的结构图,至少在一定程度上克服现有的游戏服务端系统中游戏逻辑耦合程度过高、跨服难度大的问题。

参考图1,游戏服务端系统100,包括:转发节点10、第一游戏服务节点11、第二游戏服务节点12和第三游戏服务节点13。

其中,第一游戏服务节点11、第二游戏服务节点12和第三游戏服务节点13为不同种类的游戏服务节点,不同种类的游戏服务节点提供不同种类的服务,以用来处理不同类型的游戏逻辑。

第一游戏服务节点11、第二游戏服务节点12和第三游戏服务节点13均可以与游戏客户端通信连接,每种游戏服务节点接收所述游戏客户端的服务请求消息和/或向所述游戏客户端发送服务应答消息。

不同种类的游戏服务节点之间通过转发节点10通讯连接,以为对方游戏服务节点提供服务。例如,第一游戏服务节点11通过转发节点10与第二游戏服务节点12通讯连接,以实现为第二游戏服务节点12提供服务。

转发节点10分别与第一游戏服务节点11、第二游戏服务节点12和第三游戏服务节点13通讯连接,所述转发节点10分别接收每种游戏服务节点提供的服务相关的全局注册消息。以及,转发节点10用于接收并转发每种游戏服务节点之间的服务相关的消息,其中,所述全局注册消息为所有游戏服务节点可获取的消息。

在示例性的实施例中,各种游戏服务节点(例如:第一游戏服务节点11、第二游戏服务节点12和第三游戏服务节点13),将自身节点内提供的服务在转发节点10上进行全局注册。其中,不同类型的服务对应于不同的游戏逻辑类型。例如:登录服务对应于游戏中登录相关的逻辑、战斗服务对应于游戏中战斗相关的逻辑等。

示例性的,第一游戏服务节点11提供登录服务,第一游戏服务节点11可以将可以提供登录服务的服务器地址列表a在转发节点10上进行全局注册,第一游戏服务节点11可以将提其可以提供的所有服务组成服务列表b在转发节点10上进行全局注册。进一步地,各种游戏服务节点可以从转发节点获取其他种游戏服务节点全局注册过的服务。例如,第二游戏服务节点12从转发节点10获取服务列表b,并可以从服务列表b中选取相应的服务。如玩家创建一个队伍,因为队伍可以跨服,所以队伍的服务是一个全局的服务,第二游戏服务节点12选取一个可用的队伍的服务,队伍的服务提供位于第三服务节点13上,第二游戏服务节点12将服务对应的请求消息通过转发节点10转发到第三服务节点13;第三服务节点13相应的队伍服务创建队伍,并通过转发节点10返回给第二服务节点12。

在图1所示实施例所提供的技术方案中,通过设置至少两种相互独立的游戏服务节点,且不同种类的游戏服务节点用于负责不同类型的游戏逻辑,并与游戏客户端通信连接,以接收所述游戏客户端的服务请求消息和/或向所述游戏客户端发送服务应答消息。从而,将不同服务分散到不同的节点中,实现了游戏服务功能的解耦以及服务端不同功能服务间相互隔离,避免因异常或者是迭代而带来的相互影响。并且,功能相互独立,减少代码模块的耦合程度,方便进一步地功能开发以及维护。

同时,在图1所示实施例所提供的技术方案中,通过设置与所述至少两种游戏服务节点通讯连接的转发节点,用于分别接收所述至少两种游戏服务节点提供的服务相关的全局注册消息。其中,所述全局注册消息为所有游戏服务节点可获取的消息,使得与游戏逻辑相关的服务可以被各个游戏服务节点获取,从而有利于跨服提供游戏服务。另外,转发节点还用于接收并转发所述游戏服务节点之间的服务相关的消息,从而实现各种游戏服务节点之间的通讯。

在示例性的实施例中,图2示意性示出了根据本发明的另一实施例的游戏服务端系统的结构图。根据游戏过程中涉及的游戏逻辑将图1中多种游戏服务节点进行详细阐述,同时,对游戏过程中,各种游戏服务节点与转发节点之间的交互过程进行详细阐述。

参考图2,游戏服务端系统200,包括:转发节点20以及以下游戏服务节点的至少两种:登录服务节点21、角色服务节点23、主城服务节点24、战斗服务节点25、服务提供节点26。

其中,在示例性的实施例中登录服务节点21与所述游戏客户端连接,并被配置为响应于所述游戏客户端的登录服务请求,向所述游戏客户端提供登录服务;具体的,登录服务节点21负责游戏玩家登录相关的服务处理。角色服务节点23与所述游戏客户端连接,并被配置为响应于所述游戏客户端的角色服务请求,向所述游戏客户端提供角色服务;具体的,角色服务节点23是游戏中玩家角色实体相关逻辑的控制节点,每个服务器唯一对应一个角色服务节点23,玩家从服务器列表中获取的服务器地址,就是角色服务节点23的地址。玩家角色实体的控制以及基本角色数据的存取都是在本节点完成。主城服务节点24与所述游戏客户端连接,并被配置为响应于所述游戏客户端的主城服务请求,向所述游戏客户端提供主城服务。战斗服务节点25与所述游戏客户端连接,并被配置为响应于所述游戏客户端的战斗服务请求,向所述游戏客户端提供战斗服务。

在示例性的实施例中,除了上述角色服务节点是对应指定服务器外,其它种类的游戏服务节点提供全局共享的服务,实现提供去服务器化的服务。具体的,转发节点20负责接收除了上述角色服务节点之外的各种游戏服务节点关于服务的全局注册,之后,转发节点20可以将关于服务的全局注册广播给所有的其它节点。从而,使得节点与节点发现的服务之间都保持着心跳,通过心跳的状态来随时更新服务的状态。

在示例性的实施例中,转发节点20负责不同节点之间消息的转发。转发节点20可以根据实际情况配置多个。示例性的,节点1可以根据一致性hash策略选择可用的转发节点进行服务请求消息的转发,以将服务请求消息转发到节点2;进一步地,节点2可以根据一致性hash策略选择另一个可用的转发节点进行服务应答消息的转发,以将服务应答消息转发到节点1。

在示例性的实施例中,登录服务节点21接收游戏客户端发送的登录服务请求消息,向所述游戏客户端提供登录服务,以供所述游戏客户端选择角色服务器进行登录。具体的,游戏玩家在游戏客户端相应的sdk进行登录后,可以随机选择一个登录服务节点21并与该登录服务节点21建立通讯连接。随机选择登录服务节点21有利于将登录的负载压力分摊到不同的登录服务节点21上。而登录服务节点21对游戏玩家进行登录验证,登录验证通过后,从数据库22中获取游戏玩家在每个服务器的简单的角色信息(例如:角色名称等),并将信息返回给游戏客户端,以便游戏玩家能够随时看到相应服务器上的相应角色,从而游戏玩家可以选择相应的服务器进行登录。游戏玩家进行登录验证以及获取到相应的基本角色数据后,与登录服务节点21断开连接。

示例性的,客户端与登录服务节点21采用短连接方式。

在示例性的实施例中,角色服务节点23接收所述游戏客户端发送的角色服务请求消息,向所述游戏客户端提供角色服务,以供所述游戏客户端选择角色服务器进行登录。具体的,当玩家结束与登录服务节点21的交互后,可以通过选择相应的服务器地址获取角色服务节点23的ip和对应连接的port,与角色服务节点23进行tcp长连接。

其中,角色服务节点23与登录服务节点21使用相同的数据库22或数据库集群。角色服务节点23从数据库22获取登录服务节点21对该玩家进行登录验证的加密信息,进行登录验证后,创建并初始化玩家的基本角色数据,如果等级装备信息等。玩家具体角色数据相关的消息都会发送到角色服务节点23中进行处理,如打造装备,完成任务等。

在示例性的实施例中,角色服务节点23获取并向所述游戏客户端发送主城服务器信息,以供所述游戏客户端与主城服务节点24通信连接。具体的,主城服务节点24可以提供主城相关服务,管理和分配所有的主城资源,处理和分配主城资源申请的请求。主城服务节点24在启动的时候,将其可以提供的服务通过转发节点20进行全局的服务注册,因此角色服务节点23就可以发现主城服务节点24提供的具体主城服务信息。进而,角色服务节点23中就可以通过主城服务节点24提供的主城相关服务,进行加入、离开以及切换主城等相关功能的实现。

在示例性的实施例中,角色服务节点23获取并向所述游戏客户端发送战斗服务器信息,以供所述游戏客户端与战斗服务节点25通信连接。具体的,战斗服务节点25主要提供战斗相关的服务,管理和分配所有的战斗副本资源,处理申请副本资源的请求,处理加入和退出副本的请求以及相应副本中的功能逻辑。与主城服务节点24类似,战斗服务节点25可以在转发节点20进行全局的服务注册从而被其它节点使用。

由于,同一个角色要么在主城,要么在战斗。即不可能同时在主城和战斗。因此,“主城服务”和“战斗服务”为玩家通过游戏客户端请求发送到角色服务节点后,角色服务节点获取“主城服务”或者“战斗服务”的信息发送给客户端。也就是说,对于同一个角色,上述两个实施例不会同时进行。

在示例性的实施例中,除了上述登录服务、角色服务、主城服务、战斗服务以外,其他游戏逻辑对应的服务均是由服务提供节点26提供。例如:与组队、聊天、团战、匹配等游戏逻辑相关的服务。其中,在服务提供节点26中每种服务独占一个进程,具体可以根据实际的负载配置相应数量的进程,每种服务对应的一个进程上,可以启动多个该类型的服务。每个进程中的每个服务在启动的时候,在转发节点注册全局的服务,其它服务发现该服务后,可以跟该服务进行通信,从而来完成相应的服务以及功能需求。本实施例提供的技术方案中,将游戏中的多种功能抽象成对应的服务,从而使功能逻辑解耦,以便于开发和维护。

图3示意性示出了根据本发明的实施例的游戏服务节点的结构图。参考图3,每个游戏服务节点300,包括:业务子系统30、数据库子系统31和支持子系统32,其中,

上述业务子系统30被配置为:为游戏运行过程提供不同功能的进程;上述数据库子系统31被配置为:为所述业务子系统提供数据库的相关功能的处理,在所述数据库子系统被启动时,所述数据库子系统与相应的数据库集群建立连接;上述支持子系统32被配置为:为不同的游戏服务节点内提供不同的支持服务。

在示例性的实施例中,所述业务子系统30包括:

管理进程300,用于节点内的进程的管理,以及节点内部服务信息的注册与发现;

消息转发进程301,用于与所述游戏客户端通信连接,以接收所述游戏服务端的服务请求消息和/或向所述游戏服务端发送服务应答消息;还用于节点内的服务相关的消息的转发;

游戏服务进程302,用于提供节点对应的游戏逻辑功能相关的服务;以及,

数据库进程303,用于与所述数据库子系统连接,以支持所述游戏服务进程提供游戏逻辑功能相关的服务。

在示例性的实施例中,管理进程300负责节点内部的进程管理以及服务发现,且在节点内部是唯一的。节点内部的每个进程在启动的时候都会连接管理进程300。管理进程300中维护着所有其它类型进程的状态,同时节点内部的服务注册与发现也是通过管理进程300来完成。

在示例性的实施例中,消息转发进程301是与游戏客户端的连接中间层以及消息的转发进程;游戏客户端直接与消息转发进程301进行连接,消息转发进程301起到了隔绝游戏客户端与真正游戏逻辑进程的作用,从而提高安全保障。游戏客户端所有的消息都会在消息转发进程301进行加密的验证,如果有异常,消息转发进程301直接与游戏客户端断开连接,防止异常消息发送到游戏进程。

同时,消息转发进程301还起到节点内部消息转发的作用。示例性的,当一个节点启动完成后,所有的消息转发进程301与所有的游戏服务进程302都建立连接,如果节点内部的游戏服务进程302之间有消息要发送,则消息直接选用一个消息转发进程301转发。一个节点内可以配置多个消息转发进程301,从而,将节点内部消息转发的负载均摊至每个消息转发进程301。

在示例性的实施例中,游戏服务进程302是节点中实际承载游戏逻辑运行的进程,在不同的节点中,有不同类型的游戏服务进程302,每个节点的实际提供的功能与服务都是通过游戏服务进程302实际提供的,每个节点可以根据需求和资源限制配置多个游戏服务进程302。游戏服务进程302在启动的时候,与管理进程300建立连接,同时将提供的服务向管理进程300进行注册,管理进程300会将服务广播给所有的游戏服务进程302,同时游戏服务进程302从管理进程300获取和更新可用的服务列表。节点内部不同游戏服务进程302间的消息通信是通过消息转发进程301进行转发,游戏服务进程302从节点内部可用的服务列表中选取相应的服务,通过消息转发进程301将服务的请求转发到相应的目的游戏服务进程。

在示例性的实施例中,数据库进程303负责数据库相关功能的处理,数据库进程303在启动的时候与相应的数据库集群建立连接,从而来完成相应的数据库相关操作请求。每个游戏服务进程302在启动的时候都会选择一个数据库进程303进行连接,游戏服务进程302中的一些数据操作请求,如玩家数据的存盘请求等等,首先都会讲请求发送到数据库进程303,数据库进程303与实际的数据库集群进行交互,从而完成实际的数据相关的服务。

在示例性的实施例中,数据库子系统31的功能如下:数据库子系统31可以根据需求配置成mongoocean集群等系统,数据库子系统31提供了高效、可靠、稳定的数据库服务集群。数据库集群是整个架构中所有节点共享的,每个节点上要部署相应的数据库服务,从而来支撑游戏中具体的数据库相关服务。每个数据库进程303在启动的时候连接到数据库服务,维护游戏服务进程302发过来的数据请求服务,根据一定规则和优先级处理请求,将请求发送到实际的数据库集群,并将数据服务请求的结果返回给游戏服务进程302。

在示例性的实施例中,支持子系统32是为了游戏更好的进行运作而提供支持的一些系统。总体上,支持子系统32为不同的游戏服务节点内提供不同的支持服务。也就是说,支持子系统32是整个服务器所有游戏服务节点共享的,但是不同的游戏服务节点需要部署相应的支持子系统32的服务。如支持子系统32的运营模块是为运营提供数据的监控以及指令的操作相关功能的系统,每个节点需要部署数据的监控服务以及指令操作的性能监控模块。支持子系统32的日志模块的功能是进行日志的过滤和收集,每个节点上都要部署日志服务相关的功能,将数据汇总后,在一个统一的数据中心进行日志的监控和分析。支持子系统32的性能监控模块是针对服务器的资源和性能进行监控,方便更好的进行资源分配和异常情况下的报警服务。

在示例性的实施例中,每种游戏服务节点还包括:负载流量监控模块,用于根据自身节点上的负载流量的大小对各自节点的容量进行扩大或缩小。转发节点也还包括:负载流量监控模块,用于根据自身节点上的负载流量的大小对各自节点的容量进行扩大或缩小。其中,所述负载流量监控模块根据各自节点上的负载流量的大小对各自节点的容量进行扩大或缩小。每种游戏服务节点可以根据负载情况随时进行水平扩展。

以游戏服务节点中的登录服务节点为例进行说明:

一方面,当节点内的负载流量监控模块发现线上登录服务节点负载过高时,可以随时启动新的登录服务节点。玩家通过获取提供登录服务的一个服务器列表来完成发现服务器以及登录服务节点。具体的,新启动的登录服务节点对应的服务器被添加到提供登录服务的服务器列表中,玩家就可以选择新添加的提供登录服务的服务器地址进行登录,从而将负载分摊到新添加的登录服务节点上。

另一方面,登录服务节点也可以实时进行资源收缩,当节点内的负载流量监控模块发现线上登录服务节点负载较低时,将一个登录服务节点从服务器列表中移除,进而登录的流量将不会再分配到该节点上。对于登录服务节点来说,由于游戏客户端与登录服务节点均为短连接,所以流量会很快被导出,待所有流量导出后,即可关闭对应的登录服务节点。

在另一示例性的实施例中,每种游戏服务节点以及转发节点中的上述负载流量监控模块仅用于统计和监控各自节点内的负载流量,并将统计监控后的负载流量信息进行显示。以便于开发维护人员发现负载有异常或者报警时,随时添加节点来承载更多负载。

从而,与游戏客户端进行短连接的游戏服务节点实现了容量可弹性伸缩,能够很好的实现水平扩展和动态扩容,能够很好的进行流量的控制,方便实现资源的调整以及负载的控制。

然而,而对于与游戏客户端长连接的游戏服务节点(例如:角色服务节点等),本实施例提供的技术方案采用对游戏服务端系统进行分组的方式实现每种节点的容量可弹性伸缩功能。

具体的,将游戏服务端系统分为多个组,在每个分组内包括:至少两种所述游戏服务节点,且所述游戏服务节点包括负载流量监控模块;其中,所述负载流量监控模块根据各自节点上的负载流量的大小在仅能每个分组内部对各自节点的容量进行扩大或缩小。

在示例性的实施例中,图4示意性示出了根据本发明的实施例的游戏服务端系统中分组结构图,具体描述的是分组的结构以及分组切换的流程。

参考图4,将游戏服务端系统分为两个分组:分组41和分组42。其中,每个分组的节点只能发现本分组内部节点提供的服务。

在分组切换前:分组41包括:两个角色服务节点(23a、23b),两个主城服务节点(24a、24b),两个战斗服务节点(25a、25b),两个服务提供节点(26a、26b);分组42包括:两个角色服务节点(23c、23d),两个主城服务节点(24c、24d),两个战斗服务节点(25c、25d),两个服务提供节点(26c、26d)。

且在分组切换前,这里以主城服务为例:分组41中的两个角色服务节点(23a、23b)中相应的服务为两个主城服务节点(24a、24b)提供的,分组42中两个角色服务节点(23c、23d)中相应的服务为两个主城服务节点(24c、24d)提供的。分组41/分组42中的节点只能发现本分组内部节点提供的服务。

示例性的,本实施例提供的技术方案中各个分组之间可以线上实时的切换分组。如步骤1所示,将24b,25b,26b的分组从分组41切换到分组42。由于所有的服务发现方(需要使用服务的节点)与服务提供方(提供对应服务的节点)都保持着状态的更新,因此经过切换分组后,如步骤2所示,分组41中的两个角色服务节点(23a、23b)中服务注销了主城服务节点24b提供的相关服务,即只包含主城服务节点24a提供的相关服务;且分组42中的两个角色服务节点(23c、23d)中通过转发节点20收到主城服务节点24b提供的相关服务。从而,分组切换后,分组42的本地可用的消息服务变成主城服务节点(24a),分组42的本地可用的消息服务变成主城服务节点(24b,24c,24d)。且分组切换后,分组41内从角色服务节点(23a、23b)的所有服务请求流量将不可以再分发到主城服务节点24b上,同时,分组42内从角色服务节点(23c、23d)中服务请求的流量将一部分分可以发到主城服务节点24b上。

可见,分组的控制可以加强对游戏服务端的流量进行控制,方便合理的安排流量负载。示例性的,本实施例提供的技术方案中分组控制也可以将上述主城服务节点24b分配到除了分组41和分组42的其他分组中,这样分组41和分组42中所有的流量都不会分发到主城服务节点24b上,实现了流量的导出以及线上资源的收缩。

以下介绍本发明的游戏控制方法实施例,所述游戏控制方法为基于上述实施例提供的游戏服务端系统。其中,游戏控制方法实施例涉及的游戏服务节点、转发节点、登录服务节点、角色服务节点、主城服务节点、战斗服务节点等等均与上述游戏服务端系统实施例涉及的上述术语具有相同的含义。

图5示意性示出了根据本发明的实施例的基于游戏服务端系统的控制方法的流程图,参考图5,该方法包括:

步骤s501,通过第一游戏服务节点接收游戏客户端发送的登录服务请求消息,向所述游戏客户端提供登录服务,以供所述游戏客户端选择角色服务器进行登录;

步骤s502,通过第二游戏服务节点接收所述游戏客户端发送的角色服务请求消息,向所述游戏客户端提供角色服务,以供所述游戏客户端选择角色服务器进行登录,其中,所述第二游戏服务节点与所述角色服务器对应;

步骤s503,通过所述第二游戏服务节点获取并向所述游戏客户端发送主城服务器信息,以供所述游戏客户端与第三游戏服务节点通信连接,并通过所述第三游戏服务节点向所述游戏客户端提供主城服务;其中,所述第三游戏节点和所述主城服务器对应;或,

步骤s504,通过所述第二游戏服务节点获取并向所述游戏客户端发送战斗服务器信息,以供所述游戏客户端与第四游戏服务节点通信连接,并通过所述第四游戏服务节点向所述游戏客户端提供战斗服务;其中,所述第四游戏节点和所述战斗服务器对应。

在示例性的实施例中,上述第一游戏服务节点可以是图2所示登录服务节点21,用于接收游戏客户端发送的登录服务请求消息,向所述游戏客户端提供登录服务,以供所述游戏客户端选择角色服务器进行登录。因此,步骤s501的具体的实现过程与图2所示实施例中的登录服务节点21的具体功能介绍相对应,在此不再赘述。

在示例性的实施例中,上述第二游戏服务节点可以是图2所示角色服务节点23,用于接收所述游戏客户端发送的角色服务请求消息,向所述游戏客户端提供角色服务,以供所述游戏客户端选择角色服务器进行登录。角色服务节点23还获取并向所述游戏客户端发送主城服务器信息,以供所述游戏客户端与主城服务节点24通信连接。因此,步骤s502和步骤s503的具体的实现过程与图2所示实施例中的角色服务节点23的具体功能介绍相对应,在此不再赘述。

在示例性的实施例中,上述第三游戏服务节点可以是图2所示主城服务节点24,用于向所述游戏客户端提供主城服务,以及获取并向所述游戏客户端发送战斗服务器信息,以供所述游戏客户端与战斗服务节点25通信连接。因此,步骤s504的具体的实现过程与图2所示实施例中的主城服务节点24的具体功能介绍相对应,在此不再赘述。

在示例性的实施例中,图6示意性示出了根据本发明的实施例的基于游戏服务端系统的控制方法的流程图,具体涉及通过所述第二游戏服务节点获取并向所述游戏客户端发送主城服务器信息的具体流程,参考图6,该方法包括:

步骤s601,通过所述第二游戏服务节点(角色服务节点23)向第一转发节点发送用于获取主城服务器信息的请求消息;

步骤s602,通过所述第一转发节点将所述请求消息转发至所述第三游戏服务节点(主城服务节点24);

步骤s603,通过所述第三游戏服务节点(主城服务节点24)生成主城服务器信息,并向第二转发节点发送所述主城服务器信息;以及,

步骤s604,通过所述第二转发节点将所述主城服务器信息发送至所述第二游戏服务节点(主城服务节点24)。

在示例性的实施例中,图7示意性示出了根据本发明的实施例的消息转发方法的流程图,参考图7,具体涉及图6所示实施例中的角色服务节点23和主城服务节点24之间的消息转发以及节点内部消息的转发。

其中,转发节点20负责角色服务节点23和主城服务节点24之间消息的转发。转发节点20可以根据实际情况配置有转发节点20a和转发节点20b。

示例性的,如图7所示,步骤①中角色服务节点23通过消息转发进程301a接收来自游戏客户端70发送来的某一请求消息。假如为关于主城的请求消息,则在步骤②中消息转发进程301a将其转发给节点内部的游戏服务进程302a。游戏服务进程302a在本地服务类别中找到主城服务并生成用于获取主城服务器信息的请求消息(步骤②)后,将通过可用的转发节点20进行节点间的消息转发(步骤③)。

具体地,角色服务节点23中的游戏服务进程302a可以根据一致性hash策略选择可用的转发节点20a进行消息转发,以将上述请求消息转发到主城服务节点24中的提供上述主城服务的游戏服务进程302b(步骤④)。从而,通过转发节点20完成角色服务节点23向主城服务节点24的消息转发。

在主城服务节点24内部,提供上述主城服务的游戏服务进程302b将主城服务通过可用的转发节点20进行节点间的消息转发(步骤⑤)。

具体地,游戏服务进程302b可以再次根据一致性hash策略选择可用的转发节点20b进行消息转发,以将消息转发到角色服务节点23中的游戏服务进程302a(步骤⑥)。从而,通过转发节点20完成主城服务节点24向角色服务节点23的消息转发。

从而,主城服务到达角色服务节点23中的游戏服务进程302a,进一步地,通过步骤⑦将主城服务发送至消息转发进程301a,以通过消息转发进程301a将主城服务发送至游戏客户端70(步骤⑧)。

综上可见,本实施例提供的技术方案中,节点内部的消息需要消息转发进程转发,节点之间的消息通过转发节点转发。

在上述游戏控制方法实施例所提供的技术方案中,通过至少两种相互独立的游戏服务节点负责不同类型的游戏逻辑,并与游戏客户端通信连接,以接收所述游戏客户端的服务请求消息和/或向所述游戏客户端发送服务应答消息。从而,将不同服务分散到不同的节点中,实现了游戏服务功能的解耦以及服务端不同功能服务间相互隔离,避免因异常或者是迭代而带来的相互影响。并且,功能相互独立,减少代码模块的耦合程度,方便进一步地功能开发以及维护。

同时,在上述游戏控制方法实施例所提供的技术方案中,通过与所述至少两种游戏服务节点通讯连接的转发节点,用于分别接收所述至少两种游戏服务节点提供的服务相关的全局注册消息。其中,所述全局注册消息为所有游戏服务节点可获取的消息,使得与游戏逻辑相关的服务可以被各个游戏服务节点获取,从而有利于跨服提供游戏服务。另外,转发节点还用于接收并转发所述游戏服务节点之间的服务相关的消息,从而实现各种游戏服务节点之间的通讯。

以下介绍本发明的游戏控制装置实施例,所述游戏控制装置为基于上述实施例提供的游戏服务端系统。

图8示意性示出了根据本发明的实施例的基于游戏服务端系统的控制装置的结构图,参考图8,基于游戏服务端系统的游戏控制装置800,包括:

第一发送模块801,用于通过第一游戏服务节点接收游戏客户端发送的登录服务请求消息,向所述游戏客户端提供登录服务,以供所述游戏客户端选择角色服务器进行登录;

接收模块802,用于通过第二游戏服务节点接收所述游戏客户端发送的角色服务请求消息,向所述游戏客户端提供角色服务,以供所述游戏客户端选择角色服务器进行登录,其中,所述第二游戏服务节点与所述角色服务器对应;

第二发送模块803,用于通过所述第二游戏服务节点获取并向所述游戏客户端发送主城服务器信息,以供所述游戏客户端与第三游戏服务节点通信连接,并通过所述第三游戏服务节点向所述游戏客户端提供主城服务;其中,所述第三游戏节点和所述主城服务器对应;或

所述第二发送模块803,通过所述第二游戏服务节点获取并向所述游戏客户端发送战斗服务器信息,以供所述游戏客户端与第四游戏服务节点通信连接,并通过所述第四游戏服务节点向所述游戏客户端提供战斗服务;其中,所述第四游戏节点和所述战斗服务器对应

在示例性的实施例中,基于游戏服务端系统的游戏控制装置800还包括其他服务获取模块,所述其他服务获取模块,包括:

获取单元,用于通过所述第二游戏服务节点获取由服务提供节点提供的聊天服务对应的进程,其中,服务提供节点提供的聊天服务并以进程的方式进行呈现;

第一发送单元,用于通过所述第二游戏服务节点向第一转发节点发送用于获取所述聊天服务的请求消息;

第一转发单元,用于通过所述第一转发节点将所述请求消息转发至所述服务提供节点;

第二发送单元,用于通过所述服务提供节点向第二转发节点发送所述聊天服务;

第二转发单元,用于通过所述第二转发节点将所述主城服务器信息发送至所述第二游戏服务节点。

由于本发明的示例实施例的基于游戏服务端系统的控制装置的各个功能模块与上述基于游戏服务端系统的控制方法的示例实施例的步骤对应,因此对于本发明装置实施例中未披露的细节,请参照本发明上述的基于游戏服务端系统的控制方法的实施例。

下面参考图9,其示出了适于用来实现本发明实施例的电子设备的计算机系统900的结构示意图。图9示出的电子设备的计算机系统900仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图9所示,计算机系统900包括中央处理单元(cpu)901,其可以根据存储在只读存储器(rom)902中的程序或者从存储部分908加载到随机访问存储器(ram)903中的程序而执行各种适当的动作和处理。在ram903中,还存储有系统操作所需的各种程序和数据。cpu901、rom902以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。

以下部件连接至i/o接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至i/o接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。

特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(cpu)901执行时,执行本申请的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的基于游戏服务端系统的控制方法。

例如,所述的电子设备可以实现如图5中所示的:步骤s501,通过第一游戏服务节点接收游戏客户端发送的登录服务请求消息,向所述游戏客户端提供登录服务,以供所述游戏客户端选择角色服务器进行登录;步骤s502,通过第二游戏服务节点接收所述游戏客户端发送的角色服务请求消息,向所述游戏客户端提供角色服务,以供所述游戏客户端选择角色服务器进行登录,其中,所述第二游戏服务节点与所述角色服务器对应;步骤s503,通过所述第二游戏服务节点获取并向所述游戏客户端发送主城服务器信息,以供所述游戏客户端与第三游戏服务节点通信连接,并通过所述第三游戏服务节点向所述游戏客户端提供主城服务;其中,所述第三游戏节点和所述主城服务器对应;或,步骤s504,通过所述第二游戏服务节点获取并向所述游戏客户端发送战斗服务器信息,以供所述游戏客户端与第四游戏服务节点通信连接,并通过所述第四游戏服务节点向所述游戏客户端提供战斗服务;其中,所述第四游戏节点和所述战斗服务器对应。

又如,所述的电子设备可以实现如图6所示的各个步骤。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1