互動小說及其開源簡史
瞭解開源如何促進互動小說的成長和發展。
互動小說技術基金會(IFTF) 是一個非營利組織,致力於保護和改進那些用來生成我們稱之為互動小說的數字藝術形式的技術。當 Opensource.com 的一位社群版主提出一篇關於 IFTF、它支援的技術與服務,以及它如何與開源相交織的文章時,我發現這對於我講了數幾十年的開源故事來說是個新穎的視角。互動小說的歷史比自由及開源軟體(FOSS)運動的歷史還要長,但同時也與之密切相關。希望你們能喜歡我在這裡的分享。
定義和歷史
對於我來說,互動小說這個術語涵蓋了讀者主要通過文字與之互動的任何視訊遊戲或數字化藝術作品。這個術語起源於 20 世紀 80 年代,當時由語法解析器驅動的文字冒險遊戲確立了什麼是家用電腦娛樂,在美國主要以 魔域、銀河系漫遊指南 和 Infocom 公司的其它佳作為代表。在 20 世紀 90 年代,它的主流商業價值被挖掘殆盡,但線上愛好者社群接過了該傳統,繼續釋出這類遊戲和遊戲建立工具。
在四分之一個世紀之後的今天,互動小說包括了品種繁多並且妙趣橫生的作品,如從充滿謎題的文字冒險遊戲到衍生改良的超文字型別。定期舉辦的線上競賽和節日為品鑑和試玩新作品提供了個好地方—英語互動小說世界每年都會舉辦一些活動,包括 Spring Thing 和 IFComp。後者是自 1995 年以來現代互動小說的核心活動,這也使它成為在同型別活動中持續舉辦時間最長的遊戲展示活動。IFComp 從 2017 年開始的評選和排名記錄 顯示瞭如今基於文字的遊戲在形式、風格和主題方面的驚人多樣性。
(作者注:以上我特指英語,因為可能出於寫作方面的技術原因,互動小說社群傾向於按語言進行區分。例如也有 法語 或 義大利語 的互動小說年度活動,我就聽說過至少一屆的中文互動小說節。幸運的是,這些邊界易於打破。在我管理 IFComp 的四年中,我們很歡迎來自國際社群的所有英語翻譯工作。)
在直譯器 Lectrote 上啟動 Emily Short 的“假冒的猴子”新遊戲(二者皆為開源軟體)。
此外由於互動小說專注於文字,它為玩家和作者都提供了最方便的平臺。幾乎所有能閱讀數字化文字的人(包括能通過文字轉語音軟體等輔助技術閱讀的使用者)都能玩大部分的互動小說作品。同樣,互動小說的創作對所有願意學習和使用其工具和技術的作家開放。
這使我們瞭解了互動小說與開源的長期關係,以及從它的全盛時期以來,對於藝術形式可用性的積極影響。接下來我將概述當代開源互動小說建立工具,並討論共享原始碼的互動小說作品古老且有點稀奇的傳統。
開源互動小說工具的世界
一些開發平臺(其中大部分是開源的)可用於建立傳統的語法解析器驅動互動小說,其中使用者可通過輸入命令(如 向北走
、拾取提燈
、收養小貓
或 向 Zoe 詢問量子機械學
)來與遊戲世界互動。20 世紀 90 年代初期出現了幾個適於魔改的語法解析器遊戲開發工具,其中目前還在使用的有 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 和互動小說歸檔,這兩個服務都依賴並回饋開源軟體和技術。
由 Liza Daly 開發的“Harmonia”的開場畫面,該遊戲使用 Windrift 開源互動小說建立框架建立。
自 2014 年以來,用於執行 IFComp 網站的基於 Perl 和 JavaScript 的應用程式一直是 一個共享原始碼專案,它反映了 互動小說特有子元件使用的 FOSS 許可證是個大雜燴,其中包括那些可以讓以語法解析器驅動的競爭專案在 Web 瀏覽器中執行的各式各樣的程式碼庫。在 1992 年上線並 在 2017 年成為一個 IFTF 專案 的 互動小說歸檔,是一套完全基於古老且穩定的網際網路標準的映象倉庫,只使用了 一點開源 Pyhon 指令碼 用來處理索引。
最後,也是最有趣的部分,讓我們聊聊開源文字遊戲
互動小說歸檔的主體 由遊戲組成,當然,是那些歷經歲月的遊戲。它們反映了數十年來不斷髮展的遊戲設計趨勢和互動小說工具發展。
許多互動小說作品都共享其原始碼,要快速找到它們的快速很簡單 —— 在 IFDB 中搜尋標籤 “source available”。IFDB 是另一個長期執行的互動小說社群服務,由 TADS 的創立者 Mike Roberts 私人運營。對更加簡單的介面感到舒適的使用者,也可以瀏覽互動小說歸檔的 games/source 目錄,該目錄按開發平臺和編寫語言對內容執行分組(也有很多作品,由於太繁雜或太古老而無法分類,只能浮於頂級目錄)。
對這些程式碼共享遊戲隨機抽取的幾個樣本,揭示了一個有趣的窘境:與更廣闊的開源軟體世界不同,互動小說社群缺少一種普遍認同的方式來授權它生成的所有程式碼。與軟體工具(包括我們用來建立互動小說的所有工具)不同的是,從字面意思上講,互動式小說遊戲是一件藝術作品。這意味著,將面向軟體的開源許可證用於互動式小說遊戲,並不會比將其用於其它像散文或詩歌作品更適合。但同樣,互動小說遊戲也是一個軟體,它展示了建立者希望合法地與世界分享的原始碼模式和技術。一個擁有開源意識的互動小說建立者會怎麼做呢?
有些遊戲通過將其程式碼放到公共領域來解決這一問題,或者通過明確的許可證,亦或者如 42 年前由 Crowther 和 Woods 開發的“冒險之旅” 一樣通過社群釋出。一些人試圖將其中的不同部分分開,應用他們自己的許可證,允許免費複用遊戲公開的業務邏輯,但禁止針對其散文內容的再創作。這是我在開源自己的遊戲 鶯巢 時採取的策略。天知道這是否能在法律上站得住腳,但我當時沒有更好的主意。
當然,你會發現一些作品對所有部分使用單一的許可證,而不介意反對者。一個突出的例子就是 Emily Short 的史詩作品“假冒的猴子”,其全部採用 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
訂閱“Linux 中國”官方小程式來檢視
相關文章
- Python基礎(相關歷史、互動、簡單流程控制)Python
- 簡單互動
- Google AR 互動的開源與幕後Go
- 電子遊戲互動簡史:從“電子玩具”到“第九藝術”遊戲
- 微軟開源 Try .NET - 建立互動式.NET文件微軟
- 互站網48元買的小說程式原始碼 自動採集原始碼
- 遊戲製作人傅真:我是如何把小說做成互動故事的遊戲
- 爬蟲開源專案及其思想爬蟲
- python——socket實現簡單C/S互動開發Python
- 小說網站-自動收集小說功能-Django專案網站Django
- 開發者談遊戲互動小說創作的七個需要關注的問題遊戲
- 革命性移動端開發框架-Flutter時間簡史框架Flutter
- 元件化開發跨module互動方式—ModuleBus互動元件化
- 元件化開發跨module互動方式---ModuleBus互動元件化
- 小說網站製作,小說網站原始碼,小說網站定製開發,小說網站建設網站原始碼
- JavaScript開發工具簡明歷史JavaScript
- C# 與 javascript 簡單互動C#JavaScript
- 可商用的手機app《9秒小說閱讀器》開源APP
- Go語言中的互動式CLI開發:survey庫簡介Go
- iOS開發-javaScript互動iOSJavaScript
- 開源網格VPN meshboi及其背後原理
- 1.docker概述及其歷史Docker
- 有聲小說系統原始碼,小說聽書成品搭建,小說漫畫功能開發原始碼
- 中國對話體小說:站上了互動賽道,但還缺好的商業模式模式
- Flutter WebView與JS互動簡易指南FlutterWebViewJS
- 簡約至上(互動設計四策略)
- 前端簡史前端
- HTTP 簡史HTTP
- Vue簡史Vue
- java簡史Java
- Web簡史Web
- JavaScript 簡史JavaScript
- tp5仿阿里小說站,後臺自動採集小說阿里
- 深入應用linux及其它開源產品Linux
- 微服務1:微服務及其演進史微服務
- 互聯-創新:軟通動力開源鴻蒙科技總部落戶無錫鴻蒙
- JockeyJS——優秀的WebView與JS互動開源庫使用和解析JSWebView
- odoo 開發入門教程系列-QWeb簡史OdooWeb