首页 > 游戏 > 我的世界:4年前,mc史上最严重的bug泄露,13万个种子遭到破坏!

我的世界:4年前,mc史上最严重的bug泄露,13万个种子遭到破坏!

为什么如今整个Minecraft社区,都在说《我的世界》1.17会迎来“洞穴更新”?



​我们抛开投票不谈,一个你可能不知道的情况是:Minecraft的洞穴实际早已经破败不堪,4年前就被爆出一个严重的BUG,导致《我的世界》一共超过13万个种子的洞穴遭受到了严重的破坏!


01

这要从一个著名的BUG说起:MC-111378;



2016年的4月份,一位叫做Erik Martin的玩家提交了一个并不起眼的BUG报告,该报告的编号被命名为MC-111378,也就是第111378个被发现的BUG。当然,这对于《我的世界》来说,并不是什么大事,因为BUG对于mc来说真的是稀疏平常!

然而令人没想到的是!在随后的几天里,这个BUG迅速引起了包括Mojang在内,全世界玩家的广泛关注!因为人们惊讶地发现在Minecraft的地下出现了无数无限循环的地形结构!这种无限循环,囊括了洞穴、地牢、废弃矿井等等结构。只要处于循环的坐标轴上,无论什么结构都将被无限复制!

最奇怪的是,在Minecraft地面上完全正常,但是地下却完全的崩坏!

02

洞穴BUG是如何产生的?



这要从《我的世界》地形的诞生说起,Minecraft在世界生成之初,会有一个String.hashCode()的函数,它用来控制种子的生成。即当我们使用一个随机种子创建世界时,这个函数就会执行并随机在42.9亿颗种子里随机挑一个,用来诞生世界。

种子确定后,Minecraft便开始用第二个函数MapGenBase.java()来生成世界,例如洞穴、遗迹等等结构;关键问题就出现在了这第二步。

由于部分种子在函数计算中,出现了返回值为0的情况(正常应该为1),这导致每个区块在进行数学计算时都×0,于是某条X轴线上所有区块输出的结果全都是0,最终造成了无限重复的旷世奇观!

03

一颗“无限循环”种子引发的骚动:107038380838084



于是很快,SEED:107038380838084这颗地形生成的种子,迅速成为了《我的世界》最受欢迎的种子之一,无数的玩家前往驻足观看这罕见奇景!有矿洞无限重复的,有矿井无限重复的,也有地牢无限重复的。但凡坐落在这条返回值为“0”的坐标上,所有结构无一幸免!


后来人们发现还有一颗种子,SEED:164311266871034会在第二次调用时,让Y轴无限×0,单程Y轴上无限循环的奇景。于是人们开始认为,这两个种子是当今世界上最“独一无二”的奇观,也是仅有的两个罕见BUG种子。

(PS:1年前我在介绍这两个种子的时候,也是这么认为,还是太年轻啊!)

04

数学大神计算出:超13万颗种子受到影响!



但很快,一个JAVA界的数学大神,经过周密的数据计算,得出一个惊人的结论:《我的世界》并不是只有这两个种子会造成“无限重复”!

Ettanin表示,只要在一个确定是BUG的种子加上或者减去数字281474976710656,就会得到一个新的BUG种子。例如-174436595872572;388513357548740等等!并且宣称《我的世界》中一共有13万个这样的BUG种子!

换句话说,Minecraft当前的地下结构包括“洞穴”的生成方案,存在有13万个BUG。

所以可能很多《我的世界》玩家都在自己不知道的情况下,遇见了这样的一个BUG,但因为生存的关系,没法像旁观模式一样观察到这“无限重复”的地下世界。也许现在的你打开Minecraft,在出生点附近开启旁观,潜入地下。可能你当前的生存世界,就是一个BUG种子!


所以,基于此种极为“严重”的BUG,Mojang长达4年依旧没有修复MC-111378的情况下,你认为《我的世界》洞穴更新在1.17更新的概率有多大呢?

(PS:本文涉及JAVA函数的观点,因本人并非专业的JAVA程序员,在咨询了学习JAVA的朋友后也是听得云里雾里的,所以这里尽量用大家可以理解的方式阐述和解读。)


本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/yx/359822.html