Re: [問題] 關於MC的運作原理問題與地圖升版
※ 引述《overdoingism (做過頭主義)》之銘言:
: 首先感謝上面幾篇前輩的回答。
: 最近看到1.17要發布了,依照過去玩過的Terraria的經驗是,
: 大改版後要重新產生地圖,才會有新的要素,
: 不過稍微理解了MC後,
: 他的原理似乎是靠單一種子值,即時產生所有的世界,
: 可能是利用雜湊函數之類的方式(我猜),
: 再轉換成各種地形,
: 然後只記錄下人為的變動,
: 這樣一來即使是更新版本,
: 新的要素還是會在地圖上出現,
: 只要該磚沒有被人工建設過的話。
: 請問我的理解是對的嗎?
: 也就是說如果我以1.16開服,
: 理論上未來可以無痛升級到1.17這樣?
: 除非有增加像終界這麼大幅度的改版?
: 請指教~感謝 m(_ _)m
: ----
: 順便一問,paper伺服器會比spigot更好嗎?
: 比起性能我更重視相容性、長期維護性這樣....
關於麥塊的地圖是這樣運作的
既然提到terraria的話也可以用terraria來說明一下
terraria是在創地圖時就已經建立好一個完整的地圖檔
但是當terraria升版本加入新的地形要素時
新的地形要素會沒有辦法進入原有的地圖檔之中
需要重新再建立一張地圖檔來套用有新的地形要素的生成規則
這樣新建立的地圖檔內才會出現新的地形要素
舉例來說
terraria在1.3版時追加了大理石與花崗石的生態系
但是直接於1.3版遊戲中打開1.2版就建立的地圖是沒辦法看到這兩個新生態系的
需要在1.3版內重新建立一個新地圖才會生成這兩個新生態系
不過新怪這種無關地圖生成的新要素
仍是可以直接出現在用新版本的遊戲所開啟的舊地圖檔之中
而麥塊則是這樣運作的(其實機制是相同的)
麥塊的地圖大小在理論上是6000萬公尺x6000萬公尺(比地球表面積還大就是)
這樣龐大的資料量不可能像terraria那樣直接建立一個完整的地圖載入遊戲中
沒有電腦可以承受這麼龐大的資料量的載入
所以麥塊使用的是一個叫做chunk的機制
將地圖檔切割成16x16格(垂直方向是全部包含)為單位的一個chunk
然後遊戲只會載入玩家所在附近個幾個chunk而已(範圍可以調整)
反正玩家只會與他附近的地圖資料來遊戲
遠離玩家太遠的地圖資料不就沒有必要載入嗎
所以就是這樣只載入玩家附近的幾個chunk
當玩家離開已經載入的chunk有一定的距離時
這些chunk就會被卸載而"凍結"
至於chunk內所儲存的地圖檔資料
是在chunk要載入時才會生成
所以如果有一個位於世界邊緣的chunk不曾有玩家接近的話
這個chunk的地圖檔將永遠不會生成
如果有一個chunk在某日有玩家接近時
這個chunk就會套用當下遊戲版本的地圖生成規則來將地圖檔資料生出來
已經存在的地圖檔資料既然已經產生
當然就不會再套用地圖生成規則去再次生成地圖檔資料了
因此若是一個chunk套用舊遊戲版本的地圖生成規則將地圖檔資料生出來後
在遊戲版本提升後再次載入該chunk的話也沒辦法再次生成地圖檔資料一次
也就是這個chunk內已經沒有辦法出現新遊戲版本追加的新的地圖要素了
沒有辦法使用新遊戲版本的地圖生成規則的話
新的地圖要素將沒有辦法在chunk內生成
但是與地圖要素無關的新怪之類的要素則仍是可以在已經生成的chunk內出現
對於管理一張麥塊的地圖來說
便是不要沒事就亂跑讓一堆chunk套用現在的地圖生成規則來產生地圖檔
遊戲更新版本後一定能在這張地圖內出現新的地圖要素
只是需要移動到在之前版本中還沒生出地圖檔資料的chunk才行
雖然說遊戲地圖有6000萬x6000萬公尺那麼大
應該是不用擔心找不到在之前版本中還沒生出地圖檔資料的chunk
因為沒事就亂跑使得附近的chunk全部生成當下版本的地圖檔資料
使得需要長距離移動才能到達在之前版本中還沒生出地圖檔資料的chunk也是很令人煩躁的
所以有些管理員會用指令設定世界邊緣來禁止有人隨便探索
而且通常這些地方走過一次後就再也不會再接近了
等到遊戲版本提升後再將世界邊緣變大
讓玩家可以去探索能生成新的地圖要素的那些chunk
另一個方法是既然大部分探索過的chunk都是走過去一次後就不會再接近了
那麼把這些chunk的地圖檔資料都砍掉不就好了
把chunk的地圖檔資料都刪除後
等遊戲提升版本後不就是能生成有新的地圖要素的地圖檔了嗎
所以可以試試看這一個工具
https://github.com/Querz/mcaselector
mcaselector是一個簡單的地圖檔編輯工具
可以看到目前地圖檔到底已經建立到怎樣的規模
把網頁往下拉就能看到載點
同時還有許多使用教學可以看(程式內也可選繁中介面)
用mcaselector載入自己的地圖後(就算是mod環境的地圖也能載入)
就能夠自行選擇要刪除那些chunk或region(32x32個chunk是一個region)
把那些在主要活動區外面而且幾乎不會在靠近的chunk或region都砍掉
等遊戲提升版本後就能在那裏生成新的地圖要素了
而且這樣還有幫地圖檔瘦身的效果
那些根本沒有人去的chunk為何要留在地圖檔中佔空間呢
--
A Man or a Parasite
What is the difference between a man and a parasite? A man builds. A parasite
asks "Where is my share?" A man creates. A parasite says, "What will the
neighbors think?" A man invents. A parasite says, "Watch out, or you might
tread on the toes of God..."
─Andrew Ryan
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.144.224 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Minecraft/M.1612439858.A.B13.html
推
02/04 20:04,
3年前
, 1F
02/04 20:04, 1F
→
02/04 20:06,
3年前
, 2F
02/04 20:06, 2F
→
02/04 20:15,
3年前
, 3F
02/04 20:15, 3F
→
02/04 20:18,
3年前
, 4F
02/04 20:18, 4F
→
02/04 20:18,
3年前
, 5F
02/04 20:18, 5F
推
02/04 20:31,
3年前
, 6F
02/04 20:31, 6F
→
02/04 20:36,
3年前
, 7F
02/04 20:36, 7F
推
02/04 21:41,
3年前
, 8F
02/04 21:41, 8F
推
02/04 22:48,
3年前
, 9F
02/04 22:48, 9F
→
02/04 22:48,
3年前
, 10F
02/04 22:48, 10F
→
02/04 22:50,
3年前
, 11F
02/04 22:50, 11F
推
02/04 23:11,
3年前
, 12F
02/04 23:11, 12F
→
02/04 23:11,
3年前
, 13F
02/04 23:11, 13F
推
02/04 23:20,
3年前
, 14F
02/04 23:20, 14F
推
02/04 23:24,
3年前
, 15F
02/04 23:24, 15F
→
02/04 23:24,
3年前
, 16F
02/04 23:24, 16F
→
02/04 23:48,
3年前
, 17F
02/04 23:48, 17F
→
02/04 23:49,
3年前
, 18F
02/04 23:49, 18F
→
02/04 23:50,
3年前
, 19F
02/04 23:50, 19F
→
02/04 23:50,
3年前
, 20F
02/04 23:50, 20F
推
02/05 00:08,
3年前
, 21F
02/05 00:08, 21F
→
02/05 00:08,
3年前
, 22F
02/05 00:08, 22F
推
02/05 03:56,
3年前
, 23F
02/05 03:56, 23F
推
02/05 06:01,
3年前
, 24F
02/05 06:01, 24F
→
02/05 06:01,
3年前
, 25F
02/05 06:01, 25F
推
02/05 10:22,
3年前
, 26F
02/05 10:22, 26F
推
02/08 09:07,
3年前
, 27F
02/08 09:07, 27F
推
02/11 12:55,
3年前
, 28F
02/11 12:55, 28F
Minecraft 近期熱門文章
PTT遊戲區 即時熱門文章
41
48
11
30