解釋一下我昨天找到Hololive EN Minecraft 伺服器種子碼的方法好了
首先是種子碼
種子碼是一個亂數種子
用同樣的種子碼生成出來的兩個世界幾乎都會一模一樣
Minecraft種子碼有64bits (2^64種可能性)
要搜尋全部2^64種組合幾乎是不可能的
就算你有很好的電腦也會花上很長一段時間
以往的方法是用很多slime chunk的座標去搜尋
後來的新方法是用終界黑曜石柱的位置和高度去排除掉一定數量的種子碼
然後再用六個左右的遺跡座標去找
但是這兩種方法都需要花很多小時進行運算
而且需要輸入不少資料
要從Youtube上的影片找出所需的資料十分困難
目前的新方法是用地牢(Dungeon)去找種子碼
生成地牢用的是Structure Seed
和World Seed不同只有2^48種可能性
每8個區塊(這裡用的區塊和一般說的Chunk有點不太一樣)會有一個Structure Seed
遊戲會在每個區塊裡嘗試生成地牢
遊戲會在區塊裡隨機選一個x z 座標(0~15)
然後在0~255之間選一個y座標(高度)
然後決定要地牢的兩邊長各要是7還是9
最後每一個地板有1/4的機率會是鵝卵石(否則會是長青苔的鵝卵石)
但地牢不是在每個區塊都會生成
首先生成的地牢的天花板和地板的位置原本要都是實體方塊
然後和生怪箱高度一樣的那一圈邊緣要有1~5隔空氣方塊
(確保地牢會生成在洞穴裡而不會被完全埋住)
問題是我們不知道哪個區塊會成功生成地牢
所以我們就一一假設8個區塊裡哪一個會生成地牢
現在要搜尋的總數變為8*2^48
雖然比2^64好 但仍然太多了
幸好Java Random並不是真正的隨機而是偽隨機
我們可以透過地牢的y座標算出48bits裡的前8bits
剩下2^40組直接使用暴力解就行了
得到48bits的Structure Seed後
同樣是因為Java Random的性質
我們可以計算出完整64bits的World Seed(通常最多也只會算出兩組解)
整個過程只需要一個地牢的資料和幾分鐘的運算就行了
相較於以往的方法
這個方法好非常多
雖然我都看完了不過沒有很懂
(如果你的Dungeon Cracker 像我依樣不知道要怎麼build
從她在2:01:46時在地牢附近開啟的F3畫面推出生怪箱的座標
然後在Dungeon Cracker裡輸入生怪箱的座標和地牢地板的資料(鵝卵石,青苔,未知)
只要幾分鐘World Seed就跑出來啦 [3971198378293864095]
我用的那個地牢
她們蓋家的地方