一、客户端:2D绘制引擎、3D绘制引擎绘制游戏世界的实时画面
二、服务器端:负责响应所有客户端的连接请求和游戏逻辑处理,并控制所有客户端的游戏画面绘制
1、服务器组的架构差的分类
1.1 带网关服务器的服务器架构
1.11 网关服务器:网关服务器的主要职责是将客户端和游戏服务器隔离,
客户端程序直接与这些网关服务器通信,并不需要知道具体的游戏服务器内部架构,
包括它们的IP、端口、网络通信模型(完成端口或Epoll)等。客户端只与网关服务器相连,
通过网关服务器转发数据包间接地与游戏服务器交互。同样地,游戏服务器也不直接和客户端通信,
发给客户端的协议都通过网关服务器进行转发。
1.12 一组服务器包括LoginGate、LoginServer、GameGate、GameServer、DBServer和MServer等多种服务器。
LoginGate和GameGate就是网关服务器,一般一组服务器会配置3台GameGate,因为稳定性对于网络游戏运营来说是至关重要的,
而服务器宕机等突发事件是游戏运营中所面临的潜在风险,配置多台服务器可以有效地降低单个服务器宕机带来的风险。另外,
配置多台网关服务器也是进行负载均衡的有效手段之一。
1.121 LoginGate :LoginGate主要负责在玩家登录时维护客户端与LoginServer之间的网络连接与通讯,对LoginServer和客户端的通信数据进行加解密、校验。
1.122 LoginServer :LoginServer主要功能是验证玩家的账号是否合法,只有通过验证的账号才能登录游戏
从架构图可以看出, DBServer和GameServer会连接LoginServer。玩家登录基本流程是,客户端发送账号和密码到LoginServer验证,
如果验证通过,LoginServer会给玩家分配一个SessionKey,LoginServer会把这个SessionKey发送给客户端、DBServer和GameServer,
在后续的选择角色以后进入游戏过程中,DBServer和GameServer将验证SessionKey合法性,如果和客户端携带的SessionKey不一致,
将无法成功获取到角色或者进入游戏。
1.123 GameGate :主要负责在用户游戏过程中负责维持GS与客户端之间的网络连接和通讯,对GS和客户端的通信数据进行加解密和校验,
对客户端发往GS的用户数据进行解析,过滤错误包,对客户端发来的一些协议作简单的逻辑处理,其中包括游戏逻辑中的一些超时判断
1.124 GameServer : GameServer(GS)主要负责游戏逻辑处理。
网络游戏有庞大世界观背景,绚丽激烈的阵营对抗以及完备的装备和技能体系。
目前,网络游戏主要包括任务系统、声望系统、玩家PK、宠物系统、摆摊系统、行会系统、排名系统、副本系统、生产系统和宝石系统等。从软件架构角度来看,
这些系统可以看着GS的子系统或模块,它们共同处理整个游戏世界逻辑的运算。游戏逻辑包括角色进入与退出游戏、跳GS以及各种逻辑动作(比如行走、跑动、说话和攻击等)。
1.125 DBServer
DBServer主要的功能是缓存玩家角色数据,保证角色数据能快速的读取和保存。由于角色数据量是比较大的,包括玩家的等级、经验、生命值、魔法值、装备、技能、好友、公会等。
如果每次GS获取角色数据都去读数据库,效率必然非常低下,用DBServer缓存角色数据之后,极大地提高了数据请求的响应速度。
1.126 MServer
每一个组有一台MServer,主要负责维持3台GS之间数据的转发和数据广播。另外一些游戏系统也可能会放到MServer上处理,比如行会系统。
总结
DBServer与GameGate交互的协议主要包括列角色、创建角色、删除角色、恢复角色等,
DBServer与GameServer交互的协议包括读取角色数据、保存角色数据和跳服务器等
DBServer与LoginServer交互的协议主要是用户登录协议,这时候会给DBServer发送SessionKey。
应用:
[1]选择角色流程:在选角色过程中,客户端会把携带游戏账号和SessionKey的选角色协议发给GG,GG做一些简单处理之后转发给DBServer,DBServer要验证SessionKey的合法性,
验证通过之后,DBServer会从角色信息缓冲区里取出该账户的所有角色信息发给客户端。这个过程在客户端的表现是,当选择好服务器组之后,客户端会直接显示该账号下的所有角色,
之后就可以选择角色进入游戏了。
[2]玩家进入游戏流程:
在玩家选角色正式进入游戏时,客户端会把携带游戏账号、角色ID和SessionKey的登录协议发给GG,GG做一些简单处理之后转发给GS。GS会验证SessionKey的合法性,验证通过之后,在玩家选角色正式进入游戏时,客户端会把携带游戏账号、角色ID和SessionKey的登录协议发给GG,GG做一些简单处理之后转发给GS。GS会验证SessionKey的合法性,验证通过之后,
GS会把验证通过的结果发给客户端,同时GS给DBServer发获取角色数据的协议,这些角色数据是一个玩家所有的游戏数据,包括装备、技能等等
[3]游戏逻辑数据转发过程:
在玩家游戏过程,客户端把逻辑协议(包括走、说话、跑、使用技能等)发给GG,GG完成加解密和简单逻辑处理之后转发给GS,GS负责这些协议的主要
1.2不带网关服务器的服务器架构
网游服务器架构图 网络游戏服务器端
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
移动端网络游戏服务器架构
搭建具有负载均衡的网络服务器架构。
负载均衡 网络游戏 游戏服务器