老头子耕种的土地 只有果实没有花朵

股票不知道你拥有它。当然,它也不在乎。

我们仨 左手剑 思无虑 岁月诗 扯股淡 他山玉 无主题
« 上一篇: 投资与投机 下一篇: 从来就没有过散户市场 »
老头子 @ 2007-05-16 11:31

        玩MMORPG游戏,最重要的一点,是要记住,这个世界不是只有你一个人在玩(在生活中更加不可忘记这一点)。在写MMORPG游戏的时候,同样重要的,也是这一点。
        所以我的教程,不象通常的游戏教程从界面的渲染开始,而是从网络开始。

游戏世界
        游戏是对真实世界的模拟,所以,在MMORPG游戏(每次写这么多字母也累,以后简称网游)中,最基本的概念是世界。所有的动态实体,包括玩家角色(Player Character,简称PC)和非玩家角色(Non-Player Character),以及静态实体,包括地图,场景道具(建筑,树木,河流等等),装备,物品等等,都是在游戏世界中生存,死亡以及存在的。
        世界在物理上,表现为空间。对应2D和3D游戏,世界可以表现为二维和三维空间。空间可以是连续的巨大的空间,但是,随着空间增大,空间中的实体也会显著地增加,从而增加管理该空间的进程负载(CPU和内存)。为了处理范围更广阔的空间,同时也为了提高资源加载的效率,空间通常被切分成若干空间的集合,这样不同空间可能被不同的服务器进程所管理。这些空间的加总,形成了完整的游戏世界。由于有个空间的切分,不同空间之间的边界处理,就成为一个问题。
        关于空间边界的处理,一般来讲,有两种方法处理:
        一种处理办法叫无缝连接。在这种状态下,虽然空间被切分,但是对于玩家来说,感觉不到空间的边界。他在探索世界的过程之中,往往可能从一个空间行走到另一个空间,但是却不会感觉到空间的明显切换(从画面上来讲,就是不会感觉到地图背景的显著改变)。这种空间处理和真实世界是一致的,世界表现为连续的笛卡尔空间或者无限延展的平面地表(在2D空间中),当然是自然和流畅的。但是,这种自然流畅的效果,是以技术上的复杂性为代价的。举例来说,当玩家走到空间边界的时候,他的视野范围内可能出现另一个空间中的实体,而这些实体是被另外一个空间服务器所管理,在这个时候,就会涉及到空间状态同步的问题,这就自然地增加了服务器处理的复杂性。WOW中的空间,就是无缝处理的。所以说人家牛X(当然,不仅在这一个地方牛X了),那是有道理的。
        另外一种处理办法就比较简单,它不做空间之中的无缝处理。这就要引入空间的切换。空间切换的方式很多,比如在空间的边界处设置一个门,门里门外的空间被隔离,要从一个空间进入另一个空间只能通过穿越这个门才能实现。当然,门的表现形式可以很丰富,不一定要是个门的样子。可以是一团火光,一片水域,石头上的一个开关,或者必须被打败的一个怪物,等等。另一种常见的方式,是设置一些传送使者,他们是一些NPC。玩家可以通过和他们对话,或者交付一定数量的银子,让他们来将你传送到另一个空间。就好像穿越时光隧道一样。在这种情况下,不同空间之中的实体是互相不可见的,不存在状态交互的问题。这使得服务器的技术处理变得相对比较简单。

空间实例
        世界的另外一个问题是它的容量。或者说,当世界被切换成空间之后,每个空间的容量。无论服务器多么先进,它所管理的空间中所能容纳的动态和静态实体都有一个上限。从游戏运营商的角度来说,当然是玩家越多越好,场景越丰富,空间越热闹越好。但是,除了硬件处理的限制之外,在一个空间中实体过多,也会使玩家感到厌倦(作为一个中国人,大家的此种体验应该非常深刻吧),所以,这时候,必须将玩家以及其它场景实体打散。
        上面所说的空间切分,自然就是一种负载和玩家分流的手段。但是,在完成切分的空间中,仍然会面临过于拥挤的状况。比如说一个城市,构成一个空间,有可能所有玩家都挤到那个城市里面去了,这同样也会造成服务器的崩溃。为了解决这个问题,通常的做法是使用同一个物理空间的多份实例来处理。
        比如说,同一个城市空间,可以在很多服务进程中形成相应的空间实例,每个实例中的场景是一致的,NPC的生成规则也趋于一致(但可以不完全一致),就是说进入这个实例的玩家,所看到的东西基本是一致的。但是,处于不同空间实例的玩家,他们是相互看不见的,也不存在状态交互的问题。通过这种手段,就进一步地分流了企图进入同一物理空间的玩家。
        所以,我们经常会看到一个网络游戏在登陆的时候,会让你选择片区和其中的服务器,通过这种方式来完成游戏世界的分割,从而达到对玩家的分流。同时,也使得在同时在线的玩家数目急剧上升的时候,可以通过水平扩容来无限地增加整个游戏世界的容量。

综上
        服务器的物理分布,可以采用跨地域分布,同一地域分割成不同服务器群组,同一服务器群组分割成不同空间加以管理的层级综合分布策略。如何组合使用,取决于具体的运营策略。在这里就不多说了。

那么
        关于游戏世界,或者空间,仅剩的一个问题,就是副本了。也就是我们在WOW中所说的地下城。留待下回。

曾经的这一天...


评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定

捐款赞助
同道中人
· 管理通道
· 先生不死
· 名将左权
· 追我魂魄
· 读库
· 舵手
· KOKO
· 快乐朵朵
· 比客Allen
· samuel
站内搜索

订阅 RSS

0112571

歪酷博客