我的世界模組

Minecraft模組（Minecraft mods）是指一系列由玩家製作的《Minecraft》遊戲模組，藉由修改遊戲中的內容來得到不同的遊戲體驗。目前我的世界中有無數的Minecraft模組存在Cadenhead 2014, p. 367，玩家可以任意下載遊玩，在基岩版中有一部分可選擇付費購買。透過第三方軟體能夠讓多個Minecraft模組同時遊玩，不僅提高了遊戲的可玩性，並且建立一個與官方《Minecraft》完全不同的遊戲體驗Van Schaik and Vledder 2015, p. 107。由於Minecraft模組社群是遊戲中最活躍的社群之一，Minecraft模組被認為是《Minecraft》遊戲得以成功的幾大原因之一。

Minecraft模組主要盛行於Java版，基岩版（包括手機、家機）則有附加包，兩者皆為原版增添額外遊戲內容，並互不相容。

## 技術可行性

由於Minecraft是以Java程式語言撰寫，使得程式在封裝階段時，不會直接編譯成難以解析的機器語言，而是先編譯成相對容易解析的Java字節碼再到個使用者端執行。從Minecraft發行至今，許多獨立的程式設計者利用了這個特性在遊戲中加了許多內容，也就是大家所稱的遊戲模組。

早期的Minecraft模組是直接修改存在於Minecraft.jar的Java類文件，在將修改後的檔案覆蓋到Minecraft.jar上，並移除確認其檔案完整性的META-INF資料夾。

由於前項遊戲修改方式的本性，模組互相衝突隨著模組社群的增長而越來越常見。於是出現了模組載入器，它們提供修改遊戲的API、註冊及事件系統。如今，主流的模組載入器包含Forge、Fabric、Quilt和NeoForge。

Java版本的Minecraft模組分為兩種：單人模組和服務器模組。

- 單人模組：玩家需要在遊戲文件中插入或替換新文件，或安裝模組載入器（例如Forge、Liteloader或Fabric等）來安裝模組。
- 伺服器模組：安裝在伺服器上，玩家只要登入伺服器就能體驗模組的內容，通常稱為插件，建構上比單人模組容易許多。在任何情況下，要安裝多個模組且能運行、不發生模組衝突、不拖慢電腦性能是需要一點技巧的，尤其是在一些較舊或是性能較弱的電腦。
- 自定義模組：這種模組主要安裝在伺服器上，是經商討後服主請人定製的模組。

在Java版的Minecraft製作模組完全是可行的，因為模組程式編者可以輕易的藉由反編譯利用以Java寫出來的Minecraft的原始碼Koene 2015, Hour 1, pg. 1。

在大多數平台的基岩版中則稍有不同，因為其用C++語言編寫，而不是Java。在以前，如果玩家使用的是Android系統，可用名為BlockLauncher的手機應用程式來安裝模組，而iOS則必須安裝一個名為mcpedeb.deb的檔案。此外，如果玩家想要在iOS順利的安裝並執行模組的話可能還需要越獄。在Android和iOS的兩種系統中，模組是用JavaScript編寫的。而現在則可以通過資源包和行為包來方便的實現修改和添加遊戲內容。

## 歷史

雖然Minecraft的第一個PC版於2009年五月中旬發布，但當時還沒有任何遊戲模組，直到2010年中發布alpha時才開始出現遊戲修改。早期只有利用伺服端來改變遊戲內容或環境的伺服端模組。隨著的alpha版本的發布，第一個客戶端模組開始出現，但都是增加相對簡單的事情，比如其他的紋理或修改遊戲中的指南針。

到2010年底，新釋出的模組增加的特性比以往來的更多，此時，我的世界現在正準備進入其測試開發階段，Beta版，當時許多模組已十分流行，例如Industrial Craft2、Railcraft和BuildCraft首次向公眾發布。相較於早期的模組，這些模組已經完全改變了整個遊戲的玩法，而不是只有簡單地調整一些細微的枝節。

2011年11月，Forge發布。Forge並沒有加入新的功能也沒有調整遊戲中的內容，而是允許在同一個Minecraft客戶端中安裝並運行多個模組，又稱為FML（Forge Mod Loader）。在Forge發布之前，當時流行的IndustrialCraft和BuildCraft並不能同時執行，因為他們的安裝方式是取代Minecraft客戶端Jar檔中的Class檔，由於都需要覆蓋相同的Minecraft基礎Java檔案，因此無法同時安裝，而Forge則利用了動態載入的方式，無須直接取代Jar檔中的檔案，使的多個模組要同時安裝時無須觸及其基本的程式碼。

<image>

Minecraft的正式版本於2011年11月18日發布，Minecraft模組的社群也不斷成長。2012年2月，Mojang聘請了Bukkit插件的開發人員開發官方的Modding API，目標是允許模組開發人員能夠更簡單地調整或修改Minecraft遊戲內容。2015年，Mojang在社交媒體上宣布這個Modding API仍在開發中，然而，其已在三年前就宣布了要開發Modding API一事。

Minecraft模組社群對微軟於2014年底收購Mojang表示擔憂，Minecraft模組社群的許多人認為微軟可能會終止目前Mojang默許許多Minecraft模組及相關第二創作的行為，儘管存在擔憂，但微軟尚未宣布對Mojang政策進行任何修改。

2015年4月，微軟宣布要給提供一個Microsoft Visual Studio開發套件，為模組開發者提供了一種更簡單的創作方法。同年7月，微軟發布了一個新的Windows 10版本的Minecraft，並且與以往版本有很大差異，其由C++編輯完成。此消息再度引發Minecraft模組社群擔憂，由於此消息可能是Java版本被逐步淘汰的一個徵兆，由於C++並不像Java那樣可以「Reverse Engineerable」，Java可以透過動態載入其他類別或執行檔，而C++則無那麼大的彈性，因此此舉將嚴重阻礙Minecraft模組的發展。然而，Mojang開發人員Tommaso Checchi向Reddit上的粉絲保證，由於模組「太重要了」（too important），因此不會停止開發基於Java的版本。

2016年，Minecraft的1.9版更新發布，隨著這次更新，Mojang承諾此次更新會大大的簡化mod的創建和更新。但由於這更新破壞了先前已發布模組所使用的架構，迫使許多模組創作者要花費大量時間來更新模組作品。也因此許多模組停止開發而停在舊版本1.8甚至是1.7.10。

2017年4月，Mojang宣布將建立一個稱為Minecraft市場（Minecraft Marketplace）的平台，在這個平台上，玩家將可以販賣基岩版的使用者自定義內容。雖然這個電子商店著重在冒險地圖、皮膚和紋理包等非程式修改的內容，但PC World則認為此舉將使基岩版更接近經典的最初之Java版本中「玩家所熟悉的可塑造的世界」。

2019年9月，Minecraft 官網修改日誌宣佈，自快照版本19w36a開始，會在每個發行與快照版本發布官方的混淆映射表。用意為取代第三方混淆映射表如MCP。然而，由於版權宣告的用字不明確，Forge作者仍說明會繼續使用MCP的混淆表。

### 爭議

我的世界模組多年來一直存在爭議。其中一個爭議與一個名為格雷科技的模組有關，格雷科技模組主要透過將Minecraft某些物件的製作複雜化來提升遊戲難度。2013年，格雷科技模組作者注意到一些格雷科技模組中的合成方式被加入Tinkers' Construct模組中，而格雷科技模組作者為了報復因此在模組中加入「安裝Tinkers' Construct後會當機」的程式碼。後來兩個模組的作者和解。

另一個爭議與名為Bukkit的軟體相關，Bukkit是一個可以在Minecraft伺服器安裝插件的軟體，也可以視為是Minecraft的一個伺服端模組Cadenhead 2014, p. 2。由於這個項目已經多次轉手開發，因此先在的開發者與過去開發過Bukkit的開發者開始爭論誰是此作品的版權持有者。最終在2014年，一個名為Warren「EvilSeph」Loo的開發者嘗試在遊戲中的程式碼加入版權，然而此一事造成了Bukkit有很長一段時間處於失修的狀態。後來Mojang介入以挽救該專案。最後的版權持有者變為由Mojang持有，也因此，另一個由社群開發名為「CraftBukkit」的獨立伺服器，由於部分程式碼基於Bukkit，因此有侵犯著作權之虞，而遭到終止，它被另一個獨立伺服器spigot所替代。

另一個爭議發生在2017年3月，當時斯洛伐克的網路公司ESET舉出了使用Minecraft mod的幌子而通過Google Play商店審查的87個特洛伊木馬病毒的例子。這些木馬病毒的目的大部分是積極展示廣告或讓玩家下載其他應用程式。這些假的Minecraft mod在2017年的前三個月已有超過一百萬的下載量。

## 內容

<image>

在Minecraft遊戲修改的相關創作中，又可以細分為模組、模組包、子模組及插件，其功能不盡相同，例如模組為較大的遊戲修改、而插件通常指伺服端模組，客戶端不需安裝即可登入伺服器並遊玩；子模組則為某個模組的模組（模組的遊戲修改或二次創作），用於改變某個模組的遊戲體驗，而模組包則是一系列模組的集合。

正式的Minecraft模組數量不易估計，因為其數量十分龐大，且有的只支援新版、有的只支援舊版，難以統計出一個確切的數據，但根據一些模組發佈的網站可以得到大略值，例如CurseForge網站上就有超過84,000個已發布的Minecraft模組，其中也包含了多種不同的模組種類，例如改變世界生成、角色扮演類、科幻類、奇幻魔法等不同類型。

舉例來說，有些模組添加了新的世界或維度，比如《Galacticraft》Van Schaik and Vledder 2015, p. 113

以及《暮色森林》模組（Twilight Forest）。部分的模組主要著重於在遊戲中加入更多科技與技術的相關元素，透過添加各式各樣的機器，可以幫助玩家自動生成某些遊戲內材料，例如《更多實用設備》（Extra Utilities）、《BuildCraft》

和《工業時代》（IndustrialCraft）

等。此外，也有些模組有加入現代化的武器，例如《Flan's Mod》和《Tinkers Construct》等。亦有部分模組試圖改變Minecraft中的自然元素，例如《Natura》、《林業模組》（Forestry）、《Biomes O' Plenty》和《Mo' Creatures》等。

然而，並非所有模組都會在遊戲中加入新的元素。部分模組透過加入GUI來輔助遊戲，例如小地圖模組《minimap》、《Optifine》模組和JEI物品管理器（Just Enough Items）。

另外有另一種遊戲修改稱為模組包，是指一個包含已設定並調整好的一系列模組安裝檔、套件或啟動器，透過多個模組之間整合以獲得不同於僅安裝單一模組的遊戲體驗Van Schaik and Vledder 2015, p. 119。模組包通常會整合一系列相同主題的模組。較知名的模組包啟動器或社群包括FTB、CurseForge等。

### 我的世界附加包

Minecraft 附加包，是在基岩版透過增加新方塊、生物等，或者修改遊戲機制，進而增加遊戲豐富性的一種功能。它是受到 Mojang 官方支援的遊戲修改方式。類似於存在Java版上的模組。

使用者能在 Minecraft 市場上面取得附加內容，有些附加包是免費的，而大部份會需要Minecoin（Minecraft金幣），需要在遊戲內購買。

唯有登記成立公司並與 Mojang 簽署協議，才能將附加包上傳至 Minecraft 官方市場。

## 官方認可

起初Mojang表達的立場是不支持遊戲修改，但2012年，Mojang則聲稱正在開發我的世界模組的知識庫，並且在他們網站的幫助列表中列出了教導玩家如何安裝模組並遊玩模組的一系列教學影片。

Minecraft的創建者馬庫斯·泊松在2012年承認他最初對mods持懷疑態度，因為他擔心玩家製作的自定義修改內容會威脅到他對遊戲的願景。後來選擇接受是因為馬庫斯·泊松意識到我的世界模組是賦予我的世界遊戲歸屬的一個重要原因（mods are 「a huge reason of what Minecraft is」），部分模組作者最終甚至被Mojang聘用。

## 漏洞與病毒

### Fractureiser

<image>

Fractureiser 流行於2023年6月，是一種主要攻擊Minecraft模組與插件社群，能夠散布到其他jar檔案的電腦病毒。散布開始於惡意使用者上傳病毒到模組平台CurseForge和插件平台Craftbukkit，使用者下載後於minecraft啟動載入時，感染其電腦裡其他jar檔案，就此逐漸散布。

其感染能力包括：

- 感染電腦上的其餘jar檔案。
- 偷取電腦裡的微軟帳號，Minecraft，Discord與瀏覽器裡的 Cookie 與 密鑰。
- 替換剪貼簿上的虛擬貨幣地址

模組上傳平台CurseForge為此病毒提供了掃描工具

### BleedingPipe

BleedingPipe 是一種允許遠端任意程式碼執行的程式漏洞。該漏洞源自模組作者們在遊戲網路交換部份，使用了未經驗證的 java 函數 ObjectInputStream，使外部攻擊者能夠藉由傳送惡意封包於伺服端上執行漏洞，並進而感染正在遊玩玩家。

## 影響

### Minecraft本身

不少知名模組的內容最終併入了《Minecraft》本體。比如模組開發者Drzhark在《Mo' Creatures》模組中加入了馬匹，後來Mojang請Drzhark協助將其加入了Minecraft本體。紅石系統中的活塞原本也是模組中的內容，但是讓許多Minecraft玩家印象深刻，因此後來也加入了遊戲。

### 教育

<image>

Minecraft模組可以用於讓孩子們入門編程，例如ComputerCraftEdu專案採用了2011的ComputerCraft模組進行教學。採用Minecraft模組做為教材的程式設計班還有加州大學，他們利用教導學生編寫Minecraft模組來讓8-18歲的孩子學習編程方法。

此外，還有一個教育專案，上述ComputerCraftEdu的母專案——MinecraftEdu，為了傳授更廣泛的科目包括語文，歷史和藝術而廣泛的在各大學校推廣Minecraft以及其各種模組，以便有效的達成教育目的。

在《The Parent's Guidebook to Minecraft》中，作者柯里·德斯門表示，在家自學與Minecraft是一個有趣的組合，因為建立一個簡單的模組可以很容易地產生一些用於演示科學原理的示意圖Dusman 2013, p. 214。

## 延伸閱讀

- Rogers Cadenhead, Absolute Beginner's Guide to Minecraft Mods Programming, (Indianapolis: Que Publishing, 2014).
- Cori Dusman, The Parent's Guidebook to Minecraft, (San Francisco: Peachpit Press, 2013).
- Jimmy Koene, Sams Teach Yourself Mod Development for Minecraft in 24 Hours, (Indianapolis: Sams Publishing, 2015).
- Lars van Schaik and Ronald Vledder (eds.), De ultieme gids voor Minecraft, (Doetinchem: Reshift Digital, 2015).