聊聊你不知道的MC(聊聊你不知道的世界之最)

小编:芯水 更新时间:2022-09-01

《我的世界》在不同群体眼中,都是一种不同的存在。所以今天,我叫Minecraft就带领大家看一看,MC在以编程的角度来看时,那个在程序员眼中的,不一样的MC。程序员眼里的MC,和我们有什么不一样?聊聊你不知道的MC。

编程世界里的Minecraft,究竟是一种怎样的存在呢?


聊聊你不知道的MC(聊聊你不知道的世界之最)

来自一位Modder:你知道《我的世界》为什么会有这么多的BUG么?因为早期,也就是2009年的时候,Notch决心开发Minecraft的时候,只是计划作为一个小项目来开发,并没有预料到会火到这个程度。而且最初是Notch一个人在制作,所以在底层代码的逻辑构建上,并不是多么的宏观,甚至是混乱。而后续的更新一直是在底层代码的基础上来构建。假设一下,在十年前的汽车发动机上一直修改,改到现在。这个发动机会不会出毛病呢?

聊聊你不知道的MC(聊聊你不知道的世界之最)

开发前瞻性不足:也正是由于当初Notch的开发前瞻性不足,导致《我的世界》从根本上,缺乏一些漂亮的逻辑代码架构。所以现在Mojang在开发的时候,我们经常会看到一些字眼。例如重写光照系统,重写水源光影,重写战斗系统等等,实际就是对底层代码的重写。当然,其实也不是完全的重写。依旧要遵循这Notch留下的代码规则来改。

聊聊你不知道的MC(聊聊你不知道的世界之最)

MC的地图生成算法:简单来说,《我的世界》一个地图的生成,是分为很多个步骤的。第一个步骤,是生成基础地形,例如平原、山地这样一类的群系。第二个步骤,是河流、树木、洞穴等等。第三个步骤,村庄、要塞、遗迹等等。可以看出,重复多次的结构生成,会产生类似峡谷村庄,峡谷要塞等等这一类奇葩的BUG景象。虽然称之为特性,但从编程的角度,这可能不是什么完美的编码。

聊聊你不知道的MC(聊聊你不知道的世界之最)

随机数缺陷造就了特性之美:Minecraft的代码中,大量的运用随机数。这也带动了整个《我的世界》进度的展开。例如随机的区块、随机的生物生成、随机的天气、随机的僵尸围城。随机事件带动情节发展,固然是MC的特色,但因为JAVA随机数的局限性,也同样会出现BUG。就例如种子107038380838084和164311266871034,这两个种子因为随机数的BUG,而导致地形大量的无限循环和重复。

聊聊你不知道的MC(聊聊你不知道的世界之最)

最后,从编程的角度来说说《我的世界》流畅性的问题。你是否发现,几乎所有的低端设备,包括电脑,或者是安卓、等游戏主机设备。运行Minecraft的时候,都是极为流畅的。而王者一类的游戏就不行。其实最根本的原因不是MC的优化多么的好,而是Minecraft真的太流行了,几乎所有的设备GPU,也就是图形处理,都会针对MC做专门的优化。这就是MC在游戏界的地位!

聊聊你不知道的MC(聊聊你不知道的世界之最)

所以,从这样的一个编程视角来看《我的世界》,虽然它缺陷很多,BUG很多。但无论缺陷也好,特性也罢,它们都造就了时下最火的Minecraft!

看完才知道差距!我们这群普通玩家,体验的是游戏性,而程序员们看到的是代码背后的故事。也许当真你弄懂了一切,再玩《我的世界》会失去原本的乐趣吧!