我的世界多世界模式?

卢扬准卢扬准最佳答案最佳答案

这个问题很有趣,首先我理解的Minecraft多世界是某个游戏服务器里有几个世界,或者说是几套数据(一个世界一套数据)。 但实际上,这个游戏可以支持无数个世界或者说数据的重复加载,只要它们之间互不干扰。 比如说我在某个服务器里建了座房子,几天后我又在这个服务器的另一个地方建了座房子,那么这两座房子不会互相干扰(当然如果我想让它们干扰的话也可以搞一下建筑学上的“轴线对称”设计使两座房屋的中轴线重合从而看起来像一座建筑的左右两边);再比如说我现在在某个服务器里创造了一个新世界并新建了数座城堡,而后我又在同一个服务器里的另一个新世界重造了这些建筑,这样这个世界就跟我最初的那个世界没了任何联系,我在这里面搞的破坏也不会影响到我在别的地方建立的版本。 这也就是所谓的“我的世界,我的地盘”。 但是这里存在一个问题——怎样确保“我的世界,我的地盘”呢?对于玩家来说很简单,我只要在离别的世界远一点的地方重新建城就好了,但是如果对于电脑而言这就不简单了,因为计算机处理数据是按照地址来处理的,而地址都是唯一的,一旦某块区域被我使用过一次,哪怕我只用了其中一块,这块区域的地址就被确定了,之后就算我换了世界,这块区域也会在原来世界的内存中继续存活,直到我清理原有的世界或者重启游戏,否则就会越积越多,最终导致我游戏崩溃。 所以多世界其实有一个限制——你同时只能玩一个世界且不能让这个世界的内存占用过大导致游戏崩溃。如果你想玩更多的世界就要清空当前世界或者重启游戏。 而如果你想同时玩多个相似的世界(比如全是沙漠世界或是全是地狱村庄世界)那就可以把每个世界都建在不同数据结构的世界里,这样就达到了你的目的。不过这种写法的问题在于当你进入其中一个世界时其他的世界会瞬间全部消失,所以你还得小心注意不要误杀了另一世界的你自己。 以上讨论的都是单机情况下的多世界,接下来我们谈谈网络情况下(就是服务器里)怎么实现多世界。在服务器里要使每一个玩家都有一个独立的存档,从而保证“我的世界,我的地盘”,这就需要服务器拥有极快的速度以及极多的内存,并且对每一个连接进来的客户端都要做记录,以便于在发生BUG的时候快速定位问题。 然后还有一个问题,就是在这样的环境里如何防止作弊?MC的作弊主要是通过输入指令实现的,而在同一个世界里不停地输入/teleport 0.0.123456789......这种命令会造成服务器的巨大负担,而且很容易让一些心怀叵测的玩家得逞。解决方法要么是禁止世界内输入命令(大多数服务器都会这样做,毕竟世界内输/load的漏洞曾经导致了大量非法物品注入)要么就是像《我的世界》主机版那样,用游戏自带的跨世界传输功能。当然还有其它的解决方法,但原理都是类似的。 总之,实现多世界并不容易,需要考虑很多问题。

我来回答
请发表正能量的言论,文明评论!