【游戏世界】我的世界:一篇文章告诉你,为什么区块循环,钻石无限

在Minecraft这款游戏中 , 有“种子”这个说法 , 而它的存在也可以说是这个游戏的特色之一 , 毕竟一个其他游戏可不能随机生成世界 , 就算其他游戏也能做到游戏的随机性 , 但是那串名为种子的数字不是什么游戏都可以做到的 , 在MC中因为一点小问题导致的游戏出现的不过bug , 导致了有很多种子都崩坏了 。
【游戏世界】我的世界:一篇文章告诉你,为什么区块循环,钻石无限
文章图片
虽说种子被崩坏了 , 但是mojang发话了 , 什么bug?这叫特性 。 所以mojang对这款游戏众多特性拿捏得稳稳的 , 虽然它一直在刷新着我们对于MC的认知 , 但不就是个特性嘛 , MC玩家什么没有见过?
但是本期文章就是给大家所填个坑 , 毕竟挖出来的坑总是要填的 , 那么究竟MC发生了什么才导致种子的崩坏呢?
什么是种子
在此之前小黑先和大家说说什么是种子 , 在游戏准备生成的时候 , 就会见一个算法给调出来String.hashCode() , 而这个代码就是控制游戏中的种子生存的 , 它会在游戏中生成一个伪随机数的出现 , 那么就是这个值决定了一个世界是什么样子的 , 但因为伪随机数算法的性质 , 所以就导致了算法的数值(种子)是相同的 , 那么最后的结果也就是相同的 , 这就是种子的意义 , 我们就可以使用想同的种子来生成多个相同的世界 。
【游戏世界】我的世界:一篇文章告诉你,为什么区块循环,钻石无限
文章图片
大白话:意思就是1+1等于2 , 这是一份答案 , 数学界上数学问题很多 , 那么我们就可以在复制一份进行游玩 , 答案始终是在哪里的 , 我们只是那其中的一份答案进行抄袭而已 。
【游戏世界】我的世界:一篇文章告诉你,为什么区块循环,钻石无限】但是这会因为版本的不同 , 所以就导致种子使用不了 , 想当于人教版和苏教版是不一样的 , 所以种子也就不一样 。
崩溃种子的诞生
那么种子是什么我们理解了 , 那崩溃种子问题是出现在哪个环节导致的呢?
【游戏世界】我的世界:一篇文章告诉你,为什么区块循环,钻石无限
文章图片
而这就要用到下面的这个代码了 , 我们利用了String.hashCode()来控制的种子的生成 , 随机种子是什么已经确定了 , 但是生成世界的时候就出现问题了 。 这个还是Minecraft系统就会采取第二个代码来生成世界MapGenBase.java() , 而它就确定了该种子中的地形是否和这个种子能不能对上 。
【游戏世界】我的世界:一篇文章告诉你,为什么区块循环,钻石无限
文章图片
但是有部分种子在计算的时候 , 出现了返回值为零的问题而正常情况下为1 , 所以就导致了区块在进行数学计算的时候x的都是零 , 而不是一 。 那么这样做的后果就是在某一条X轴的区块上面的结果都是零 , 这就导致了我们所看见的重复局面 。
所以大家学废了吗“手动滑稽” 。
好啦 , 本期文章给大家讲述了一下种子的原理和崩坏种子是怎么来到 , 谢谢大家的支持 , 我们下篇文章再会 。
【游戏世界】我的世界:一篇文章告诉你,为什么区块循环,钻石无限
文章图片