<本站文本内容除另有声明外,转载时均必须注明出处。(详情…本站文本内容除另有声明外,转载时均必须注明出处。(详情…中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!Minecraft中文Wiki微博正在更新!或许有兴趣去看看Minecraft中文Wiki微博正在更新!或许有兴趣去看看想与其他用户进行编辑上的沟通?社区专页正是为此创建的。想与其他用户进行编辑上的沟通?社区专页正是为此创建的。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。需要管理员的协助?在管理员告示板留言也许可以帮到您。需要管理员的协助?在管理员告示板留言也许可以帮到您。>

種子(世界生成)

出自Minecraft Wiki
前往: 導覽搜尋

種子(Seed)是一個由一個或多個字符(包括正整數和負整數)組成的一個值,遊戲根據這個值創建每一個Minecraft世界。[1]

注意[編輯 | 編輯原始碼]

種子在不同平台上兼容,並且同一平台上的不同版本之間可能不兼容。

世界生成[編輯 | 編輯原始碼]

當遊戲準備生成一個世界時,遊戲會調用一個算法,生成一個偽隨機數,這個數決定了世界的樣子。但由於偽隨機算法的性質,若算法初始輸入的數值(種子)是相同的話,算出的最終結果是相同的。這就是種子的意義:使用相同的種子可以生成出多個相同的世界。

當世界生成算法更新(通常是加入新的生態域)後,相同的種子就不會生成相同的地形。這也是某些不同的遊戲版本中,相同的種子無法產生相同的地形的原因。

一個世界生成後,其種子便已經確定。預設情況下遊戲會自動選擇種子(使用系統時間)。但玩家也可以手動設定。使用相同的種子可以重複玩相同的世界,種子也可以用於與其他玩家分享世界。種子的設定可以用數字(包括負數)、字符等,非純數字種子會被自動轉換成純數字。

如果將舊版本的世界導入到新版本中,則新生成的區塊會基於新的種子,因此並不一定會與舊區塊吻合(這個現象在Java版Beta 1.81.7.2中非常常見)。被刪除的區塊會重新生成,但只要種子或生成算法其中一個有所不同,區塊就會不同。

必須注意的是種子其實只是輸入到偽隨機算法中的值,而不是世界真正的名字。根據某個種子生成的世界的特徵並不註定與種子的字面含義有關。例如,即使是使用一個生態域的名稱作為種子,生成的世界也並不會以此作為主要的生態域。

有問題的世界生成[編輯 | 編輯原始碼]

一個黑森林的不完全渲染。
該段落仍需完善。請您幫助我們擴充內容

有問題的世界生成是指區塊不能正確加載並導致某些區塊無法渲染,不過可能會在一段時間後、亦或使用F3+A來重載區塊而好起來。 某些種子可能由於Java的Math.random()函數會返回0,導致世界地形會在x或z軸上重複生成。(見#你知道嗎

查看種子[編輯 | 編輯原始碼]

要確定一個世界的種子,玩家需要執行指令/seed。‌‌[僅Java版]基岩版中,種子可於世界選項介面中查看。

技術細節[編輯 | 編輯原始碼]

Java版[編輯 | 編輯原始碼]

Java中的String.hashCode()函數用於將包含非數字字符的種子轉換成純數字。此函數輸出的數據類型限制了遊戲在使用非純數字種子生成世界的總數量(232,即4,294,967,296)。由Minecraft隨機生成的多人聯機世界的種子調用了nextLong()函數,可能只有248種。

基岩版[編輯 | 編輯原始碼]

基岩版中的種子,無論是使用數字還是字符串,都有總共232(4,294,967,296)種可能的世界。這個結論對於64位版本的Windows 10版同樣成立。這是由於基岩版使用了32位的梅森旋轉算法,只接受32位的種子。

原主機版[編輯 | 編輯原始碼]

原主機版主要遵循Java版種子的世界生成。

歷史[編輯 | 編輯原始碼]

Java版(Pre-classic)
rd-160052添加了一個簡單的世界生成器。
Java版(Classic)
0.0.12a世界生成器更新。
2009年8月25日展示了再次進行更新的世界生成器。
生成更多的懸崖。
Java版(Indev)
0.3120091223-2公布了等軸距級渲染的屏幕截圖。
20100106現在可以在生成世界時選擇島嶼、浮空島嶼、平坦或原始作為世界類型。
可以選擇正方形、長形或下深作為世界形狀。
可以選擇小、正常或大作為世界大小。
20100107下深浮空島嶼地圖現在有多層島嶼。
現在可以選擇世界主題,有正常和地獄。
20100111-1現在島嶼生成更多的沙。
20100113海洋現在生成無限的水。
20100122水現在可以自然生成於海平面上和浮空島嶼上。
減少洞穴被水淹沒的可能性。
Java版(Beta)
1.3允許玩家自定義地圖種子。
1.8.1除錯屏幕開始顯示當前世界的種子。
Java版
1.2.1伺服器將不再向客戶端發送種子。
1.3.112w18a由於單人遊戲的實現方式與多人聯機合併,世界的種子不再顯示在除錯屏幕上。
12w21a添加/seed指令,用於顯示當前世界的種子。
1.7.2世界生成算法發生改變,這意味着使用一個舊版本存檔,原先未加載的區塊將生成不同地形。

你知道嗎[編輯 | 編輯原始碼]

164311266871034旁觀者模式下的地下,可見洞穴重複生成。
  • 某些種子會在遊戲內部中返回0,[2]引起洞穴和其他結構的無限生成。[3]
    • 107038380838084種子會在第一次被調用時返回0,而164311266871034會在第二次被調用時返回0,導致一些結構分別在X和Z軸上循環生成。
      • 諸如Cubic Chunks mod 的Mod將採用前三個調用而不是前兩個調用來生成地形。這導致164311266871034在Y軸上無限地生成洞穴,240144965573432在Z軸上無限地生成洞穴。[4]
    • 這個特性是Java獨有的,因為基岩版沒有在第一次或第二次調用時返回0的種子(但是,257678572會在第6次調用時返回0)。[5]
    • 這個特性在原主機版也可以看到。
  • 只有種子的某些部分會被用於生成的世界上的特定特徵。通過將種子轉換為二進制並調整所需位,就可以生成具有重複洞穴系統和結構的多個不同世界。[6]
    • 例如種子發生器只使用種子的前48位來生成洞穴和惡地。
    • 裝飾結構也能通過這個方式控制生成。[7]
  • 在創建世界時輸入種子0將自動生成隨機種子。種子0仍然可以以「creashaks organzine」作為種子進入。[8]
    • 這是由於開發者決定的,因為許多遊戲當提供種子選項時,都會使用0作為「隨機」,「無限」或「不在乎」的標誌。
  • 基岩版中,輸入1位數的種子(從-9到9)也將生成隨機種子。解決方法是輸入「ddnqavb」,然後輸入「a」到「s」中的任何其他字母。例如,「ddnqavba」將生成種子「-9」。
  • Java版中,可以輸入「North Carolina」(不帶引號)來生成演示種子碼。

外部連結[編輯 | 編輯原始碼]

參考[編輯 | 編輯原始碼]