稍微盤點一下我所知道的 Minecraft
The Minecraft 時期 (2012)
Minecraft 這款遊戲本身我已經很久沒有點開遊玩它了。實際上呢,我最熟悉的版本是 Beta 1.8,釀造系統(包含)以後的所有更新我其實都不是那麼的熟悉。比較熱衷玩 Minecraft 的日子大概是這樣的:
- 在 Yami Odymel 開的伺服器活動
- 因為耍白痴被 BAN 了
- 自己試著開了跑酷伺服器
- 自己試著開了 Solar Apocalypse 伺服器
一種人類玩家與 AI 對抗的構想 (2013)
當時 Minecraft 伺服器的架設者為了提高遊戲的趣味程度,通常透過插件加入一些常見的功能:
- 經濟系統:允許玩家持有遊戲內的虛擬貨幣。
- RPG: 賦予玩家等級制的成長系統。
- 更強的怪物: 提高怪物的血量、速度、集體行動;甚至賦予特殊技能,創造類似小 BOSS 一般的存在。
但是怪物不論在數值上有多強,只要有固定的行動模式就能被玩家破解。Minecraft 內最令人敬畏的敵人是誰?人類玩家。
透過創造與人類玩家別無二致的 NPC 敵人
這樣的想法在我腦海油然而生。
我試著學習撰寫插件來生成結構化的建築物,2013-04-06 的截圖,我與插件的生成物(背景):
具體的實做方式就是透過插件的 hook 取得指令事件、讀取玩家座標、使用預先儲存的三維矩陣把周遭的方塊填入遊戲世界中。
在我的構想中,人類玩家是破壞者,這些「敵對 NPC」是創造者,它們以蟲群意識行動,並不斷的建造巨構建築吞噬地圖,就像 BLAME! 中的建造者一樣。
SyntheticEmpire (2018)
五年後我重拾這個被我放置的概念,這次我從「實做 NPC」開始。經過對函式庫的調查,我理解到 Minecraft 處理「玩家實體」的方式是放置一個虛假的幻影,然後透過一些方式來操作這些幻影,使得「玩家實體」與其他遊戲中的「生物實體」截然不同。
於是當時我選中了殭屍作為 NPC 的基礎類別,因為它是少數人形的怪物,而且服裝最接近 Steve。
關於實體的操作這種類型的函式庫屬於 NMS (net.minecraft.serve) 的部份,並不是插件的函式庫特別關照的區塊,因此仍然殘留大量反編譯留下的非語意化變數名稱,當時花了好一番功夫去讀懂這些函數與變數的功能。最後成功附加一些玩家的特性到特製的殭屍實體去了。
遺憾的是當時撰寫的專案並沒有保留程式碼,只有一個輸出的 .jar
檔案。
(點圖開啟影片)
那些跟 Minecraft 有關的 YouTuber
- FitMC
- 主要在講 2b2t 伺服器故事的人。
- The Fall of Minecraft's 2b2t
- 一個「資訊時代誰掌握了資料 (Data),誰就掌握了力量」的故事
- AntVenom
- 一個對 Far Lands 莫名著迷的人。
- 挖掘各種把 Minecraft 搞壞的方法。
- SalC1