游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3552|回复: 7

[讨论] 深入剖析MMORPG游戏服务器端的设计 [ZT]

[复制链接]

10

主题

275

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
发表于 2006-7-29 14:03:00 | 显示全部楼层 |阅读模式
MMORPG不同于其它的局域网的网络游戏,它是一个面向整个Internet的连接人数过万的网络游戏,因此他的服务器端设计则极为重要
  
  服务器的基本设置
  
  在大型网络游戏里,通常设计为C/S结构,客户端不再对数据进行逻辑处理,而只是一个收发装置,从玩家那里接受到操作信息,然后反馈给服务器,再由服务器进行处理后发回客户端,经客户端通过图形化处理,给玩家呈现出一个缤纷的游戏世界。


登陆服务器
  
  在这里也可以称之为连接服务器,网络游戏的客户端一般是连接到这里,然后再由该连接服务器根据不同的需要,把游戏消息转发给其它相应的服务器(逻辑和地图服务器)也因为它是客户端直接连接的对象,它同时也负担了验证客户身份的工作。
  
  地图服务器
  
  在这里也可以称之为连续事件服务器。在这个服务器里要处理的对象(玩家)所做的动作都是一个连续事件。例如玩家从A点移动到B点,这样一个动作,需要一定的时间进行移动,因此说移动是一个连续事件。
  
  逻辑服务器
  
  在这里可以称之为瞬时事件服务器,在这个服务器里,处理对象(玩家)所做的动作均可以在非常断时间内完成完成。例如玩家从商店购买一瓶药书,当玩家确认购买后,服务器先扣除玩家的游戏币,然后再把相应的药水瓶加入玩家的背包里。这2个操作对于服务器来说,只是2个数字的加减,计算完这两个数字的加减,这个事件就可以结束了。因此,我们可以说这个事件是一个瞬时事件
  
  服务器组的改进
  
  不过在实际应用的过程中,游戏服务器的结构要比上面所说的3种服务结构要复杂些,不过也都是在这3种最基本的服务器架构下进行扩充,扩充的主要是其它辅助功能。在实际应用里可能增加的2种服务器,数据库服务器,计费服务器,由逻辑服务器独立出来的聊天服务器。


数据库服务器
  
  数据库服务器其实就是专门利用一台服务器进行数据库的读写操作。这点特别是在大型的网络游戏里尤为重要。因为在大型网络游戏里,要处理玩家的数据量非常大,如果不利用专门的服务器进行处理,很有可能会拖累这个服务器组。
  
  计费服务器
  
  通常在商业的网络游戏里出现,用于记录玩家在线的时间,给收费提供依据,同时也是整个服务器组里最重要的部分,一旦出现问题,运营商就不用赚钱了。
  
  聊天服务器
  
  在游戏里的聊天功能是属于一种瞬时动作,理论上是放在逻辑服务器里进行处理。不过在大型网络游戏里,因为这个部分功能与游戏里的其它部分联系并不紧密,因此可以独立出来做一个功能服务器。
  
  服务器的集群设置
  
  在大型游戏的应用过程中,实际需要处理的玩家数量可能过万,一台普通的服务器是无法完成所要完成的工作,因此,在实际应用的时候,通常是由一组多台服务器共同完成一个功能。
  例如地图服务器,可以根据需要,把游戏里所有的地域进行划分,划分为N个区域,然后让这一个区域里发生的事件都用一个特定的服务器进行处理。这样做的目的是减少一个服务器所承担的计算量,把整个系统组成一个分布式的网络。
  不过这样做的同时会造成一个麻烦:当一位玩家从区域1,移动到区域2。这个时候,就必须先在服务器1里把玩家删除,然后再在区域2里加入玩家。同时需要由服务器1向服务器2转移玩家的数据信息(因为服务器组在工作的时候,玩家的信息只能保存在当前所在区域的服务器里),也就是说一旦玩家发生服务器间区域移动,服务器端就不可避免的造成数据通讯。因为这种移动并不是有规律的,玩家所在的服务器都有可能到达其它服务器。这样,如果服务器组里有N台地图服务器,那么,每个服务器都可能向其它N-1台服务器产生连接,总共就可能产生N×N个连接。如此数量连接如果只是使用普通的socket设计,就很有可能会给服务器通讯间的各种问题所困扰,为此,在商业网络游戏的服务器之间,通常都使用成熟的第三方的通讯中间件,如ACE,ICE等作为网络连接的传输层。

[em12]

135

主题

3447

帖子

3800

积分

论坛元老

总版主

Rank: 8Rank: 8

积分
3800
QQ
发表于 2006-7-29 15:19:00 | 显示全部楼层

Re:深入剖析MMORPG游戏服务器端的设计 [ZT]

还是比较虚
我以前在这里发过一个详细的,包含服务器配置的原理和通讯机制的原理,以及一些套结字、线程池的内容,很长,貌似连续贴了20多篇帖子,有兴趣的朋友可以去找下:)

49

主题

1388

帖子

1432

积分

金牌会员

Rank: 6Rank: 6

积分
1432
发表于 2006-7-29 16:11:00 | 显示全部楼层

Re:深入剖析MMORPG游戏服务器端的设计 [ZT]

yii起码给点关键字啊,你不知道自己发的帖很多吗^_^||

14

主题

166

帖子

171

积分

注册会员

Rank: 2

积分
171
发表于 2006-7-29 20:34:00 | 显示全部楼层

Re:深入剖析MMORPG游戏服务器端的设计 [ZT]

更加详细的内容,请到我的blog去看
http://blog.csdn.net/yahle
对应的游戏可以在gameres下载
http://www.gameres.com/bbs/showthread.asp?postid=169676

0

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2006-7-31 17:54:00 | 显示全部楼层

Re:深入剖析MMORPG游戏服务器端的设计 [ZT]

虚无缥缈! 说了等于没有说;(
只有漂浮的外壳,没有实质性的内容

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2006-7-31 20:05:00 | 显示全部楼层

Re:深入剖析MMORPG游戏服务器端的设计 [ZT]

国内无新技术
鉴定完毕。

附,能不能弄点新的架构技术来看看?

0

主题

1037

帖子

1037

积分

金牌会员

Rank: 6Rank: 6

积分
1037
发表于 2006-7-31 20:14:00 | 显示全部楼层

Re:深入剖析MMORPG游戏服务器端的设计 [ZT]

感觉好复杂

14

主题

166

帖子

171

积分

注册会员

Rank: 2

积分
171
发表于 2006-8-2 20:06:00 | 显示全部楼层

Re: Re:深入剖析MMORPG游戏服务器端的设计 [ZT]

lwevil: Re:深入剖析MMORPG游戏服务器端的设计 [ZT]

虚无缥缈! 说了等于没有说;(
只有漂浮的外壳,没有实质性的内容

2年前的东西了,现在回头觉得也是有点虚
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-5-17 12:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表