和《我的世界》聊科學:如果把mc區(qū)塊全部加載,需要6000萬G硬盤?
在這個世界上,相信一定不止我一個mc玩家思考過這個問題:如果把《我的世界》上的區(qū)塊全部都加載完,究竟需要多大的硬盤才能裝得下?今天,我們再次來科學探討一下。
實驗:加載區(qū)塊!

?
區(qū)塊,實際上是《我的世界》一個地圖的生成單位,你要明白的是,mc不是以單個方塊來生成的。而是以一個區(qū)塊一個區(qū)塊來進行生成的。而F3+G這個快捷鍵,可以幫助玩家看到區(qū)塊的邊界在哪里。
所以一個很客觀,且現(xiàn)實的問題就是,想要讓《我的世界》整個地圖加載出來,你可能需要花費數(shù)數(shù)百年在Minecraft中四處走動來激活每一個區(qū)塊。
?
顯然這是一個人,一臺電腦絕對無法完成的事情!盡管我們有這種實驗的想法,地球上也未必有幾個人能夠做到!
《我的世界》數(shù)據(jù)儲存的邏輯

?
首先,我們來談一談Minecraft中地圖的儲存邏輯。一個顯而易見的事實就是,mc的地圖往往會隨著玩家的探索而不斷增大,所以往往會出現(xiàn)玩的時間越久,這個存檔就會越大的情況。
這是因為Minecraft的地圖,會隨著玩家的探索,加載的區(qū)塊會逐漸增多。這加載的區(qū)塊信息就被會儲存在硬盤上。當玩家遠離這個區(qū)塊,它會被卸載;當你靠近,它又會被調(diào)用。所以你會發(fā)現(xiàn),加載一個曾經(jīng)來過的區(qū)塊,比加載一個新的區(qū)塊似乎耗時更短!也因此久而久之,老的區(qū)塊儲存在硬盤里,地圖就會越變越大!
所以其實我們可以得出一個結(jié)論:mc的地圖,是以16*16*256的區(qū)塊為單位進行儲存的。
喜歡倒騰存檔的玩家的都知道,當我們在第三方軟件中加載一個地圖時,往往會使用存檔文件夾中的level.dat文件。而這是存儲關(guān)于世界的全局信息,包括方塊、玩家、生物等等。那么什么文件是用來儲存區(qū)塊信息的呢?
?
這就不得不提到mca文件,這是用來儲存獨立的區(qū)塊信息。如果我們一個區(qū)塊當作一個正方形,那么一個mca文件,就可以儲存32*32=1024個區(qū)塊。
也就是說,一個mca文件的長度為32*16=512格。
計算,《我的世界》究竟需要多大的硬盤?
?
現(xiàn)在,我們以JAVA版為例。老生常談了,JAVA版的Minecraft的世界長度為6000萬,所以單個世界邊長,若區(qū)塊全部加載就可以生成60,000,000/512=117,187.5個mca文件。
換句話說,以面積來計算,整個《我的世界》地圖會形成13,732,910,156個文件。你沒看錯,也就是137億個mca文件!
已知:一個mca文件大約是4400KB(1024個區(qū)塊),也就是說一個區(qū)塊的文件大約是4KB多。所以mc整個地圖全部加載的話,它的內(nèi)存大約是60,424,804,686,400KB。
換算一下就是60424804686MB=60424805GB=60425TB=60PB!近乎6000萬GB的硬盤!
?
60PB是個什么概念?已知目前世界上最大的單個固態(tài)硬盤,已經(jīng)達到了100TB。正常最為普及的家用電腦的固態(tài)盤至少也都達到了500G-1T的標準。
若以普通家用電腦為例,你需要整整6萬-12萬臺電腦!
需要多少年,才能下載完地圖?
既然Minecraft地圖的大小,以及需要的電腦數(shù)量我們計算出來了。那么如此推演下去:高達60PB的數(shù)據(jù),究竟需要多少年才能下載到電腦硬盤里?
?
畢竟,你要知道,即便是運行了近10年的2B2T服務器,它號稱擁有世界上mc最大地圖的服務器,其地圖大小也不過剛好過了4TB!等等,十年,就加載了4TB的地圖出來?
通常來說,如今電腦硬盤的讀寫速度80MB/秒 - 200MB/秒之間,最理想的狀態(tài)下,已經(jīng)加載完成的區(qū)塊當再次被調(diào)用時,其極值也不會超過這個數(shù)字。但新加載區(qū)塊其平均速率據(jù)說為14MB/秒,我們?nèi)绾伟催@個速度,全天24小時都在不間斷的探索新區(qū)塊。

?
12萬臺電腦,需要整整137年!才能將整個Minecraft下載到硬盤上!
恐怖如斯!