假如 Minecraft 剛開始開發就是一個開源項目,它會怎麼發展?


minecraft從來就不是一個開源項目。

只是由於官方默許MCP(MCP Website - Mod Coder Pack Homepage)存在,形如開源

而MCP自minecraft的beta版本早期就發布並持續更新。

這樣間接為大量mod的出現,發展和繁榮提供了基礎。

但是,minecraft依然是一個閉源的,由官方主導的項目

評論里的內容移動到回答里來:

題面只是說假如?

」假如開始就「明顯暗示了「後來發生了」這樣的意思。但是實際上「從來不是」。本來想修改題目的,但修改後問題更不成立,就在回答中指出而已。實際上minecraft差不多就是形如開源地存在到現在的,雖然諸多不同——比如人數極少的官方在開發中佔據主導,但玩家社區通過mod又繞開官方定義全新天地。

mod減少了,但整合mod功能的分支版多了?但更快整合到主幹代碼中?

不不,不是這個邏輯關係。minecraft的mod當然是越來越多的,涵蓋方方面面,而原版內容必定會有限定(一方面mojang沒有一個龐大的開發團隊,另外一方面原版的任何改動,尤其是比較重大的改動,都會遭致巨大的社區壓力——雖然mojang已經有幾次不顧這些壓力大幅度修改遊戲的記錄了)。而實際上官方對這一塊兒幾乎沒有多少投入,目前迫於社區壓力以及一些新血的注入,在逐步考慮為mod開發以及modder提供方便,但老實說,也不可能比MCP和forge團隊現在做的工作做得更好。所以minecraft是官方不支持(起碼不夠支持)mod但是卻幾乎擁有世界上最多mod的遊戲。

實際上minecraft的成功也和它沒有早期就開源有關。閉源和官方主導保證了其代碼沒有碎片化。這方面有一個反例:啟發notch開發minecraft的無盡礦工(Infiniminer),這個遊戲就由於各種偷跑修改版的泛濫導致開發者徹底放棄了項目(可以看這篇文章了解詳情:Proto-MineCraft Abandoned Due To Epic Error),開發者原話如下:

「I stopped working on Infiniminer when the source code was leaked. It was totally my fault, as that』s what I get for releasing an un-obfuscated .NET assembly, but it nevertheless enabled hackers to create hacked clients and players upset with my balancing decisions to fork and write their own clients and servers.」

大意翻譯:」當源碼泄露後我停止開發無盡礦工。這全是我的錯,因為我發布了一個未混淆代碼的版本的.NET安裝文件。但無力阻止黑客們製造出破解後的客戶端,而玩家由於不滿我為平衡遊戲而做的一些修改決定,創建了項目分支並製作他們自己的客戶端和服務端。「

結果是開發者再也無法主導遊戲的主題,目標,開發方向和內容。

所以遊戲開發團隊對遊戲內容具有一定的主導性,而不被社區牽著鼻子走還是很重要的。當然,mojang要能切實多考慮下modder們的意見,就最好不過了。


其實現在的發展也有點像開源模式吧……不斷追加mod的或新的功能,但一些期望追加的(如開發mod用的API)還是只是計劃。

如果一開始就開源的話,會更多分支版,新功能可能更快併入主幹中,效能有改進的可能(可能更快些?),但也有可能更拖拉(只是修修補補,功能實現要討論得更久?)

參考mediawiki的開發……


推薦閱讀:

論開源作為公有制生產關係的社會主義性質
為什麼開源應該是雲原生環境的首選
新一代開源Android渠道包生成工具Walle

TAG:遊戲 | 開源 | 開源項目 | 我的世界Minecraft |