開源小說閱讀源碼(互動小說及其開源簡史)
2023-06-11 15:48:59
了解開源如何促進互動小說的成長和發展。
-- Jason Mclntosh(作者)
互動小說技術基金會 (Interactive Fiction Technology Foundation)(IFTF) 是一個非營利組織,致力於保護和改進那些用來生成我們稱之為 互動小說(interactive fiction)的數字藝術形式的技術。當 Opensource.com 的一位社區版主提出一篇關於 IFTF、它支持的技術與服務,以及它如何與開源相交織的文章時,我發現這對於我講了數幾十年的開源故事來說是個新穎的視角。互動小說的歷史比 自由及開源軟體(Free and Open Source Software)(FOSS)運動的歷史還要長,但同時也與之密切相關。希望你們能喜歡我在這裡的分享。
定義和歷史對於我來說,互動小說這個術語涵蓋了讀者主要通過文本與之交互的任何視頻遊戲或數位化藝術作品。這個術語起源於 20 世紀 80 年代,當時由語法解析器驅動的文本冒險遊戲確立了什麼是家用電腦娛樂,在美國主要以 魔域 、 銀河系漫遊指南 和 Infocom 公司的其它佳作為代表。在 20 世紀 90 年代,它的主流商業價值被挖掘殆盡,但在線愛好者社區接過了該傳統,繼續發布這類遊戲和遊戲創建工具。
在四分之一個世紀之後的今天,互動小說包括了品種繁多並且妙趣橫生的作品,如從充滿謎題的文字冒險遊戲到衍生改良的超文本類型。定期舉辦的在線競賽和節日為品鑑和試玩新作品提供了個好地方—英語互動小說世界每年都會舉辦一些活動,包括 Spring Thing 和 IFComp 。後者是自 1995 年以來現代互動小說的核心活動,這也使它成為在同類型活動中持續舉辦時間最長的遊戲展示活動。 IFComp 從 2017 年開始的評選和排名記錄 顯示了如今基於文本的遊戲在形式、風格和主題方面的驚人多樣性。
(作者註:以上我特指英語,因為可能出於寫作方面的技術原因,互動小說社區傾向於按語言進行區分。例如也有 法語 或 義大利語 的互動小說年度活動,我就聽說過至少一屆的中文互動小說節。幸運的是,這些邊界易於打破。在我管理 IFComp 的四年中,我們很歡迎來自國際社區的所有英語翻譯工作。)
在解釋器 Lectrote 上啟動 Emily Short 的「假冒的猴子」新遊戲
此外由於互動小說專注於文本,它為玩家和作者都提供了最方便的平臺。幾乎所有能閱讀數位化文本的人(包括能通過文字轉語音軟體等輔助技術閱讀的用戶)都能玩大部分的互動小說作品。同樣,互動小說的創作對所有願意學習和使用其工具和技術的作家開放。
這使我們了解了互動小說與開源的長期關係,以及從它的全盛時期以來,對於藝術形式可用性的積極影響。接下來我將概述當代開源互動小說創建工具,並討論共享原始碼的互動小說作品古老且有點稀奇的傳統。
開源互動小說工具的世界一些開發平臺(其中大部分是開源的)可用於創建傳統的語法解析器驅動互動小說,其中用戶可通過輸入命令(如 向北走、拾取提燈、收養小貓 或 向 Zoe 詢問量子機械學)來與遊戲世界交互。20 世紀 90 年代初期出現了幾個 適於魔改(hacker-friendly)的語法解析器遊戲開發工具,其中目前還在使用的有 TADS 、 Alan 和 Quest ,它們都是開源的,並且後兩者兼容 FOSS 許可證。
其中最出名的是 Inform ,1993 年 Graham Nelson 發布了第一個版本,目前由 Nelson 領導的一個團隊進行維護。Inform 的原始碼是不太尋常的半開源:Inform 6 是前一個主要版本, 它通過 Artistic 許可證開放源碼 。這其中蘊涵著比我們所看到的更直接的相關性,因為它專有的 Inform 7 將 Inform 6 作為其核心,可以讓它在將作品編譯為機器碼之前,將其 傑出的自然語言語法 (LCTT 譯註:此連結已遺失)翻譯為其前一代的那種更類似 C 的代碼。
Inform 7 集成式開發環境,打開了文檔以及一個示例項目
Inform 遊戲運行在虛擬機上,這是 Infocom 時代的遺留產物。當時的發行者為了讓同一個遊戲可以運行在 Apple II、Commodore 4、Atari 800 以及其它種類的「 家用計算機 」上,將虛擬機作為解決方案。這些原本流行的作業系統中只有少數至今仍存在,但 Inform 的虛擬機使得它創建的作品能夠通過 Inform 解釋器運行在任何的計算機上。這些虛擬機包括相對現代的 Glulx ,或者通過對 Infocom 過去的虛擬機進行逆向工程克隆得到的可愛的古董 Z-machine 。現在,流行的跨平臺解釋器包括如 lectrote 和 Gargoyle 等桌面程序,以及如 Quixe 和 Parchment 等基於瀏覽器的程序。以上所有均為開源軟體。
如其它的流行開源項目一樣,如果 Inform 的發展進程隨著它的成熟而逐漸變緩,它為我們留下的最重要的財富就是其活躍透明的生態環境。對於 Inform 來說,(這些財富)包括前面提到的解釋器、 一套語言擴展 (通常混合使用 Inform 6 和 Inform 7 寫成),當然也包括所有用它們寫成並分享於全世界的作品,有的時候也包括那些原始碼。(在這篇文章的後半部分我會回到這個話題)
互動小說創建工具發明於 21 世紀,力求在傳統的語法解析器之外探索一種新的玩家交互方式,即創建任何現代 Web 瀏覽器都能加載的超文本驅動作品。其中的領頭羊是 Twine ,原本由 Klimas 在 2009 年開發,目前是 GNU 許可證開源項目 ,有許多貢獻者正在積極開發。(事實上, Twine 的開源軟體血統可追溯到 TiddlyWiki ,Klimas 的項目最初是從該項目衍生而來的)
對於互動小說開發來說,Twine 代表著一系列最開放及最可用的方法。由於它天生的 FOSS 屬性,它將其輸出渲染為一個自包含的網站,不依賴於需要進一步特殊解析的機器碼,而是使用開放並且成熟的 HTML、CSS 和 JavaScript 標準。作為一個創建工具,Twine 能夠根據創建者的技能等級,展示出與之相匹配的複雜度。擁有很少或沒有編程知識的用戶能夠創建簡單但是可玩的互動小說作品,但那些擁有更多編碼和設計技能(包括通過開發 Twine 遊戲獲得的技能提升)的用戶能夠創建更複雜的項目。這也難怪近幾年 Twine 在教育領域的曝光率和流行度有不小的提升。
另一些值得注意的開源互動小說開發項目包括由 Ian Millington 開發的以 MIT 許可證發布的 Undum ,以及由 Dan Fabulich 和 Choice of Games 團隊開發的 ChoiceScript ,兩者也專注於將 Web 瀏覽器作為遊戲平臺。除了以上專用的開發系統以外,基於 Web 的互動小說也呈現給我們以開源作品的豐富、變幻的生態。比如 Furkle 的 Twine 擴展工具集 ,以及 Liza Daly 為自己的互動小說遊戲創建的名為 Windrift 的 JavaScript 框架。
程序、遊戲,以及遊戲程序Twine 受益於 一個致力於提供支持的長期 IFTF 計劃 ,公眾可以為其維護和發展提供資助。IFTF 還直接支持兩個長期公共服務:IFComp 和 互動小說歸檔(IF Archive),這兩個服務都依賴並回饋開源軟體和技術。
由 Liza Daly 開發的「Harmonia」的開場畫面
由 Liza Daly 開發的「Harmonia」的開場畫面,該遊戲使用 Windrift 開源互動小說創建框架創建。
自 2014 年以來,用於運行 IFComp 網站的基於 Perl 和 JavaScript 的應用程式一直是 一個共享原始碼項目 ,它反映了 互動小說特有子組件使用的 FOSS 許可證是個大雜燴 ,其中包括那些可以讓以語法解析器驅動的競爭項目在 Web 瀏覽器中運行的各式各樣的代碼庫。在 1992 年上線並 在 2017 年成為一個 IFTF 項目 的互動小說歸檔 (IF Archive),是一套完全基於古老且穩定的網際網路標準的鏡像倉庫,只使用了 一點開源 Pyhon 腳本 用來處理索引。
最後,也是最有趣的部分,讓我們聊聊開源文字遊戲互動小說歸檔的主體 由遊戲組成 ,當然,是那些歷經歲月的遊戲。它們反映了數十年來不斷發展的遊戲設計趨勢和互動小說工具發展。
許多互動小說作品都共享其原始碼,要快速找到它們的快速很簡單 —— 在 IFDB 中搜索標籤 「source available」 。IFDB 是另一個長期運行的互動小說社區服務,由 TADS 的創立者 Mike Roberts 私人運營。對更加簡單的界面感到舒適的用戶,也可以瀏覽互動小說歸檔的 games/source 目錄 ,該目錄按開發平臺和編寫語言對內容運行分組(也有很多作品,由於太繁雜或太古老而無法分類,只能浮於頂級目錄)。
對這些代碼共享遊戲隨機抽取的幾個樣本,揭示了一個有趣的窘境:與更廣闊的開源軟體世界不同,互動小說社區缺少一種普遍認同的方式來授權它生成的所有代碼。與軟體工具(包括我們用來創建互動小說的所有工具)不同的是,從字面意思上講,交互式小說遊戲是一件藝術作品。這意味著,將面向軟體的開源許可證用於交互式小說遊戲,並不會比將其用於其它像散文或詩歌作品更適合。但同樣,互動小說遊戲也是一個軟體,它展示了創建者希望合法地與世界分享的原始碼模式和技術。一個擁有開源意識的互動小說創建者會怎麼做呢?
有些遊戲通過將其代碼放到公共領域來解決這一問題,或者通過明確的許可證,亦或者如 42 年前由 Crowther 和 Woods 開發的「 冒險之旅(Adventure)」 一樣通過社區發布。一些人試圖將其中的不同部分分開,應用他們自己的許可證,允許免費復用遊戲公開的業務邏輯,但禁止針對其散文內容的再創作。這是我在開源自己的遊戲 鶯巢 (The Warbler’s Nest) 時採取的策略。天知道這是否能在法律上站得住腳,但我當時沒有更好的主意。
當然,你會發現一些作品對所有部分使用單一的許可證,而不介意反對者。一個突出的例子就是 Emily Short 的史詩作品「 假冒的猴子(Counterfeit Monkey)」 ,其全部採用 Creative Commons 4.0 許可證發布。 CC 對其應用於代碼感到不滿 ,但你可以認為 Inform 7 源碼這種不尋常的散文風格特性 至少比傳統的軟體項目更適合 CC 許可證。
接下來要做什麼呢,冒險者?如果你希望開始探索互動小說的世界,這裡有幾個連結可供你參考:
如上所述, IFDB 和 互動小說歸檔 都提供了可瀏覽的界面,用於瀏覽超過 40 年價值的互動小說作品。其中大部分可以在 Web 瀏覽器中玩,但有些需要額外的解釋器程序。IFDB 能幫助你找到並安裝它們。 IFComp 的年度結果頁面 展現了另一個視圖,幫助你了解最佳的免費和歸檔可用作品。互動小說技術基金會 是一個非營利組織,主要幫助並支持 Twine、IFComp 和互動小說歸檔的發展,以及提升互動小說的無障礙功能、探索互動小說在教育領域中的應用等等。加入其 郵件列表 ,可以接收 IFTF 的每月資訊,瀏覽其 博客 ,亦或瀏覽 一些主題商品 。在今年的早些時候,John Paul Wohlscheid 寫了這篇 關於開源互動小說工具 的文章。它涵蓋了一些這裡沒有提及的平臺,所以如果你還想了解更多,請看一看這篇文章。via: https://opensource.com/article/18/7/interactive-fiction-tools
作者: Jason Mclntosh 選題: lujun9972 譯者: cycoe 校對: wxy
本文由 LCTT 原創編譯, Linux中國 榮譽推出
點擊「了解更多」可訪問文內連結,