浅析MMORPG服务器架构
2009-03-01
随着计算网络的发展,异军突起的网络游戏成为中国网络产业中的先锋。角色扮演游戏(MMORPG)一直是网络游戏中的主流类型,其主要原因在于它拥有丰富的交互体验,特别是玩家之间的互动、角色扮演的特性在MMORPG游戏中最能得到丰富的表现。
MMORPG本身的游戏设计方面的特性决定了MMORPG 服务器的设计和实现的难度大、对服务器系统的要求高。这个难度又主要体现在服务器架构设计方面。一个游戏服务器架构的好坏,主要体现在以下几个方面:
1、稳定性。
提供游戏服务,是服务器系统确保用户体验的最基本要求。稳定性是用户体验的基石,稳定性不过关的话,其他一切都无从谈起。
2、效率。
服务器组的运行时效率主要体现在服务器系统的承载能力上。例如一组服务器可以同时容纳多少玩家而能保证游戏的流畅。
3、简单。
简单性主要体现在服务器组的部署、和维护方面。一般情况下,游戏每星期都会例行维护一次,而当服务器出问题时,也得停机维护。那么备份数据、更新、重启等工作的复杂程度直接影响到维护的时间。
4、可扩展性
服务器架构的可扩展性主要表现在两个方面,第一个方面是游戏功能的增加是否会引起服务器架构的改变。另一方面是在当前服务器压力增大的情况下是否能方便地对服务器组进行扩展,比如一个区的玩家从5000增加至1万,服务器组如何进行扩展。
5、负载均衡
同一组服务器下的每个服务器在负载上能平均分配,这样才能保证服务器效率的最大化,不会造成资源的浪费。
MMORPG大都采用的是C/S结构。为提高数据的安全性与系统的可扩充性,一般在客户端与服务器端之间增加一个中间层,用于对服务器数据的访问。因此有了三层及多层结构模式,将数据库访问分布在一个或多个中间层。客户程序与数据库的连接被中间层屏蔽,客户程序只能通过中间层间接地访问数据库。中间层可能运行在不同于客户机的其它机器上,经过合理的任务划分与物理部署后,可使得整个系统的工作负载更趋均衡,从而提高整个系统的运行效率。以下是两种我所熟知的服务器架构,也是现在比较流行的MMORPG服务器架构。
三层结构的服务器架构
1、总体结构层次:
图1 服务器层次结构1
最上层的数据库指游戏世界中的数据,包括玩家的注册信息、玩家重要的游戏信息(比如通宝、游戏点数等)。
中间层包括两方面的内容,一为网络服务,用户通过网站注册用户、查询游戏世界中的各项排名。二为游戏服务,玩家通过登陆游戏服务器进行游戏。
客户层主要是指游戏玩家、游戏客户端。
2、服务器架构实现: