理由:基岩版實驗性玩法變動。
種子(Seed)是一個整數(包括正整數和負整數),遊戲根據這個整數建立相應的Minecraft世界。[1]
相容性
種子在不同平台上不相容,而同一平台上的不同版本之間可能相容。
Java版的種子在Alpha v1.2.0至Beta 1.7.3期間基本一致。Beta 1.8版本完全變更了世界生成;1.2因為加入了叢林而變更了陸地上生態域的分布;1.7.2再次重寫了世界生成;1.13變更了洞穴的生成,加入了新的水域生態域,以及調整了變種生態域和部分結構的位置;1.14加入了竹林生態域,同時變更了村莊和其他一些結構的位置;1.18加入了多種新的山地和洞穴生態域,同時完全變更了世界生成。上面未提及每次更新加入的新結構,但它們通常不會伴隨整個世界生成的大變更。
在基岩版中,Alpha 0.9.0是第一次徹底變更世界生成的更新。水域更新變更了海洋,村莊和掠奪變更了村莊等結構。1.18同樣加入了多種新的山地和洞穴生態域,同時完全變更了世界生成。
原主機版的種子更新大致和Java版的更新週期一致。
1.17及以前,某些特定種子(見下文)在Java版和基岩版中有著相似的生態域分布,但地形有所不同,結構生成也不一致。自1.18起,所有的基岩版種子將具有和Java版相似的地形和群系分布,但在生成的地物和結構上依然不同。
世界生成
當遊戲準備生成一個世界時,遊戲會調用一個算法,生成一個偽隨機數,這個數決定了世界的樣子。但由於偽隨機算法的性質,若算法初始輸入的數值(種子)是相同的話,算出的最終結果是相同的。這就是種子的意義:使用相同的種子可以生成出多個相同的世界。
當世界生成算法更新(通常是加入新的生態域)後,相同的種子就不會生成相同的地形。這也是某些不同的遊戲版本中,相同的種子無法產生相同的地形的原因。
一個世界生成後,其種子便已經確定。預設情況下遊戲會自動選擇種子(使用系統時間)。但玩家也可以手動設定。使用相同的種子可以重複玩相同的世界,種子也可以用於與其他玩家分享世界。種子的設定可以用數字(包括負數)、字元等,非純數字種子會被自動轉換成純數字。
如果將舊版本的世界匯入到新版本中,則新生成的區塊會基於新的種子,因此並不一定會與舊區塊吻合(這個現象在Java版Beta 1.8和1.7.2中非常常見)。被刪除的區塊會重新生成,但只要種子或生成算法其中一個有所不同,區塊就會不同。
必須注意的是種子其實只是輸入到偽隨機算法中的值,而不是世界真正的名字。根據某個種子生成的世界的特徵並不註定與種子的字面含義有關。例如,即使是使用一個生態域的名稱作為種子,生成的世界也並不會以此作為主要的生態域。
查看種子
想要確定一個世界的種子,在Java版中,玩家需要執行指令/seed。玩家也可以在重建世界的介面中找到種子,也可以用編輯世界介面中匯出的世界生成設定中找到它。
在基岩版中,種子可於世界選項介面中查看。也有一個種子選擇器,為玩家提供預設的種子,以在重生點附近生成具有特定特徵的地形。此外,在開發版中,畫面頂端會顯示這個世界的種子碼。
技術細節
Java版
如果種子包含非數字字元(除非是數字開頭的一個+或-)或超出了64位元整數的範圍(-9223372036854775808~9223372036854775807),那麼Java中的String.hashCode()函數會用來將其轉換為數字。由於輸出的資料類型為int,此函數將Minecraft能生成的種子數量限制為232(4,294,967,296)。為了達到完整的可能的世界數量(264,即18,446,744,073,709,551,616),必須輸入純數字種子或使用預設的種子碼。
基岩版
基岩版中的種子,無論是使用數字還是字串,都有總共232(4,294,967,296)種可能的世界。這個結論對於64位元版本的Windows 10版同樣成立。這是由於基岩版使用了32位元的梅森旋轉算法,只接受32位元的種子。
版本間重疊
-231(-2,147,483,648)至231-1(2,147,483,647)間的種子在Java版和基岩版會產生相同的地形和生態域分布,但結構和結構位置、洞穴、礦石分布和生物生成等並不相同。
種子0
在基岩版中,遊戲不接受-9至9的種子。String.hashCode()函數返回0的字串(如small skeleton),仍然可以得到「種子0」。要得到種子2,只需要將small skeleton的最後一個字元取為其ASCII值比n大2的字元,即p,於是可行的字串是small skeletop。最短的可用字串是ddnqavb後跟一個從a至s的字元。
怪異生成
使用某些特定的種子可以觀察到許多奇特的生成。
變更地形而不變更結構
種子只有一部分會用於生成世界內的特定結構。因此,透過將種子轉換為二進制序列然後變更特定位,可以做到多個世界有著相同的洞穴系統、地獄生態域和其他一些結構的分布。[3]
平行種子
在Java版1.17.1及此前的版本,將-7379792620528906219減去一個種子後得到的種子會有著和原種子除海洋群系外完全相同的生態域分布,但地形並不一致。
重複
164311266871034旁觀者模式下的地下,可見洞穴沿Z軸重複生成。
某些種子會在遊戲內部中返回0,[4]引起洞穴和其他結構的無限生成。[5]在Java版中,107038380838084種子會在第一次被調用時返回0,而164311266871034會在第二次被調用時返回0,導致洞穴、廢棄礦坑和水下峽谷等結構分別在X和Z軸上重複生成。[6]由於未知原因,4165936693698546884種子會在z軸-250至-500左右的地下生成無限循環洞穴。388513357548740種子會在Z軸上生成無限循環廢棄礦坑。[7]由於未知原因,水下洞穴和常規峽谷的生成加入了鹽,自Java版1.13後它們不在這個種子中受到影響。不過,如果上述兩個種子減去1,那麼水下洞穴和常規峽谷將會重複生成,但其他結構則不再重複。已有理論分析這些種子也會影響要塞中不同方塊類型的分布和惡地中陶土的圖案,但尚無切實證據證實。
其他一些地物也會受到影響,例如裝飾性結構。它們通常沿對角線生成。[8]
在基岩版中,種子289849025、1669320484和由ddnqavbj生成的0會沿對角線重複生成洞穴、峽谷和一些裝飾性地物。[9]1000686894和-1171867832的種子會導致在Z軸上無限生成廢棄礦坑。[10]
歷史
| Java版pre-Classic | |||||
|---|---|---|---|---|---|
| rd-131655 | 加入了一個簡單的世界生成器,會生成大小為256×64×256的雜亂地形。 | ||||
| rd-132211 | 變更了世界生成器,現在只會生成由草地和鵝卵石組成的平坦地形。 | ||||
| rd-20090515 | 地形不再是平坦的了,現在地形會有高低起伏。 | ||||
| 世界頂部為一層草地,下面有幾層泥土,底層為石頭。 | |||||
| rd-161348 | 懸崖生成得更頻繁了。 | ||||
| Java版Classic | |||||
| 0.0.3a | 現在地下會生成洞穴。 | ||||
| 0.0.12a | 世界生成器更新。 | ||||
| 2009年8月25日 | 展示了再次進行更新的世界生成器。 | ||||
| 現在會生成更多的懸崖。 | |||||
| Java版Indev | |||||
| 0.31 | 20091223-2 | 公布了等軸距級繪製的畫面截圖。 | |||
| 20100106 | 現在可以在生成世界時選擇島嶼、浮空島嶼、平坦或原始作為世界類型。 | ||||
| 可以選擇正方形、長形或下深作為世界形狀。 | |||||
| 可以選擇小、正常或大作為世界大小。 | |||||
| 20100107 | 下深浮空島嶼地圖現在有多層島嶼。 | ||||
| 現在可以選擇世界主題,有正常和地獄。 | |||||
| 20100110 | 現在島嶼生成更多的沙。 | ||||
| 20100113 | 海洋現在生成無限的水。 | ||||
| 20100122 | 水現在可以自然生成於海平面上和浮空島嶼上。 | ||||
| 減少洞穴被水淹沒的可能性。 | |||||
| Java版Infdev | |||||
| 20100227-1 | 對世界生成的地形改變:在舊版本上使用任何給定的種子現在會生成一個不同的世界。 | ||||
| 世界生成已大大簡化(去除了沙、團簇等),以使無限世界生成的實現更易於使用。 | |||||
| 20100227-2 | 紅磚金字塔的生成發生了變化——它們現在總是會到達頂部的一個點,而不是有時會被截斷,從而產生「磚方形截錐體」。 | ||||
| 20100313 | 海洋現在比以前大得多。 | ||||
| 20100320 | 重新引入了團簇,其作為單個方塊零星生成。 | ||||
| 重新實現了樹的生成。 | |||||
| 20100325 | 團簇生成變更為目前的類型。然而,團簇生成使用了浮點數,導致其在距離過大時生成失敗。 | ||||
| 加入了洞穴,會代替所有方塊生成而不只是地形方塊。 | |||||
| 20100327 | 對世界生成的地形改變:在舊版本上使用任何給定的種子現在會生成一個不同的世界。 | ||||
| 移除了洞穴。 | |||||
| 移除了花隨機斑塊。 | |||||
| 33,554,432處的Infdev石牆不再生成。相反,邊境之地將會生成在12,550,824。 | |||||
| 20100413 | 樹現在是大型的樹。 | ||||
| 沙和礫石現在會在世界中再次生成。 | |||||
| 20100420 | 對世界生成的地形改變:在舊版本上使用任何給定的種子現在會生成一個不同的世界。 | ||||
| 世界生成時會考慮更少地生成山脈。 | |||||
| 20100608 | 所有的樹現在都是小樹,大樹不再生成。 | ||||
| 20100611 | 對世界生成的地形改變:在舊版本上使用任何給定的種子現在會生成一個不同的世界。 | ||||
| 現在會生成大型島嶼。 | |||||
| 地形現在會生成得足夠高以至於達到世界高度限制,導致地形被截斷。 | |||||
| 獨石柱現在會生成。 | |||||
| 樹的生成量現在有所變化。 | |||||
| 20100616-1 | 對世界生成的地形改變:在舊版本上使用任何給定的種子現在會生成一個不同的世界。 | ||||
| 海洋中的地形生成現在是不同的。 | |||||
| 重新加入了洞穴。 | |||||
| 花和蘑菇的隨機斑塊現在會生成。 | |||||
| 湧泉現在會自然生成。 | |||||
| 熔岩現在會自然生成,具體生成方式未知。 | |||||
| Java版Alpha | |||||
| v1.2.0 | preview | 對世界生成的地形改變:在舊版本上使用任何給定的種子現在會生成一個不同的世界。 | |||
| Java版Beta | |||||
| 1.3 | 允許玩家自訂地圖種子。 | ||||
| 1.8.1 | 除錯畫面現在顯示目前世界的種子。 | ||||
| Java版 | |||||
| 1.2.1 | 伺服器將不再向用戶端發送種子。 | ||||
| 1.3.1 | 12w18a | 由於單人遊戲的實現方式與多人遊戲合併,世界的種子不再顯示在除錯畫面上。 | |||
| 12w21a | 加入了/seed指令,用於顯示目前世界的種子。 | ||||
| 1.7.2 | 世界生成算法發生改變,這意味著使用一個舊版本存檔,原先未載入的區塊將生成不同地形。 | ||||
| 1.13 | 18w06a | 重寫了世界生成系統(未變更地形),並且移除了自訂世界類型。 | |||
| 1.18 | exp1 | 重寫了世界生成系統。重製了洞穴和山地以及地形高度系統。移除了巨大化世界和大型生態域。 | |||
| exp2 | 重寫了世界生成系統(未變更地形)。 | ||||
| 21w41a | 更換了世界生成過程中所使用的隨機數生成器,導致地形與之前的版本不同。 | ||||
| 21w43a | 再次被完全變更,新生成的世界不與之前快照的一致。 | ||||
| 1.18.2 | 22w03a | 數字0的種子不再被遊戲解釋成48。 | |||
| 輸入的種子前後的任何空格現在都會被去掉。 | |||||
| 攜帶版Alpha | |||||
| 0.1.0 | 加入了種子。 | ||||
| 0.9.0 | build 1 | 變更了地形生成,這使得舊種子變得過時了。 | |||
| 基岩版 | |||||
| 1.18.0 | 1.18.0.20 | 重寫了世界生成系統。 | |||
| 1.18.0.22 | 更換了世界生成過程中所使用的隨機數生成器,導致地形與之前的版本不同。 | ||||
| 1.18.0.24 | 再次被完全變更,新生成的世界不與之前開發版的一致。 | ||||
| 基岩版(即將到來) | |||||
| 1.18.20 | 1.18.20.21 | 現在可以使用64位元種子建立世界,以同步Java版。 | |||
| 遊戲不再不支持數字-9至9的種子。 | |||||
你知道嗎
- 自Java版1.7.2至1.12.2的版本間,透過變更源代碼並將第6個genlayer的值
[需要更多資訊]從2變更為0,可以在Java版中得到原主機版的生態域生成,除了蘑菇地。
官方使用的種子
在Java版中,下面這些種子在某些時候曾被官方地圖和資源使用過:
- 演示模式的種子碼可以在完整版中輸入
North Carolina(對應數字為-343522682)得到。 - 主選單背景的種子碼如下:
- 自Beta 1.8 Pre-release至18w22c使用的種子是
2151901553968352745或8091867987493326313[11],需要Beta 1.6.6至Beta 1.7間的版本來生成。 - 1.13使用的種子是
1458140401,在18w22a取得。 - 1.14使用的種子是
2802867088795589976,在18w48a取得。 - 1.15使用的種子是
-4404205509303106230,在19w40a取得。 - 1.16使用的種子是
6006096527635909600,在20w13a取得。 - 1.18使用的種子是
2151901553968352745,在21w40a取得。
- 自Beta 1.8 Pre-release至18w22c使用的種子是
- 原始的pack.png圖像顯示的種子碼是
3257840388504953787,在Alpha v1.2.2生成。[12]此地形也可在Alpha v1.2.0至Beta 1.7.3間的版本生成,不過會有細微差別。 - Skull on Fire這幅畫的種子碼是
-6984854390176336655或-1044887956651363087,在Alpha v1.1.2_01或更早的版本生成。[13]
外部連結
- AMIDST Project:種子/世界瀏覽器(英文)
- Chunkbase Minecraft Apps:線上種子/世界瀏覽器(英文)
- Minecraft Seeds on Reddit:社群驅動的Minecraft種子庫(英文)
- Minecraft Seeds:由社群人員驅動的MC種子庫(英文)
- MineAtlas:種子/世界瀏覽器/查找器(英文)
- Minecraft Seed HQ:MC種子庫(英文)
- LookingForSeed:按分類查找Minecraft種子(英文)
- Minemap.org:Java版和Windows 10(基岩)版高清種子地圖(英文)
僅Java版
- Random Seed Reader:Java本地工具(英文)
- Seed Hunt:MC種子庫(英文)
- Minecraft Seeds Java Edition:1.16.4的新種子(英文)
- SeedCracker:猜測來自多人遊戲的種子(英文)
- Seeder:種子/世界瀏覽器和查找器(英文)
參考
- ↑ http://mojang.com/2011/02/23/a-short-demystification-of-the-map-seed/
- ↑ MCPE-44604
- ↑ https://www.minecraftforum.net/forums/minecraft-java-edition/seeds/2229720-can-two-different-seeds-produce-identical-worlds
- ↑ http://stackoverflow.com/questions/3065554/can-javas-random-function-be-zero
- ↑ MC-111378
- ↑ https://www.reddit.com/r/MCPE/comments/5i6sae/recursive_infinite_mineshaft_seeds_on_mcpe/
- ↑ https://www.mcbbs.net/thread-1218506-1-1.html
- ↑ https://www.youtube.com/watch?v=UtNXUMrSIxQ
- ↑ MCPE-95011
- ↑ MCPE-114472
- ↑ https://www.reddit.com/r/Minecraft/comments/hthrmk/big_news_we_have_found_the_seed_of_minecrafts/
- ↑ https://www.reddit.com/r/MinecraftAtHome/comments/iocx6f/packpng_seed_was_found_explanation_tutorial_and
- ↑ https://www.reddit.com/r/Minecraft/comments/iqg3ey/the_original_screenshot_seed_of_the_minecraft/
| 版本 | |||||||
|---|---|---|---|---|---|---|---|
| 開發週期 |
| ||||||
| 技術 |
| ||||||
| 多人遊戲 | |||||||
| 遊戲訂製 | |||||||
| 版本 |
| ||||||
|---|---|---|---|---|---|---|---|
| 開發 |
| ||||||
| 技術性 | |||||||
| 多人遊戲 | |||||||
| 特色功能 | |||||||