竹笋

首页 » 问答 » 灌水 » 科学计算储存一个完整的Minecraft
TUhjnbcbe - 2024/8/25 10:14:00

科学计算:储存一个完整的Minecraft地图,究竟需要多大的硬盘?

实验:加载区块!

区块,实际上是《我的世界》一个地图的生成单位,你要明白的是,mc不是以单个方块来生成的。而是以一个区块一个区块来进行生成的。而F3+G这个快捷键,可以帮助玩家看到区块的边界在哪里。

所以一个很客观,且现实的问题就是,想要让《我的世界》整个地图加载出来,你可能需要花费数数百年在Minecraft中四处走动来激活每一个区块。

显然这是一个人,一台电脑绝对无法完成的事情!尽管我们有这种实验的想法,地球上也未必有几个人能够做到!

《我的世界》数据储存的逻辑

首先,我们来谈一谈Minecraft中地图的储存逻辑。一个显而易见的事实就是,mc的地图往往会随着玩家的探索而不断增大,所以往往会出现玩的时间越久,这个存档就会越大的情况。

这是因为Minecraft的地图,会随着玩家的探索,加载的区块会逐渐增多。这加载的区块信息就被会储存在硬盘上。当玩家远离这个区块,它会被卸载;当你靠近,它又会被调用。所以你会发现,加载一个曾经来过的区块,比加载一个新的区块似乎耗时更短!也因此久而久之,老的区块储存在硬盘里,地图就会越变越大!

所以其实我们可以得出一个结论:mc的地图,是以16*16*的区块为单位进行储存的。

喜欢倒腾存档的玩家的都知道,当我们在第三方软件中加载一个地图时,往往会使用存档文件夹中的level.dat文件。而这是存储关于世界的全局信息,包括方块、玩家、生物等等。那么什么文件是用来储存区块信息的呢?

这就不得不提到mca文件,这是用来储存独立的区块信息。如果我们一个区块当作一个正方形,那么一个mca文件,就可以储存32*32=个区块。也就是说,一个mca文件的长度为32*16=格。

计算,《我的世界》究竟需要多大的硬盘?

现在,我们以JAVA版为例。老生常谈了,JAVA版的Minecraft的世界长度为万,所以单个世界边长,若区块全部加载就可以生成60,,/=,.5个mca文件。

换句话说,以面积来计算,整个《我的世界》地图会形成13,,,个文件。你没看错,也就是亿个mca文件!

已知:一个mca文件大约是KB(个区块),也就是说一个区块的文件大约是4KB多。所以mc整个地图全部加载的话,它的内存大约是00KB。换算一下就是MB=GB=TB=60PB!近乎万GB的硬盘!

60PB是个什么概念?已知目前世界上最大的单个固态硬盘,已经达到了TB。正常最为普及的家用电脑的固态盘至少也都达到了G-1T的标准。若以普通家用电脑为例,你需要整整6万-12万台电脑!

需要多少年,才能下载完地图?

既然Minecraft地图的大小,以及需要的电脑数量我们计算出来了。那么如此推演下去:高达60PB的数据,究竟需要多少年才能下载到电脑硬盘里?

毕竟,你要知道,即便是运行了近10年的2B2T服务器,它号称拥有世界上mc最大地图的服务器,其地图大小也不过刚好过了4TB!等等,十年,就加载了4TB的地图出来?

通常来说,如今电脑硬盘的读写速度80MB/秒-MB/秒之间,最理想的状态下,已经加载完成的区块当再次被调用时,其极值也不会超过这个数字。但新加载区块其平均速率据说为14MB/秒,我们如何按这个速度,全天24小时都在不间断的探索新区块。

12万台电脑,需要整整年!才能将整个Minecraft下载到硬盘上!恐怖如斯!

1
查看完整版本: 科学计算储存一个完整的Minecraft