Jedi Knight II Source Code Released

LucasArts 是盧卡斯影業(Lucasfilm)旗下的遊戲公司,曾經推出多款膾炙人口的電玩遊戲,類型橫跨動作、冒險、模擬等多種領域,並且也理所當然的製作了許多《星際大戰》(Star Wars)遊戲。然而隨著盧卡斯影業於 2012 年被迪士尼(Disney)買下後,迪士尼決定中止 LucasArts 所有的遊戲開發項目,使其單純成為負責版權業務的公司,這事實上形同關閉了 LucasArts。

 

為了向 LucasArts 致敬,曾經與 LucasArts 合作過的 Raven Software 決定將自己所開發的兩款《星際大戰》遊戲的原始碼以 GPL v2 許可證釋出,分別是《絕地武士 II》(Star Wars Jedi Knight II: Jedi Outcast,2002)和另一款採用相同技術的獨立遊戲《絕地學院》(Star Wars Jedi Knight: Jedi Academy,2003)。

 

 

 

將遊戲原始碼以自由軟體授權釋出原本是一樁美事,後來卻落得一個有點詭異的收尾,讓 DR 在事隔近兩個月後還是忍不住要拿來講一下……

 

話說迪士尼於 2013 年 4 月 3 日宣佈關閉 LucasArts,緊接著 Raven Software 便在隔日(4 月 4 日)宣佈將兩款遊戲的原始碼公開在知名的原始碼網站 SourceForge 上(參閱  Kotaku 網站的新聞)。而 DR 也很快的就把《絕地武士 II》的原始碼抓下來瀏覽了一下,當時對於原始碼最初始的印象是儘管《絕地武士 II》所使用的 id Tech 3 引擎原本是用 C 語言寫成,但《絕地武士 II》卻是全面改寫成 C++。由於除了 id Software 自己的遊戲外,有將原始碼釋出的 id Tech 3 遊戲並不多,所以 DR 不太肯定將引擎從 C 改寫成 C++ 是不是相對多數的現象。

 

總而言之,DR 端詳了一下後,就把原始碼放著,想說哪天有空時可以多看幾眼。過了大約一週後,DR 在別的地方想再度將原始碼載下來看,卻赫然發現 SourceForge 的載點竟然失效了。上網搜尋了一番,才發現原來是 Raven Software 自己主動將原始碼撤除(參閱  Softpedia 網站的新聞),而撤除的原因據稱是 Raven Software 沒有先將私有版權的原始碼移除……怎麼會這樣呢?

 

由於 DR 手上還有當初下載的《絕地武士 II》原始碼,所以 DR 根據網路上的討論,再次打開來檢查了一下,的確,裡頭可以找得到 Bink 影音以及 Xbox 的相關原始碼,這些應該都是不屬於 Raven Software 的私有元件。而且這原始碼其實包裝得頗為粗糙,例如明明當初下載的是「jediOutcast.zip」,裡頭專案檔的檔名卻是「JediAcademy.sln」,讓 DR 搞不清楚這到底是《絕地武士 II》還是《絕地學院》……

 

除了私有原始碼被包進去外,其實這包原始碼完全沒有遵照自由軟體所應有的發佈方式,也就是:

  • 每一支原始碼檔案的開頭都應註明原始碼的許可證為何。
  • 檔案包 / 檔案庫應有該許可證的一份完整副本。

 

雖然 DR 自己在發佈原始碼時也時常沒有嚴格遵守以上措施……但這些確實是應該要遵守的,而 Raven Software 作為一間歷史悠久的遊戲軟體公司,在原始碼的包裝與釋出卻出現如此令人傻眼的生手級表現。不過其實這並非 Raven Software 第一次釋出遊戲的原始碼,早在 2008 年,Raven Software 就曾將兩款古老的遊戲《異教黑騎士》(Heretic,1994)和《新毀滅巫師》 (Hexen,1996)的原始碼同樣以 GPL 許可證釋出,當時就至少有做到將私有原始碼移除、並且包含許可證的完整副本。

 

 

 

所以這次的疏忽應該是主事者缺乏經驗所造成的個案,然而弔詭的是,對於將原始碼從 SourceForge 撤除,Raven Software 至今其實並沒有任何官方解釋或者後續的動作(例如整理過再重新釋出),彷彿這整件事沒發生過一樣。外界所獲得的資訊只有 SourceForge 方面證實是 Raven Software 主動要求撤除,以及一名「前」Raven Software 的員工在某討論區提到有私有原始碼被包含在裡面。

 

那麼現在哪裡還下載得到原始碼呢?其實就在官方釋出原始碼後沒多久,GitHub 網站便出現了一項 OpenJK 專案,後來這項專案也進行了私有原始碼的移除工作。也許正是因為已經有社群接手處理了,所以 Raven Software 才沒有後續的動作。而兩款遊戲的原始碼釋出至今,也已經很快的有了一些工作成果,例如 Linux 版。

 

無論如何,這樣的疏忽是應該要避免的,因為這有可能會造成開放原始碼許可證的無效化,進而使原始碼使用者的權益不受保障。

 

分類: