游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4849|回复: 6

请大家看看我们的网络游戏服务器技术

[复制链接]

2

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2006-4-7 16:22:00 | 显示全部楼层 |阅读模式
完整版本的请下载这个文件:
http://www.ifunmp3.com/pr/server.doc
email:lijch@ppp.nn.gx.cn lijiangchun@yahoo.com

目前的网络游戏三大技术难题:
(A) 服务器的响应问题:如何使服务器在支持越来越多的人数的情况下提供最高的响应。
(B) 同步问题:如何在有限的网络响应情况下,实现快速实时类游戏,提供最完美的交互。
(C) 服务器分布式问题:如何在统一用户数据的情况下,利用分部式将各个分散的“世界”统一到一个“世界”中。
真正解决好以上三个问题,配合策划在设计上的突破,将使其他在至少两年内无法超越。







注意:我们的技术不是同一个游戏世界有很多个“副本”这样的形式,这就是一个游戏世界,所有玩家都能互相看的见,互相交互!

  系统由不同的游戏模块对应不同的服务器。服务器被分为怪物AI服务器,任务服务器,通讯系统服务器等多个逻辑模块,任意逻辑模块的工作都由特定的服务器来承担。当需要改变或更新某一功能时,只要暂时关闭该功能就可以,不影响玩家继续停留在游戏世界内。更高的AI似乎也是基于这一点,由于AI由专用服务器处理,可以承担高过普通30-100倍的负载(甚至更高,因为专用意味着高效率)
专职化意味着高效率。假设以前n台服务器,每台最多支持500人在线的话,那现在一个n个模块的服务器组组成的服务器,可以支持的最高在线人数应该远多于500n,模块化的优势就在这里,大公司也管理模式也类似。








服务器启动画面:


配置软件热插拔:
运行中更新了配置文件,服务器自动载入新的配置文件,无需停机维护:



关于“软件热更新”:在“软件热更新”的过程中完全不影响在线玩家的游戏过程。

0

主题

129

帖子

139

积分

注册会员

Rank: 2

积分
139
发表于 2006-4-7 19:19:00 | 显示全部楼层

Re:请大家看看我们的网络游戏服务器技术

如果没有过硬的技术数据支持,这样的普通水平的宣传基本上作用不大。现在的商家精明着呢,呵呵

5

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2006-5-29 15:40:00 | 显示全部楼层

Re:请大家看看我们的网络游戏服务器技术

RPG可以做么?

2

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2006-5-29 17:05:00 | 显示全部楼层

Re:请大家看看我们的网络游戏服务器技术

服务器就是支持RPG类型的

4

主题

124

帖子

144

积分

注册会员

Rank: 2

积分
144
发表于 2006-6-5 11:09:00 | 显示全部楼层

Re:请大家看看我们的网络游戏服务器技术

楼主你好,我是一线网络游戏公司的程序员。不过我不是

做网络的。

看了你们的模型。关于细分逻辑服务器这个想法肯定是好

的,也会得到很多益处。但是,并不是你们提出的所有说

法我们都能接受。有些我觉得你们没有说清楚,我们比较

糊涂,有些,我觉得概念有错误。

把主要的困惑罗列如下,希望促进探讨:

1。主服务器概念不明确

我想,如果逻辑模块分别置放在不同的服务器上,必然要

求有一个负责和客户端进行统一的数据同步的接入服务器

。从你们给出的图上来看,这个接入服务器似乎就是你们

所说的主服务器。而你们的描述,主服务器负责客户端接

入和数据转发,这跟我们的猜测相符,但为何还要处理游

戏逻辑呢?这我们比较困惑。

2。主服务器和主服务器之间的数据交互

主服务器和主服务器之间的数据交互是干什么的呢?虽然

服务器之间都是千兆的带宽,但是这个数据交互似乎没有

必要。

3。客户端智能连接,不中断服务
你们的图上,每个客户端连接两个服务器,我想你们肯定

不会并行传输两套数据。多半是指一个服务器挂了以后,

会智能选择另一个服务器了。这的确是好的。但只是减少

了连接服务器当机后用户手动选择其他服务器的麻烦,好

处不是很明显。传统模型也是可以做到这一点的。

4。你们列出了很多怪物ai服务器。但是其他逻辑处理的

服务器在哪里呢?我想,一个主服务器肯定要跟多个逻辑

处理服务器连接。并有大量的数据交互。你们的图上,一

个主服务器只跟一个怪物ai服务器连接,似乎不妥。如果

说,一个主服务器跟某个不直接连通的怪物ai服务器之间

要有数据交互的时候,通过与那个直接连通的主服务器中

转的话,似乎很费事。

5。以上都是一些小问题,无关大局的。真正的问题在于

,如果把逻辑分散到多个服务器,服务器之间的交互可能

是非常频繁的。比如怪物ai不可避免会请求地图数据,如

果怪物ai和地图分在两个服务器上,是不可能的。必定只

能合在一起。所以魔兽世界也是一个服务器负责一个区域

。我的意思是,所有的逻辑都划分开,程序非常难写,效

率也因为网络交互而变得非常低。不知道你们怎么理解这

个问题。顺便说一声,网络游戏的任务系统本身不是一个

很大的计算,单独开来似乎很不合算。

6。服务器安装、配置和维护成本

我们觉得传统模型在安装配置和维护方面的成本是很低的

。因为只要搞定一份,其他都可以复制这个正确的就可以

了。单独安装系统,分别安装和升级更新软件很难吗?现

在网络维护人员的工资并不高的。而你们说的免调试,热

更新等技术,如果真能实现我觉得很厉害,但是恐怕事情

不会那么简单。至少你们配置一组世界的时候需要网络维

护人员了解你们的概念模型,这不是普通水平的操作员能

轻易明白的。

以上列举了一些问题希望共同探讨。

我们对于你们逻辑划分到各服务器的想法表示赞同,也认

为可以在很多方面享受到好处。魔兽世界划分区域的做法

,也应证了细分必然带来效益的思路。但你们现在给出的

东西还过于笼统和封闭,恐怕经不起实战的考验。特别是

,采用你们逻辑细分的方式来开发网游,需要对代码质量

有非常高的要求,这恰恰是最大的成本。

2

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2006-6-13 11:02:00 | 显示全部楼层

Re:请大家看看我们的网络游戏服务器技术

谢谢你的问题,我们的回答如下:
1。主服务器概念不明确的问题:
   传统的游戏服务器结构是划分“接入服务器”(负责客户端接入)“主服务器(负责游戏逻辑等)”的,这主要是由于当时的网络IO模型是基于多线程IO的,一个客户端需要产生一个接入线程,多个客户端会产生大量的线程,线程之间的切换会浪费大量的CPU时间。所以的把这块划分出来。
    现在的技术是基于“单”线程的,也就是说所有的连接都是用的一个线程,无需浪费CPU时间来切换,所以没必要再作这样的划分了。

2。主服务器和主服务器之间的数据交互的问题:
  客户A登录的是服务器A,客户B登录的是服务器B, A要和B交互,也就是AB是同一个世界的人,要互相看的见,互相能够PK!,当然需要服务器A和B之间有数据交换了!
3。客户端智能连接,不中断服务的问题:
    传统模型的服务器崩溃后,由于是单服务器结构,是不能实现实效保护的。我们的是即便崩溃了一部分服务器,整个游戏服务还是能够照常进行,也就是客户基本不会感觉到有影响。
4。你们列出了很多怪物ai服务器。但是其他逻辑处理的

   整个网络的所有服务器都是能够高效互相交互的!无需中转等操作。


5。真正的问题在于,如果把逻辑分散到多个服务器,服务器之间的交互可能

是非常频繁的:
     
    是的,这是整个系统设计的难点!但我们已经初步解决了这个问题,但还等实战中考验了。
   
   
6。服务器安装、配置和维护成本
       如果你有几百台服务器需要更新,配置,你看这个工作量?  
游戏服务器是需要24小时不中断运行的,但是发现了BUG,想更新怎么办?策划想在游戏中随时调整配置,但又不想停机重新运行?   
      我们领先的“热更新”“热配置”技术基本解决了这个问题。可以随时更新配置,软件运行中可以不停机进行软件部件的更新。   
     

4

主题

124

帖子

144

积分

注册会员

Rank: 2

积分
144
发表于 2006-6-23 09:57:00 | 显示全部楼层

Re:请大家看看我们的网络游戏服务器技术

回答些实质性的问题啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-4-23 01:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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