峰哥博客

首页 » UC编辑部奇闻 » 和《我的世界》聊科学:如果把mc区块全部加载,需要6000万G硬盘?

和《我的世界》聊科学:如果把mc区块全部加载,需要6000万G硬盘?

在这个世界上,相信一定不止我一个mc玩家思考过这个问题:如果把《我的世界》上的区块全部都加载完,究竟需要多大的硬盘才能装得下?今天,我们再次来科学探讨一下。

实验:加载区块!

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

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

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

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

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

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

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

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

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

也就是说,一个mca文件的长度为32*16=512格。

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

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

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

已知:一个mca文件大约是4400KB(1024个区块),也就是说一个区块的文件大约是4KB多。所以mc整个地图全部加载的话,它的内存大约是60,424,804,686,400KB。

换算一下就是60424804686MB=60424805GB=60425TB=60PB!近乎6000万GB的硬盘!

60PB是个什么概念?已知目前世界上最大的单个固态硬盘,已经达到了100TB。正常最为普及的家用电脑的固态盘至少也都达到了500G-1T的标准。

若以普通家用电脑为例,你需要整整6万-12万台电脑!

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

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

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

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

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

恐怖如斯!



文章如无特别注明均为原创! 作者: F_Robot, 转载或复制请以 超链接形式 并注明出处 峰哥博客
原文地址《 和《我的世界》聊科学:如果把mc区块全部加载,需要6000万G硬盘?》发布于2020-10-5

分享到:
打赏&捐助 分享到QQ空间

评论

游客

  • 看不清楚?点图切换
切换注册/找回用户名密码

登录

Tips:登录后可以进入会员中心发布文章、评论等操作哦!

切换登录

注册