如果把Minecraft地图中,所有的区块都加载出来,那么这个存档将会有多大?
当我突然冒出这个想法,并决定去《我的世界》找出答案的时候。才发现自己给自己挖了一个巨大的坑!
下面是一个绞尽脑汁“填坑”的计算过程。
首先,全部保持区块加载,这可能实现么?
对于大神来说,没有什么不可能的!2017年2月份,这是一个值得纪念的日子,神仙级玩家gnembon发现了“我的世界”区块永久加载器!
原版mc区块加载原理;
《我的世界》是由无数个16*16*256为单位的区块组成,玩家一直向前,则所处的区块被加载,身后经过的区块被卸载。这么一个持续加载和卸载的过程。
区块永久加载器;
就是一种利用各种红石器件,人为的加载无法被玩家加载到的遥远区块。并且能够保持该区块正常、持续的运作。而不需要玩家近距离加载的一个神仙技术。
然而有一个难点就是,系统会在每45秒检测该区块是否是被玩家所加载,若否,则《我的世界》强制卸载。所以大多数的红石设备(例:伪和平开关)都无法做到永久加载。
像矢量珍珠炮,实际上即使用了“区块永久加载器”,才能达到如此长距离的瞬间百万格的瞬移和迁跃。然而,这只是一个方向上的永久加载。
若你有足够强大电脑设备。同时加载地图上所有区块,甚至是主世界、下界、末地三个维度同时进行“永久加载”。当然这在“理论”上是可以用“区块永久加载器”来实现!
只是你有那么大的硬盘么?
问题二:一个区块究竟有多大?
想要算出全部区块加载后有多大,首先我们得算一算《我的世界》只有一个区块的存档有多大。
有一个地图叫做“1_Chunk_Survival”,这是一个只有1个区块,也就是16*16*256大小的活动空间,这个存档的大小为4M。
也就是说,Minecraft一个区块的大小,应该在4M左右。
那么“我的世界”一共有多少个区块呢?
在世界界限章节中,史蒂夫正常可达到的极限界限为X/Z ±30,000,000;虽然在此只有一道肉眼可见的屏障阻隔,但那不是界限。当然真正的世界极限在X/Z ±30,000,192;但这里大多都是假区块。
所以也就是说MC一张地图的长度为60,000,000;所以一个区块的面积是256㎡。
下面开始一个小学生都会的除法:
经过简单计算可得,在《我的世界》一张地图中,包含了14062500000000 个区块。每个区块可以诞生7.46×10的244700次方种不同的可能。
也就是14万亿多个区块!
接近真相:区块全部加载,这个地图究竟有多大?
按一个区块是4MB来计算,那若加载完全部区块的话,又一个简单的乘法,这个数据达到了56250000000000MB,按照1T=1024G,1G=1024M来进行简单的转换,你会得出一个可能你这辈子都没想到过的内存数字!
53644180T大小的一个存档!你没看错,足足“五千多万个T”的大小!
据说,目前世界记录的保持着,全球最大的一个固态硬盘已经突破到了100T的境界,那若Minecraft所有区块加载后,究竟需要多少个这样的硬盘呢?
最后我们来整理下数据:
Minecraft地区全部加载的14万亿个区块,至少需要54万个100T的硬盘来容纳!
这个数据算出来,相信没人不会觉得惊讶!
当然上面的计算固然存在不科学的因素,毕竟谁也不能保证,Minecraft单个区块就一定是4M的大小。(因为这个大小会受到不同群系的方块数量有所影响)而且区块的探索也并非是一个简单的大小线性叠加的过程。
但是,单纯主世界所有区块同时被加载,这绝对是一个以百万为单位个T的存档。如果下界、末地、主世界三个维度同时加载,那这个内存,还要乘以3的恐怖数字
也就是162万个100T的内存!