本站文本内容除另有声明外,均在知识共享 署名-非商业性使用-相同方式共享 3.0 协议下提供。(详细信息…

種子(世界生成)

從 Minecraft Wiki
跳到: 導覽搜尋
此頁面的部分內容由於太久沒更新而已過期。
你可以幫助我們來更新此頁面
調試螢幕中圖表之上顯示當前世界的種子。

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

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

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

而當世界生成算法更新後,相同的種子也不會生成相同的地形。

這就解釋了為什麼相同的種子可以在相同遊戲版本里創造出相同的世界,而不同的種子、不同的遊戲版本都不可以。

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

如果舊版本的世界導入到新版本中,則新的區塊會給於新的種子,因此並不一定會與舊區塊吻合(這種現象在冒險元素更新後廣泛出現)。被刪除的區塊會重新生成,但只要種子或生成算法其中一個有所不同,區塊就會不同。

必須注意的是種子其實只是輸入到偽隨機算法中的值,而不是世界真正的名字。生成一個世界不需要一個手動確定的種子。例如,若使用一個生物群系的名稱(如"swamp",沼澤)作為種子,生成的世界並不會以沼澤作為主要的生物群系。

種子提取[編輯 | 編輯原始碼]

要確定一個世界的種子,載入這個世界並查看調試螢幕

在快照 12w21a 以及1.3正式版以後,調試螢幕不再會顯示種子。玩家需要打開控制台並輸入命令/seed

目前除了使用外部指令和直接讀取地圖文件外,多人模式中的客戶端無法查看服務器世界的種子。

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

Java 中的String.hashCode() 函數用於將包含非數字字符的種子轉換成純數字。此函數輸出的數據類型限制了遊戲在使用非純數字種子生成世界的總數量(約40億)。直接使用純數字作為種子則可以使遊戲發揮出最大的生成世界數量的能力(約1800億億)。

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

Pre-classic
rd-160052 簡單的世界生成器。
Classic
0.0.12a 世界生成器更新。
0.24_06 世界生成器又更新。
生成更多的懸崖。
Indev
2009年12月25日 已添加等軸距級渲染螢幕截圖。
2010年1月6日 現在可以在生成世界時選擇島,浮動,平面或原始作為級別類型。
可以選擇正方形,長形或高形作為水平形狀。
可以選擇小,正常或大作為世界級別大小。
2010年1月7日 深度浮動地圖現在有島嶼層。
現在可以選擇級別主題,有正常和地獄。
2010年1月11日 現在島嶼生成更多的沙。
2010年1月13日 海洋現在生成無限的水。
2010年1月22日 水現在生成在海平面上和浮島上。
減少洞穴被水淹沒的可能性。
Beta
1.3 允許玩家自定義地圖種子。
1.8.1 調試螢幕開始顯示當前世界的種子。
正式版本
1.2.1 服務器將不再向客戶端發送種子。
1.3.1 12w18a 由於防止進入多人遊戲的玩家在單人遊戲創造出同樣的世界,世界的種子不再顯示在調試螢幕上。
12w21a 添加/seed,用於顯示當前世界的種子。
1.7.2 世界生成算法發生改變,這意味着使用一個舊版本存檔,原先未加載的區塊將生成不同地形。

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

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

  1. http://mojang.com/2011/02/23/a-short-demystification-of-the-map-seed/