目录

网络游戏服务器开发框架

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协作处理最终用户的请求,这个服务主要处理游戏逻辑,例如战斗。

  • 此服务启动后,会根据配置文件的配置信息进行相应的服务注册,该服务启动成功后,会注册到GameGateIMServerAIServer服务器,它们分别提供最终用户游戏、交友、公会、聊天和智能体的移动、创建、销毁等服务。作为整个游戏的核心处理服务器,会处理掉大部分的用户交互服务请求,只有在不能处理的情况下,才会请求其它服务协同处理。

IMServer服务器

  • IM通信服务器,全称InstantMessaging,此服务的作用是提供物理或逻辑不同位置的GameServer上的最终用户通讯的一个媒介

  • 用户成功登陆GameServer时,会将自己的好友、公会信息注册到此服务上,当需要跨GameServer服务时,共IMServer使用。

  • 此服务主要提供聊天、交友、交易、公会等社交类行为服务,该服务可以直接或间接的与最终用户进行通信,但最终用户无法直接与该服务进行通信,比如请求操作,所有的用户操作都由GameServer转发,IMServer可以选择性的直接反馈最终用户或通过GameServer反馈。

AIServer服务器

  • 人工智能服务器,全称Artificial Intelligence(译为人工智能),这里的人工智能主要体现在游戏中的NPCMONSTER等有行为表现物体。

  • GameServer启动后会连接到此服务进行注册,并获取所需智能体的信息,以反馈给最终用户,并最终显示在用户应用程序中。

  • 该服务主要控制智能体的移动、攻击、创建、销毁等行为,另外包括在战斗中或非战斗状态下的行为,比如游走在街道上的商品小贩;在搜索到攻击目标时,主动或召集附近的战斗单位一起攻击用户,都属于该服务的工作内容。

CenterServer服务器

  • 中心服务器,用于监控、更新已注册到此服务的状态,比如电信1区(傲视天地)服务器的运行状态等。此服务主要是管理除自身以外的所有服务程序的运行状态,以及时反馈给技术活运维人员。

BillingServer服务器

  • 计费服务器,用于计算用户在游戏中的消耗、增值;比如XX在游戏中购买了一个双倍经验卡,消耗10金币,或者用户通过网站形式进行充值,都会通过该服务反馈给用户最终结果。

WebServices服务器

  • 网站服务,主要用于网站与游戏之间的交互。比如XX用户通过网站进行充值服务,充值成功后,通知计费服务以响应用户操作;或通过网站进行游戏激活、礼品领取等,都需要此服务与游戏应用程序进行交互,以体现实时的变化

DBServer服务器

  • 用于全局数据维护,例如更新、查询、插入、删除操作;这些数据包含用户账号、充值、代金卷、点卡、月卡以及游戏中需要用到的角色数据。

服务器工作过程

  1. 用户从客户端选择游戏服务器列表

  2. 登录到Login Server,在登陆的过程中

  3. 先去平台服务器进行账号的验证

  4. 验证通过后会通知Login Server,然后Login Server会把验证的消息发送 到center Server,请求其中的Gate Server的地址和端口

  5. Center Server会找一个可用的Gate Server信息,发送回LoginServer

  6. Login Server会把消息发送给客户端

  7. 客户端断开与Login Server的连接,然后与Game Server 连接进入游戏场景中