一、客户端: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不带网关服务器的服务器架构