单一世界架构初探

前端之家收集整理的这篇文章主要介绍了单一世界架构初探前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如果说,还有什么最令我好奇的是,单一世界架构就是其中之一。我在网络上查了一些资料,但对单一世界真正建立,还是有很多问题需要解决。个人认为,这个架构将会是里程碑式的。我融合现有架构以及一些自己的思考,在下面将逐渐铺开。

我曾经看到过的,和单一世界相关的文章主要是云风的和一个可能是传奇架构的。已经实现的架构,一个是澳洲的《BigWorld》引擎,另外一个是《EVE》。EVE虽然宣称是单一世界,但他有个上限是1.3万。这就没啥意思了。因为网易据说购买了BigWorld引擎做天下贰,所以我感觉云风关于他的论述有一定的可信度,不过我没有直接接触过,这些都是二手资料,只能供自己参考。

不管怎么说,我感觉单一世界是很重要的课题,我凭自己的经验和思考来探讨这个议题。首先,必须对这个单一世界做一个严格概念上的界定,怎么样才算是单一世界呢?满足2个充要条件:1、所有的在线人员看到的都是同一连续的世界;2、在线人数的限制和机器的数量成正比,这个人数界定允许单一世界的人数无限扩展。界定出这样的世界才有意义。

现在的魔兽世界弄得全国沸沸扬扬的,而且也是一款最受人关注的巨作,我就拿他来解剖作案例。在魔兽世界有百万在线人数,于是我们就将他暂时评估为10M在线数,同时有10个区,N多服。每个服之间的货币和角色是无法自由流动的,而在单一世界中,就没有这个限制。当然,副本是不算在内的,副本可以算是另外一个世界,实现要比单一世界简单多了。现在我们探讨下,如果将魔兽世界的全部区和全部服整合在一个单一世界中,会有什么问题呢?

1、巨大的连接数,我们先限定在10M。不过这也不是单个机器能受得了,还带来巨多玩家信息。

2、海量的计算。由于海量的人在上面,所以海量的计算是显然的。

3、庞大的地图。想想看,如果所有的人都挤在荆棘谷或者风暴城会是怎么样的情景呢?显然会把路都堵死了。当然这个最不关我的事情了,真的把路堵死了,估计把开发商都笑咧嘴了。

4、虚拟世界和真实世界的不同。虚拟世界中在一起打怪的2个人甚至一个团队可能物理上分布在世界的N个角落。不同的延时也是很关键的事情。汗啊,比网络会议难度还猛啊。会是关键性问题么?

看到这些问题,我们可能一下子会蒙掉了,高难度啊。不过,我们还应该看到,在单一世界中,有一些天然得限制。

1、你所能看到的世界是局部的,或者说是在某种粒度上是局部的。可以这么理解,你一眼望去,从荆棘谷是看不到幽暗城里面发生了什么。即使从小地图上看,也是一种粗粒度的局部。可能会看到赞加沼泽的概况,却也看不到盘牙水库上面有没有鱼在游动。

2、世界也是局部的,在风暴城中打个饱嗝,决不会造成天空卫队某个哥们摔下坐骑,更不会有蝴蝶效应,即使有,也可以抹杀。而且,即使世界是连续,完全可以视为局部的连续。

单一世界的局部性原理是我们实现单一世界的一个核心原理,使得我们有可能根据这个原理构筑更大的世界。

原文链接:https://www.f2er.com/javaschema/287827.html

猜你在找的设计模式相关文章