為什麼不玩《Minecraft》遊戲?別忘記它缺點就是專有軟體

【註:本文為一時偏激之個人意見,僅供參考,現在我已經不這麼想了】

自由軟體基金會曾表示:「購買專有軟體的唯一用途,就是研究它,用於開發自由軟體。」

最近在Hacker News上看到一篇文章:

Is It Even Worth Working on FOSS Anymore?

裡面有提到一點:為何人們會在閉源軟體上製作開源專案還津津樂道?

文中說「不要為閉源軟體貢獻開源專案」(Don’t work on FOSS that supports a SaaS or proprietary product.),於是就討論到了《Minecraft》(我的世界、當個創世神、麥塊)的模組也有此現象。 Minecrat模組:BC2 & IC2 工業模組

這是值得我們探討的問題,多數用戶沒意識到自由軟體的價值,而《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授權,也是可以使用後不公開原始碼。 Forge Logo

有名的大型模組隨名氣增加,多半會逐漸開源。事實上我們也看過模組開發者隱藏原始碼不公開的現象,而導致其他模組與其衝突,要跟作者溝通修正的情況,例如早期的格雷科技模組與打鐵模組的紛爭。

此外,玩家製作的模組是可以收費的。但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版一樣開發模組並免費分享,基岩版逐漸形成網路模組社群,不必到市集購買。 Add-On官方介紹首頁

另外,基岩版現在還有俄羅斯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官方對模組仍持正面態度,製作模組讓人有名字被眾人知道的榮譽感。

因模組而使得遊戲更受歡迎,這並非《Minecraft》才有的現象,很多老遊戲同樣有靠模組延續其壽命的。

然而,如果人們在閉源軟體上開發開源模組,便會使原本自由的程式加上一層枷鎖。遊戲本體是不自由的,運行開源模組不會讓它變成自由軟體,即使哪天該遊戲老到變成免費取得也是一樣。模組或許能讓《Minecraft》變成另一個遊戲,但你還是需要《Minecraft》作為載體。換句話說,你仍然是在間接支持這個遊戲,而這個遊戲是一個專有軟體。你辛苦開發的模組作品版權甚至會受到《Minecraft》制約,從而產生一種灰色地帶的曖昧關係。

5. 改玩開源的沙盒遊戲吧

為何不打破這個限制呢?逐步放棄玩《Minecraft》。借鑒《Minecraft》和模組的經驗,開發出一款新的沙盒遊戲,並讓遊戲本體也跟著開源。

模仿《Minecraft》玩法的遊戲很多,但有多少是能開放原始碼,而非以營利為考量的呢?

目前此類開源遊戲有《Minetest》和《Terasology》。前者跨平台,且得益於遊戲本體豐富的API,模組數量也是相當多,惟遊戲本體的原創內容較貧乏。後者則注重於開發遊戲本體的新玩法,但也提供部份模組支援。 Minetest的科技模組

對遊戲模組開發者來說,開源是時候可以作為投入模組開發的首要考量了。一個社區建基於開源的遊戲載體,則其本身在軟體上是享有其他軟體所沒有的自由。如果社群氛圍良好,人人不以程式碼當作主要營利手段,那麼就能摸索新一種的經濟模式。別忘了自由軟體是可以收費的,販售的東西可以是一種體驗,不論單機或是多人,而非單純軟體而已。

對一般用戶來說,開源遊戲本身不阻止你了解箇中原理。相反,它鼓勵大家互相觀摩學習,並用開源條款促成貢獻的可持續性,確保參與的人士能將開發成果回饋給社群,促成良性循環。針對藝術創作者,CC創用授權也能一定程度保障作者權利。

但是面對現實,現實就是開源遊戲社群比大多數專有授權的遊戲社群要小的多,《Minetest》說模組有一千多個算很多,社群也不算小,但也是相較於同級開源產品而言,跟《Minecraft》比起來是天與地的差別。在實際應用上,開源收費遊戲很少成功案例;某些教育機關不選用《Minecraft》而選擇《Minetest》的原因,大概也是因為它是免費的。

因為一般人在意的是遊戲的致命吸引力,對背後原理是不甚感興趣的,自然不會想到要支持自由軟體,來捍衛自己遭到商業公司侵蝕的基本權利,也就是最起碼對程式碼要有知的權利。

不過世界上還是有一批人在乎,所以他們才會積極在網路上、現實世界推廣自由且開源的遊戲。並且自由軟體在乎的是使用者自由而非價格。自由軟體從來不強迫別人加入,只不過是喚醒人們意識,從而讓人知道有另一種選擇。在教育用途上,教育者也應當以開源的價值作為首要考量,並將此理念傳遞下去給年輕玩家。

支持這些開源遊戲便是讓這個社群變得更好,因此鼓勵大家嘗試這二款發展的較好的開源遊戲:《Minetest》和《Terasology》,除了延續方塊遊戲的體驗外,製作模組也有更大的自由度。


附录:本文po在知乎,在我删除之前,收到的回应。

2022-06-22,知乎用户s3UeGS:

不知道你想针对什么人。以modder身份来说,我还是很希望有这么一个软件的,主要是mc源码是屎,开源方面也确实存在隐患,不过目前看来bukkit生态可以保住,fabric和forge只能听天由命,虽然拒绝开发者不符合bugjump的利益。对于普通玩家,没有正版完整的服务器又不少,也没人缺你这口饭,想支持正版支持正版,想自己玩自己玩,也没必要管别人。像这样提出暴论道德绑架也不太好,毕竟mc是大规模商业化游戏中最开放的之一了(尽管bugjump一如既往不当人)总之你写文章充满情绪,严重偏激,看着很怪,不知道你写没写过mod之类的东西。还有就是,开源作品怎么说呢,游戏性还是差一点,社区的力量不是你自己的几篇三流文章可以扭转的,我很高兴帮助了我很多的开源项目得到更多人的主意,但是偏激的用语是否起到反作用无法得知。或者说mc是一个躺着赚钱的金饭碗,文中的忧虑是值得考虑的,但是我们不得不承认除非mojang作死,你说的话不会有什么市场。社区不需要mojang而mojang需要社区。社区有能力开发一个独立游戏,甚至作为一个engine。现在的大项目基本都有号召力去组织开发,反正你可以放心的,现阶段不需要考虑这些事,即使最坏的情况到来,mc也不会断绝,要相信社区的力量。


感謝您的閱讀。歡迎分享Ivon的部落格(ivonblog.com)的文章,引用或轉載請註明文章網址,並遵守創用CC-姓名標示-非商業性-禁止改作 4.0 國際授權條款。如需商業使用請來信告之。

written by human, not by AI

如果本網站文章對您有幫助,歡迎請我喝杯珍珠奶茶。

留言板

點選按鈕,選擇您覺得方便的留言系統。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要登入Github帳號才能留言。支援markdown語法,方便您張貼程式碼,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus投放的廣告。無論有無登入皆可留言。此處留言只有本站參與者看得到。若您選擇以訪客身份匿名留言,就不會收到後續回覆通知。