Re: [問題] 關於MC的運作原理問題與地圖升版

看板Minecraft (當個創世神)作者 (神無月 孝臣)時間3年前 (2021/02/04 19:57), 編輯推噓13(13015)
留言28則, 14人參與, 3年前最新討論串1/1
※ 引述《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
我自己把1.15升上1.16時就把地獄砍了一半
02/04 20:31, 6F

02/04 20:36, 3年前 , 7F
地獄更新升版本的確很讓人頭痛 畢竟地獄比較小XD
02/04 20:36, 7F

02/04 21:41, 3年前 , 8F
請問下,那能重置整個地獄嗎?把相關mca刪除就好?
02/04 21:41, 8F

02/04 22:48, 3年前 , 9F
真的要全部砍掉重來的話, 把 DIM-1 資料夾整個砍掉
02/04 22:48, 9F

02/04 22:48, 3年前 , 10F
(注意是有 - 的那一個, 沒有的 DIM1 是終界)
02/04 22:48, 10F

02/04 22:50, 3年前 , 11F
這樣之後進去時就會當成你從來沒來過地獄全部重新生成
02/04 22:50, 11F

02/04 23:11, 3年前 , 12F
6000萬公尺這部分是不是錯了
02/04 23:11, 12F

02/04 23:11, 3年前 , 13F
每一點座標是1公尺?
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
理論上是地獄要塞的生成位置是固定的,所以有finder可
02/04 23:48, 17F

02/04 23:49, 3年前 , 18F
以用,但地獄要塞的生成邏輯在1.16版時換過了,所以如
02/04 23:49, 18F

02/04 23:50, 3年前 , 19F
果在1.15把地獄存檔砍掉,1.16重新生成的地獄要塞會在
02/04 23:50, 19F

02/04 23:50, 3年前 , 20F
不同的地方生成,因此用地獄要塞的finder也要選擇版本
02/04 23:50, 20F

02/05 00:08, 3年前 , 21F
推分享
02/05 00:08, 21F

02/05 00:08, 3年前 , 22F
最近從 1.9 一口氣升到 1.16 老家直接變成斷層 T^T
02/05 00:08, 22F

02/05 03:56, 3年前 , 23F
02/05 03:56, 23F

02/05 06:01, 3年前 , 24F
如果你是用spigot或paper開你的地獄會是一個world_nethe
02/05 06:01, 24F

02/05 06:01, 3年前 , 25F
r資料夾,直接砍掉讓他重新產生就好
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
其實三個維度都是一樣大,不過地獄會去的地方比較小XD
02/11 12:55, 28F
文章代碼(AID): #1W6-4oiJ (Minecraft)
文章代碼(AID): #1W6-4oiJ (Minecraft)