一种高性能的大型多人在线角色扮演游戏服务器架构设计.pdf
《一种高性能的大型多人在线角色扮演游戏服务器架构设计.pdf》由会员分享,可在线阅读,更多相关《一种高性能的大型多人在线角色扮演游戏服务器架构设计.pdf(2页珍藏版)》请在文库网上搜索。
1、计算机光盘软件与应用 2012年第09期 Computer CD Software and Applications 软件设计开发 187 一种高性能的大型多人在线角色扮演游戏服务器架构设计 马亚花 (西南交通大学,成都 610031) 摘要:大型多人在线角色扮演游戏(Massively Multiplayer Online Role Playing Game,以下简称MMORPG)一般采用客户端/服务器结构,服务器架构设计是成功开发一款MMORPG的关键,本文对高性能MMORPG服务器架构设计进行了深入地研究。一个MMORPG一般会开设多个区供玩家进行游戏,一个区会包括一组服务器,本文设计出
2、的服务器组架构包括LoginServer、WorldServer、WorldGameServer、GameServer和DBServer等服务器。 关键词:MMORPG;服务器;架构;高性能 中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2012) 09-0187-02 一、前言 MMORPG 的结构分为客户端与服务器端,客户端展现游戏实时画面,并且将玩家在客户端逻辑请求的操作发往服务器端,服务器端负责响应所有客户端的连接请求,处理客户段的逻辑请求,并将结果返回给客户端以使游戏在客户端继续进行。客户端与服务器通过网络数据包交互和完成每一个游戏逻辑,游戏绝大部分逻
3、辑都是在服务器端负责处理,为了保证海量用户同时进行游戏,并且体验良好,优秀服务器架构起到了非常关键的作用。 二、服务器架构设计 (一)服务器架构不同分类 服务器组架构有多种,其中使用最广泛的有两种:一种是带路由服务器的服务器架构;另一种是不带路由服务器的服务器架构,两种方案各有利弊。本文设计出了另一种新型的设计方案:一个世界服务器作为整个服务器组的中心,一切请求通过中心服务器转发,呈星形结构。每个其他服务器只负责处理自己的逻辑。这种方案做到了每个服务器各司其职,职责清晰,并且根据游戏玩家数量的改变来动态的增减服务器的数量。 (二)服务器架构设计 根据 MMORPG规模大小和设计不同,每组服务器
4、中服务器种类和数量也是不同的。本文中的设计是星形结构服务器组架构,如图1所示。 图1 星形服务器架构设计 星形服务器架构设计虽然增加了服务器设计的难度,并且服务器的数量也相应的增加了,但却带来了其它架构所不具有的优点,具体优点为: 1.WorldServer所有其他服务器的管理者,可以对所有其他服务器进行调度,使得整体结构非常清晰,各个服务器各司其职,也利于开发过程中的工作划分。 2.WorldServer只负责调度、数据包数据解析、数据加解密、数据超时处理,不做任何逻辑处理,这样主要是可以过滤掉错误和非法的数据包,提高其他服务器的处理数据的效率。 3.GameServer 可以随时增加,Wo
5、rldGameServer 和GameServer中的复杂逻辑可以随时提取出来做成单独服务器,有效提高效率和扩展性。 星形架构虽然有上面的三个优点,但是还是需注意两个可能导致负面效果的情况:一个是如何避免中心管理者身份WorldServer的高负载瓶颈问题,第二个是由于不同的问题导致的WorldServer出现故障,导致整组服务器瘫痪,无法对外提供服务问题。上述两个问题可以采用 Nginx 负载均衡技术加以解决。Nginx负载均衡技术就是同时存在多个WorldServer,比如一组服务器可以配置两台或更多WorldServer。通过对Nginx进行简单的配置,就可以达到实时的同步两台或多台Wo
6、rldServer,当某一台负载较大或者宕机时,自动切换到正常运行的WorldServer,从而保证所有客户端都不会掉线。从图1的服务器架构图可以看出,一组服务器包括 LoginServer、WorldServer、WorldGameServer、DBServer 和多个 GameServer 等多种服务器。一组服务器一般至少配置两台 WorldServer 和一台 Nginx 服务器,因为对于MMORPG 运营来说稳定性是至关重要的。在游戏运营中所面临的潜在的风险是服务器宕机等突发事件。需配置两台WorldServer和一台Nginx服务器可以组成一个负载均衡,可以有效的防治服务器宕机带来的
7、风险。下面是对各种服务器主要功能和服务器之间数据交互的详细解释。 (1)LoginServer LoginServer主要功能是对玩家账号是否合法进行校验,只有通过校验的账号才能成功登录游戏界面,运行游戏程序。从架构图可以看出,LoginServer 会连接 WorldServer 和 AccoutDB。AccoutDB玩家账号信息数据库,数据库中存放玩家的具体信息,比如账号和密码等。玩家登录游戏的基本流程是,客户端填写好账号和密码,然后将账号和密码发送到LoginServer服务器验证账号和密码,如果验证通过,LoginServer 服务器将发送请求给WorldServer,WorldSer
8、ver 同时生成一个 SessionKey,之后WorldServer 将此次登陆的 SessionKey 分别发给客户端、DBServer、WorldGameServer和其它GameServer。等客户端选择角色以后进入游戏过程,GameServer 和 WorldGameServer 验证SessionKey的合法性,如果和客户端携带的SessionKey不一致,就无法成功的获取到客户端选择的角色,也不能进入游戏。 (2)WorldServer服务器 WorldServer(WS) 主要负责在用户游戏过程中管理WorldGameServer、DBServer和各个GameServer。转
9、发他们和客户端之间的数据包。对数据包进行解析,过滤错误包,进行加解密,并不对游戏逻辑做任何处理。 (3)WorldGameServer服务器 WorldGameServer(WGS)主要负责全局性的游戏逻辑处理。MMORPG 中一般会有帮会系统、家族系统、排行系统等全局性的逻辑系统。这些系统不但是全局性的,而且是和地图相关的,因此单独设计一个服务器来处理。 (4)GameServer服务器 GameServer(GS)服务器主要功能是处理游戏逻辑。MMORPG有庞大背景,丰富的色彩效果,激烈的对抗阵营,完备的技能体系和装备。目前,MMORPG 主要包括声望系统、宠物系统、战斗系统、摆摊系统、任
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 性能 大型 在线 角色扮演 游戏 服务器 架构 设计