网络游戏服务器开发框架
LoginGate 服务器
唯一
LoginGate
地址暴露给最终用户LoginGate
可以挂接n个LoginServer
,将最终用户的所有请求转发给目标LoginServer
当最终用户通过此服务完成登陆后,会与该服务断开连接,断开连接前,服务器会将数据上报给
GameGate
服务
LoginServer 服务器
登陆服务器,仅作于内部服务与
LoginGate
进行连接,所有的最终用户请求由LoginGate
过滤后,转发过来进行处理。与LoginGate
的所有通信都是明文,即未加密数据
GameGate 服务器
游戏网关服务器,与
LoginGate
协作完成最终用户的登陆过程,每一个服务会连接到唯一一个LoginGate
服务上进行注册LoginGate
会将完成验证登陆的用户信息同步到所有已注册成功的GameGate
上,根据注册不同的GameGate
类型信息,LoginGate
会发送不同的通过认证的最终用户信息GameGate
挂接n个GameServer
服务到自身,此服务将所有注册到自身的GameServer
信息发送给最终用户,提供用户选择具体的区或线路进行游戏(区和线路在不同的游戏设定中有不同的定义),在这里区的定义对应的是GameGate
,每一个GameGate
可以表示物理或逻辑上的多个游戏分区,每个分区由至少一个GameServer
组成线路定义为
GameServer
,每一个GameServer
代表一条线路,线路之间互相不可见,但是可以通过IMServer
进行一些扩展通信,例如公会、好友、聊天等服务可以设置透明通信或隐藏通信。透明通信由IMServer
向目标GameServer
转发请求,并进行处理;隐藏通信仅在当前GameServer
进行处理,不会做跨越性操作
GameServer服务器
游戏服务器,作为内部服务与
GameGate
协作处理最终用户的请求,这个服务主要处理游戏逻辑,例如战斗。此服务启动后,会根据配置文件的配置信息进行相应的服务注册,该服务启动成功后,会注册到
GameGate
和IMServer
、AIServer
服务器,它们分别提供最终用户游戏、交友、公会、聊天和智能体的移动、创建、销毁等服务。作为整个游戏的核心处理服务器,会处理掉大部分的用户交互服务请求,只有在不能处理的情况下,才会请求其它服务协同处理。
IMServer服务器
IM
通信服务器,全称InstantMessaging
,此服务的作用是提供物理或逻辑不同位置的GameServer
上的最终用户通讯的一个媒介用户成功登陆
GameServer
时,会将自己的好友、公会信息注册到此服务上,当需要跨GameServer
服务时,共IMServer
使用。此服务主要提供聊天、交友、交易、公会等社交类行为服务,该服务可以直接或间接的与最终用户进行通信,但最终用户无法直接与该服务进行通信,比如请求操作,所有的用户操作都由
GameServer
转发,IMServer
可以选择性的直接反馈最终用户或通过GameServer
反馈。
AIServer服务器
人工智能服务器,全称
Artificial Intelligence
(译为人工智能),这里的人工智能主要体现在游戏中的NPC
、MONSTER
等有行为表现物体。GameServer
启动后会连接到此服务进行注册,并获取所需智能体的信息,以反馈给最终用户,并最终显示在用户应用程序中。该服务主要控制智能体的移动、攻击、创建、销毁等行为,另外包括在战斗中或非战斗状态下的行为,比如游走在街道上的商品小贩;在搜索到攻击目标时,主动或召集附近的战斗单位一起攻击用户,都属于该服务的工作内容。
CenterServer服务器
中心服务器,用于监控、更新已注册到此服务的状态,比如电信1区(傲视天地)服务器的运行状态等。此服务主要是管理除自身以外的所有服务程序的运行状态,以及时反馈给技术活运维人员。
BillingServer服务器
计费服务器,用于计算用户在游戏中的消耗、增值;比如XX在游戏中购买了一个双倍经验卡,消耗10金币,或者用户通过网站形式进行充值,都会通过该服务反馈给用户最终结果。
WebServices服务器
网站服务,主要用于网站与游戏之间的交互。比如XX用户通过网站进行充值服务,充值成功后,通知计费服务以响应用户操作;或通过网站进行游戏激活、礼品领取等,都需要此服务与游戏应用程序进行交互,以体现实时的变化
DBServer服务器
用于全局数据维护,例如更新、查询、插入、删除操作;这些数据包含用户账号、充值、代金卷、点卡、月卡以及游戏中需要用到的角色数据。
服务器工作过程
用户从客户端选择游戏服务器列表
登录到Login Server,在登陆的过程中
先去平台服务器进行账号的验证
验证通过后会通知Login Server,然后Login Server会把验证的消息发送 到center Server,请求其中的Gate Server的地址和端口
Center Server会找一个可用的Gate Server信息,发送回LoginServer
Login Server会把消息发送给客户端
客户端断开与Login Server的连接,然后与Game Server 连接进入游戏场景中