【註:本文為一時偏激之個人意見,僅供參考,現在我已經不這麼想了】
自由軟體基金會曾表示:「購買專有軟體的唯一用途,就是研究它,用於開發自由軟體。」
《Minecraft教育版》作為全新的教育工具橫掃全球各大校園,但是我們忽略了它的風險,專有軟體。
最近在Hacker News上看到一篇文章:
Is It Even Worth Working on FOSS Anymore?
裡面有提到一點:為何人們會在閉源軟體上製作開源專案還津津樂道?
文中說「不要為閉源軟體貢獻開源專案」(Don’t work on FOSS that supports a SaaS or proprietary product.),於是就討論到了《Minecraft》(我的世界、當個創世神、麥塊)的模組也有此現象。
這是值得我們探討的問題,多數用戶沒意識到自由軟體的價值,而《Minecraft》正是有此缺點。在有其他替代品的情況下,用戶還為專有軟體《Minecraft》投入心血開發作品。
要探討此議題,我們就要從自由軟體和模組的定義開始,之後討論模組與《Minecraft》的關係。接著解釋如果要支持自由軟體,就不該繼續玩《Minecraft》的原因。
0. 名詞介紹#
專有軟體即為閉源軟體,使用者不能查看修改程式原始碼,且不能隨意散佈,否則就會構成盜版。
相較之下,開源軟體即自由軟體,程式碼是公開的,有些條款規定:散佈之後若有修改程式碼,也要開源回饋給社區。
自由軟體與價格無關,免費的軟體不見得是自由軟體;而自由軟體只要有公開原始碼也是可以收費。
模組(Mod)是修改遊戲玩法的一種軟體形式,有些是由玩家自行破解遊戲發展而來,有些則是官方提供API給玩家製作模組。通常擁有許多模組的遊戲,遊戲開發商不會對玩家管太多,除非他們反客為主把遊戲搭配模組拿去賣。
1. 《Minecraft》是一款專有軟體#
《Minecraft》是開源軟體嗎?否,它一直都是專有軟體,請看 Mojang寫的EULA,規定了購買者需遵守的義務,其中便包含「不可隨意散佈本遊戲」,還有「我們允許散布 Mod;但不得散布遊戲用戶端或伺服器軟體的破解版或 Mod 化版本。」以及「貴用戶只擁有您所製作的內容;貴用戶從未擁有我們的程式碼或內容。」
《Minecraft》不允許隨意散佈,原始碼從來沒有官方公開過,不管是Java版/基岩版/教育版/樹莓派版/中國版皆然。即使樹莓派版是免費取得,但只有二進位檔而無原始碼。所以《Minecraft》是專有軟體。
那為什麼會有人說它開源呢?通常指的是模組社群為了方便開發模組,而將Java版《Minecraft》反編譯後,再建立映射表得到的配合模組載入器運行的版本,例如Forge和Fabric的開發者有提供各自的映射表。
即使模組載入器(modloader)是開源的,但不改《Minecraft》本身是專有軟體的本質。
2. 《Minecraft》模組與專有軟體的關係#
《Minecraft》有分Java版和基岩版,要分開討論。Java版為俗稱的電腦版,基岩版則是C++寫的跨平台版本,包含Windows/手機/遊戲主機。
Mojang於EULA中,對模組以及玩家製作的內容寫到:
貴用戶針對遊戲所重新製作的任何 Mod 為貴用戶所有 (包括預先執行的 Mod 和記憶體內的 Mod),貴用戶有絕對的處理權,前提是貴用戶不得銷售/嘗試從中獲取利潤,也不得散布 Mod 版本的遊戲。記住,Mod 係指為貴用戶的原創內容,這些內容未包含我們的程式碼或內容中的重要部分。貴用戶只擁有您所製作的內容;貴用戶從未擁有我們的程式碼或內容。
Java版#
Forge模組載入器是LGPLv2授權,允許引用一部分程式碼而不開源作品。Fabric則是Apache 2.0授權,也是可以使用後不公開原始碼。
有名的大型模組隨名氣增加,多半會逐漸開源。事實上我們也看過模組開發者隱藏原始碼不公開的現象,而導致其他模組與其衝突,要跟作者溝通修正的情況,例如早期的格雷科技模組與打鐵模組的紛爭。
此外,玩家製作的模組是可以收費的。但Mojang的EULA有規定不能「賣」模組。因此技術上模組作者會用Patreon這類平台要使用者「贊助」才能取得模組檔案,這樣便沒有販售的問題。更簡單的方式是把下載連結做成含有許多廣告的短網址,被動賺取收入。
到這裡為止講的還是Java版,基岩版的情況就不同了。
基岩版#
基岩版曾有一段要靠類似Forge的第三方模組載入器來玩模組的歲月,也就是Zhouwei Zhang的「BlockLauncher」,又稱「ModPE Script」時期,僅能於Android平台運作。BlockLauncher是開源軟體,Apache 2.0授權。雖然作者有製作免費版和收費版來區分功能,但原始碼有公佈於Github上。
後來流行的模組格式為「Add-On」,變成是Mojang官方提供支援的API,可保證於各平台的基岩版運作。因為這些API很牢靠,所以給了創作者在Mojang官方經營的市集上架作品賺錢的機會。不過Minecraft的EULA仍然規定不能賣模組,所以市集頂多是賣含有模組的地圖。玩家也開始能像Java版一樣開發模組並免費分享,基岩版逐漸形成網路模組社群,不必到市集購買。
另外,基岩版現在還有俄羅斯InnerCore社群在開發類似BlockLauncher的模組,其模組載入器為專有授權,但聲勢遠不如官方推動的Add-On大。
所以,基岩版Add-On的情況跟Java版模組載入器完全不同,基岩版模組載入器為遊戲內建,那麼就連模組載入器都不是開源的了。在開源程度上來看比Java版的模組生態還糟糕。
3. 《Minecraft》模組的正面與負面影響#
模組作者若沒有選擇適當的開源協議,版權就是保持所有權利。但按照《Minecraft》的EULA,玩家製作模組不可用於商業用途。
模組開發者多少會遇到要不要開源的問題,因為主流模組API並無要求強制開源。更有甚者,模組開發者會互相盜用程式碼而不知會,或是在法律意識淡薄的國家,有人會盜用開源模組作為商業銷售,把它變成閉源軟體。
模組界的亂象談到這裡為止,來說說正面影響吧。《Minecraft》的模組發展到今天,已經為這個遊戲帶來更高人氣。《Minecraft》原版的遊戲已可以玩很久,安裝模組後又是另一個世界,更不要說搭配伺服器這類的多人玩法!Mojang對模組持開放態度,甚至在基岩版,Mojang也公開官方支援的模組API,這樣有助於延續遊戲的生命力。有很多開發者便是從做模組中發掘了寫程式的樂趣,也讓《Minecraft》成為有教育性質的工具,甚至有《Minecraft》學程式營隊出現。
4. 玩模組為主的《Minecraft》仍然是在支持專有軟體#
回到本文一開始探討的問題,為什麼人們樂於在閉源軟體上製作開源模組?
這個問題或許是因為社群因素,有夠多的玩家,有夠多受眾,才會吸引更多開發者投入,形成一種大者恆大的循環。Mojang官方在Java版&基岩版合售的宣傳影片中有出現模組,可見Mojang官方對模組仍持正面態度,製作模組讓人有名字被眾人知道的榮譽感。