关于网络游戏服务器端的探讨(200分)

  • 主题发起人 主题发起人 战鹰
  • 开始时间 开始时间

战鹰

Unregistered / Unconfirmed
GUEST, unregistred user!
最近突然对网络游戏如“传奇”之类的服务器端软件产生了兴趣,不知道现在的这些游戏的
服务器端的程序用的是一些什么技术?
对于多个不同的连接是用多线程还是多进程?可以肯定的是用多线程占用的资源比较少,用
多进程占用的资源比较多,但是如果程序出了问题最多死掉几个客户,不会把整个服务器搞
当!
但是进程间和线程间是如何交换数据的呢?多个分布服务器是如何来实现数据交换的呢?服
务器群是如何实现负载的均衡的呢?
 
写了那么多,结果在提交时出错。伤心啊。。。。只好重写。
以下都是我猜想的,未经证实。

玩家第一次连接的服务器,这个服务器(我称为索引服务器)。完成玩家验证后,就根据需要和查询
服务器群列表来连接相关服务器。
在该服务器上安装防火墙和杀毒软件,阻挡外部攻击。
这样的方式好处多多。应该还有备份服务器把。。。所谓的双机热备份。
进程和线程无非是共享区,信号,锁以及消息队列和事件队列等。

多个服务器交换的数据不大,但交换程度相当频繁。这些数据只是玩家本地游戏运行时需要的数据。
所以很多游戏即便是56k的老猫,也可以玩。

服务器群可以根据用户需要以及游戏功能来划分,服务器一些硬件也起了相应功能。

说着说着,怎么感觉自己也可以弄个游戏来玩玩了。。。

 
你的这种方法可能会有问题,首先计费可能不准,特别是按时间计费的!另外可能会留下漏洞让人钻,
至于服务器之间的数据交换我觉得不一定会很少!特别是类似传奇之类的服务器,如果大量的玩家集中在
一个较狭小的区域里面那么要交换的数据就很多了!还有就是交换哪些数据的问题!
 
通过验证的就认为开始计时。退出时也计时。

数据交换的应该是本地游戏运行时需要的参数。不信,你可以在玩网络游戏时检查你的网卡灯
闪烁情况。
 
其实关键在于推出的时候,特别是需要实时计费的软件,因为如果只是在登录和退出的时候
计时那么如果,某些玩家登录后就不退出,等于是没有计时!几乎可以一直用下去!

而且从目前的情形看游戏通常是用户购买的点卡消费完了以后就停止服务,直至用户再次购
买点卡,对于用户的透支通常是不与追究的,就算要追究,这种在用户不知情的情况下造成
的透支,是不能追讨的!

我认为对于需要实时计费的系统需要有一个定期检查的过程,另外对于数据交换我认为不是
那么简单的运行数据交换!首先并不是所有的进程之间都需要进行交换因为一个用户的视野
是有限的,在其视野以外的玩家的数据是没有必要获得的!否则这个交换量是不是有点太大
了!其次数台服务器之间的数据交换我觉得学问就更大了,服务器之间的数据交换必须有专
用的进程(线程)来完成!并对数据进行处理以后才用于交换!
 
登陆以后就计时亚,为什么是登陆后就不退出,就没有计时?我并没有说是计算两者的差。
因为计时作用就是计费。卡内费用结束就停止服务,或者到还有多少money是提醒一下用户
保存游戏,去买新卡。

由于计算机引起的一些误差,如果程序严谨的话,这样的问题出现概率很小。大都是由于
硬件问题引起。

呵呵,用户数据交换,如果深入的话,涉及到服务器角色扮演,以及服务器之间不同自定义
协议和处理措施。

这应该视不同游戏要求来定位服务器角色,从而确定协议和处理措施。

 
接受答案了.
 
后退
顶部