《我的世界》模組簡史


《我的世界》模組簡史


前言

本文是 Minecraft 文章 A Brief History of Minecraft Modding 的譯文版本,原文作者 Aaron Mills,原文於 2015 年 6 月 3 日發佈在 Packt 出版社網站 PacktPub 上。

挺早前就看過這篇文章,作者作為一位過來人為我們不簡略地敘述了一遍 Minecraft Modding 的已有“簡史”。

至少這是目前網絡上為數不多的,能讓像我這樣的一些在 Minecraft 非早期就加入社區的玩家,相對清晰地瞭解至今整個 Minecraft Modding 歷程的文章了。

很是喜歡,當時就有翻譯下來的打算,現在填坑了。原文發佈於 2015 年年中,時間節點也就到這個點。所以社區其後的發展,比如 Spigot、Sponge 的活躍等就沒有提及。譯文對比原文,加入了一些可能有助於內容理解的鏈接引用。

正文

幾乎從 Minecraft 誕生以來,modding 就一直在進行著。在過去的那段時間裡,Minecraft modding 已經經過了數次變革,或者說,走過了數個“時代”。那些早期的日子以及早期的 mods,與現在比起來,有著巨大的區別。

我初次涉足 modding 社區是在 Minecraft 的 Beta 中期階段,所以在這之前發生的所有事情都是第二手的見聞。不過正如接下來我們將探討的那樣,雖然在時間的流沙中,大量的印記已經丟失,但是沿途重要的驛站卻被記住了。

《我的世界》模組簡史

Beta 時期的 Minecraft 相比現在的版本來說非常簡單,依舊有玩家在玩


這些年來,Minecraft 經歷了數個發展階段。有趣的是,Minecraft Modding 的各個“時代”也正正對應著這些發展階段。

在 Classic 階段,Minecraft 生存模式以生存測試的形式首次出現,接著再次出現在了 Indev 階段,隨後到了 Infdev 階段,在經過 Alpha 和 Beta 階段後才到達正式版本。而這一切便從 Classic 開始。

Classic 在 2009 年 5 月開始發行,其開發持續到了當年 9 月。Classic 階段引入了生存模式與多人模式。

《我的世界》模組簡史

現在已經玩不到的 Classic 版本


在 Minecraft 歷史上的這一時期,當時的 modding 正處於起步階段。一方面,隨著數個不同的服務端 mods 的出現,服務端 modding 在這一階段開始繁榮起來。(後面我們會談及 Bukkit,而這些 mods 是 Bukkit 的前身)

這些 mods 的目的,普遍是提供給服務器管理員更多的工具來維護他們的服務器。而在另一方面,以增加新內容為目的的客戶端 mods,直到 Alpha 階段才真正開始出現。

Alpha 在 2010 年 6 月開始發行,並在這一年的餘下時間裡持續。

Alpha 階段之前,從 Indev 到 Infdev,沒有太多的證據表明這一時期出現有 mods,可能是 Indev 和 Infdev 階段缺少多人模式的緣故。

Alpha 階段重新加入了多人模式,這一時期裡,簡單的客戶端 mods 首次出現了。最初的這些 mods 只是對已有內容進行簡單的修改:加入高清材質的支持、增加新類型的箭、修復 bug、修改指南針等等,簡單且小巧。

然而,隨著 Minecraft Coder Pack(後改名為 Mod Coder Pack,即俗稱的 MCP)的問世,一切開始發生變化。

MCP 的一位主要創始人,Michael 'Searge' Stoyke,現正在 Mojang 工作。

2010 年年中的某個時候,第一個 MCP 版本 Alpha 1.1.2_01 發佈。Minecraft 的代碼是混淆過的,雖然很容易被反編譯。混淆的意即把代碼中所有有意義名字和單詞替換成人類不可讀的無意義字詞。

這對於人類來說很難受,但對計算機來說卻仍然感覺良好。MCP 正是通過映射有意義的名字到代碼中,使得 modding 變得相比以往更加容易。

與此同時,服務端 mod hMod 正在另一邊廂裡完全獨立地發展著,為服務器管理員提供一些簡單而又必不可少的工具。可是,hMod 遇到了主要開發者“玩失蹤”的問題。

這一情況最終造成了 Bukkit 的誕生,一個全新設計的服務器 mod,支持“插件”並且可以完成一切 hMod 不能完成的事。創造 Bukkit 的一行人最後也被招安到了 Mojang:Nathan 'Dinnerbone' Adams,Erik 'Grum' Broes,Warren 'EvilSeph' Loo,以及 Nathan 'Tahg' Gilbert。

《我的世界》模組簡史

Bukkit - Can hold anything


Bukkit 而後成為了可能是有史以來最受歡迎的 Minecraft mod。事實上許多人認為,Minecraft 在線服務器普及的主要原因,就是因為 Bukkit 的出現。然而,一段時期內,它與客戶端 mod 在很大程度上不兼容。

客戶端方面不甘落後,在這一年的年底迎來了另一重大發展:Risugami 的 ModLoader。

ModLoader 是變革性的。在 ModLoader 出現以前,如果你想使用兩個 mods,你就需要自己逐行手動合併它們的代碼。

因為在不編輯 Minecraft 的基礎代碼的情況下,許多共同的任務不能一起完成,比如增加新方塊和新物品。

而 ModLoader 通過建立一個框架來改變了這種情況,那些簡單的 mods 可以鉤入 ModLoader 的代碼中,執行一些此前需要修改基礎代碼的共同任務。簡單的 ModLoader 最後沒有在其原有範圍外繼續進行擴展。不過,它卻將 modding 帶入了一個新的時代。

Minecraft Beta 在 2010 年的聖誕節前開始發行並持續到了 2011 年,許多人稱這一時期是 modding 的“黃金時代”。Beta 階段湧現了許多在今天仍被認可且熟悉的 mods,其中包括我的 mod,Railcraft(鐵路 RC)。

《我的世界》模組簡史

Railcraft


在這一時期,IndustrialCraft(工業 IC)、Buildcraft(建築 BC)、Redpower(紅石力量 RP)以及 Better than Wolves(比狼好 BTW)也都迎來了開端。

《我的世界》模組簡史

Industrial Craft 2


《我的世界》模組簡史

Buildcraft 藝術圖


《我的世界》模組簡史

使用 Red-power 建造的二進制-十進制轉換器


它們都是些往 Minecraft 中加入許多新方塊和新特性的主要 mods。

此外,最近進行重製的巨型 mod,Aether(以太),也是在 Minecraft Beta 階段開始發佈的。

《我的世界》模組簡史

Aether 中的旋風,靠近會使你被風颳起來


這些 mods 與其它更多 mods 一起,算是重新定義了“Minecraft Mods”。以一個全新的高度存在著,它們有時候徹底改變了遊戲。

可是這仍有缺陷。Mods 的創造和使用仍舊是令人痛苦的。你不能同時使用 IndustrialCraft 和 Buildcraft,因為它們對同一些基礎文件做了太多的修改。ModLoader 只涵蓋了對最常見的基礎文件的修改,幾乎沒有接觸(深層)代碼,這對一個主要 mod 來說是不夠的。

而且,你仍然需要手動往 Minecraft jar 文件中插入代碼來使用一個 mod,這一工程將許多玩家隔離在了 modding 之外。

看著他們自己的 mods 不能被一起使用,各個主要 mods 的作者於是聯合起來啟動了一個新的項目。他們稱之為 Minecraft Forge。

《我的世界》模組簡史


Forge 由 Redpower 的 Eloraam 和 Buildcraft 的 SpaceToad 發起,很快就被當時許多主要的 mods 採用。

Forge 構建於 ModLoader 之上,極大地擴展了基礎鉤子的數量,相比以往,提供了允許更多的 mods 一起工作的可能。這一時期,modding 迎來了它真正的“黃金時代”,一直從 Minecraft Beta 階段持續到了正式發佈。

預示著 Minecraft“官方”正式版本的 Minecraft 1.0 在 2011 年 11 月發佈。與此同時,客戶端 modding 正經歷著轉變。

包括整個 Forge 團隊在內,許多著名的開發者開始轉去做其它事情去了。大部分他們的 mods 在沒有作者維護的情況下“生存”著,而部分則有。

舉個例子,Redpower 在 2012 年末停止了所有的開發。Eloraam,SpaceToad 和 Flowerchild 則將 Forge 的接力棒交給了在當時還相對不出名的 LexManos。

“黃金時代”告一段落,但是取而代之的是新 mods 的爆發,modding 變得比以往更加受歡迎。主要包括 LexManos 和 cpw 在內的新 Forge 團隊,為 modding 帶來了許多創新。最終他們甚至開發出了 Risugami 的 ModLoader 的替代品 ForgeModLoader,並整合進了 Forge 中。用戶安裝 mods 時不再需要徘徊遊蕩在 Minecraft 的內部。創新一直持續到今天,Minecraft mods 也已數不勝數。

然而,服務端 mods 的情況卻沒有那麼樂觀。長期佔據支配地位的服務端 mod Bukkit,在 2014 年遭受了致命打擊。原作者與維護者之間發生了許可衝突,基本上是圍繞著在主要維護者離開後,誰“擁有”這個項目的問題。

最終,一位最多產的維護者利用一個技術手段作廢了 Bukkit 項目使用他貢獻的代碼的權利,有效地殺死了整個項目。

替代品還沒被開發出來,只留下整個服務端社區在日漸過時的代碼中蹣跚前行。不過,不必對未來太過擔心。過去也曾有挑戰,但幾乎每有一個項目死去,很快就會被更好的東西取代。

Minecraft 有著一個有史以來最大、最有活力、最主流的 modding 社區。它有著悠久的歷史,而這些只不過是 Minecraft 文化滄海中的一粟。還有更多的,是大大小小的幫助塑造了整個社區的事件。願 Minecraft 的未來依舊那麼得有趣。

關於作者

Aaron Mills 出生於 1983 年,生活在太平洋西北地區,一個知識、樹木與雨水富饒的地方。

他在溫哥華華盛頓州立大學學習並獲得計算機科學學士學位。

他最著名的是他在 Minecraft mod Railcraft 上的工作,但同時也對 Forestry 和 Buildcraft 兩個 Minecraft mod 有著突出的貢獻,同時也為 Minecraft Forge 項目做出了部分功勳。



關於奶牛關

奶牛關 - 玩遊戲就要有追求,https://cowlevel.net

奶牛關是一個遊戲狂熱者的分享問答社區,在這裡可以記錄你一生玩過的所有遊戲,結識遊戲臭味相投的人,分享遊戲的文化、知識與樂趣,發現和推薦所有平臺的好遊戲。


分享到:


相關文章: