开源文字游戏代码
交互式小说技术基金会 (IFTF)是一个非营利性组织,致力于保存和改进使我们称之为交互式小说的数字艺术形式的技术。 当Opensource.com的社区主持人提出有关IFTF,其支持的技术和服务以及它们如何与开放源代码相交的文章时,我发现它与我常说的几十年的故事有着新颖的角度。 IF的历史比现代的FOSS运动更长,但被它深深地迷住了。 希望您在这里能与我分享。
对我而言, 互动小说一词包括其观众主要通过文本与之互动的任何视频游戏或数字作品。 这个词起源于1980年代,当时解析器驱动的文字冒险游戏(由Zork在美国推广 , 《银河漫游者指南》(Hitchhiker's Guide to the Galaxy )和Infocom的其他经典指南)在美国定义了家用计算机娱乐。 到1990年代,它的主流商业生存能力受到干扰,但是在线业余爱好者社区继承了这一传统,发布了游戏和游戏创作工具。
四分之一世纪之后,互动小说现在包括各种各样的作品,从充满谜题的文字冒险到无处不在的内省超文本。 定期的在线比赛和音乐节为细读和演奏新作品提供了一个好地方:英语IF世界每年都举办包括Spring Thing和IFComp在内的年度活动,后者是自1995年以来现代IF的核心,这也使其成为了寿命最长的持续各种类型的跑步游戏展示活动。 IFComp自2017年以来获得的评委和排名都显示出当今基于文本的游戏所拥有的形式,样式和主题的惊人多样性。
(我在上面指定“英语”,是因为IF社区倾向于按语言进行自我隔离,这可能是由于该技术专注于写作。例如,每年还会有法语和意大利语的 IF事件,我听说过至少,这是中国的一个中频音乐节。幸运的是,这些边界是多Kong的;在我管理IFComp的四年中,它欢迎所有国际社会的英语翻译工作。)
同样由于其对文本的关注,IF为游戏和作者身份提供了一些最易于访问的平台。 几乎所有能够阅读数字文本的人,包括诸如文本到语音软件等辅助技术的用户,都可以播放大多数IF作品。 同样,IF创作向所有愿意学习和使用其工具和技术的作家开放。
这使我们了解了IF与开放源代码的长期合作关系,这有助于使艺术形式自商业鼎盛以来就可以使用。 我将提供当代开放源码IF创建工具的概述,然后讨论共享其源代码的IF作品的古老且有时是好奇的传统。
许多开发平台都是开放源代码,可用于创建传统的解析器驱动的IF,用户可以在其中输入命令,例如, go north,
get lamp
, pet the cat
或ask Zoe about quantum mechanics
与游戏世界互动。 在1990年代初期,出现了一些对黑客友好的解析器游戏开发工具包; 今天仍在使用的软件包括TADS , Alan和Quest,它们都已开放,而后两个具有FOSS许可证。
但是到目前为止,最突出的是Inform ,该信息由Graham Nelson于1993年首次发布,现在由Nelson领导的团队维护。 Inform Source是半开放的,以一种不寻常的方式进行:Inform 6是先前的主要版本, 可通过Artistic License来使用其源 。 这具有比直接关系更直接的相关性,因为原本专有的Inform 7以Inform 6为核心,将其非凡的自然语言语法转换成其前身的更像C的代码,然后再将其编译为机器代码。
通知游戏在虚拟机上运行,这是Infocom时代的遗物,当时该发行商将VM定位为VM,因此它可以编写可以在Apple II,Commodore 64,Atari 800和其他“ 家用计算机 ”版本上运行的游戏。 ” 如今,流行的操作系统已经很少了,但是Inform的虚拟机(相对较新的Glulx或迷人的古董Z-machine ,即Infocom历史VM的反向工程克隆)允许由Inform创建的工作在任何具有Inform解释器的计算机上运行。 当前,流行的跨平台解释器包括桌面程序(如Lectrote和Gargoyle)或基于浏览器的程序(如Quixe和Parchment) 。 全部都是开源的。
如果Inform的发展步伐日趋缓慢,那么它就必须通过一个活跃而透明的生态系统发挥至关重要的作用,就像其他流行的开源项目一样。 在Inform的情况下,其中包括上述解释程序, 语言扩展的集合 (通常以Inform 6和7混合编写),当然,所有与它一起创建并与世界共享的工作,有时包括源代码(我在本文后面将返回该主题)。
21世纪发明的IF创建工具趋向于探索传统解析器之外的播放器交互,生成超文本驱动的工作,任何现代Web浏览器都可以加载。 其中最主要的是Twine ,它最初由Chris Klimas于2009年开发,如今已作为GNU许可的开源项目由许多贡献者积极开发。 (实际上, Twine可以将其OSS沿袭追溯到TiddlyWiki ,该项目是Klimas最初从其获得的项目。)
Twine代表了一种最大的开放和可访问的 IF开发方法:除了自身的FOSS特性外,Twine还将其输出呈现为独立的网站,它不依赖于需要进一步专业解释的机器代码,而是依赖于HTML的开放且易于执行的标准, CSS和JavaScript。 作为创意工具,Twine可以将其自身暴露的复杂性与创作者的技能水平相匹配。 很少或没有编程知识的用户可以创建简单但可玩的IF工作,而具有更多编码和设计技能的用户(包括那些通过制作Twine游戏开发这些技能的用户)可以开发更复杂的项目。 难怪Twine在教育环境中的知名度和受欢迎程度在最近几年已经增长了很多。
其他值得关注的开源IF开发的项目包括MIT许可Undum伊恩·米林和ChoiceScript丹Fabulich和游戏的选择团队它们也都瞄准了Web浏览器的游戏平台。 除了这些严格的开发系统之外,基于Web的IF还为我们提供了一个丰富而不断变化的开源工作生态系统,例如Furkle的Twine扩展工具集合和Liza Daly的Windrift (一个为自己的IF专门构建JavaScript框架)游戏。
Twine受益于一项长期的IFTF计划,该计划致力于提供支持 ,使公众可以为其维护和发展提供资金。 IFTF还直接支持两个长期的公共服务,即IFComp和IF Archive,这两个服务都依赖于开放式软件和技术并对其作出贡献。
自2014年以来,运行IFComp网站的基于Perl和JavaScript的应用程序一直是一个共享源项目 ,它反映了其IF特定子组件所使用的FOSS许可证的 ste跷,包括允许解析器进行分析的各种代码库。推动比赛参赛作品在网络浏览器中运行。 IF档案库-自1992年以来一直在线,而IFTF项目自2017年以来一直 -是一组完全基于古老且稳定的互联网标准的镜像存储库,并带有少量开源Python脚本来处理索引。
当然,存档中的大部分内容包括游戏 -多年的游戏,反映了数十年来不断发展的游戏设计趋势和IF工具开发。
许多IF工作共享其源代码,并且社区的快速入门解决方案很简单: 在IFDB中搜索“源可用”标签 。 (IFDB是又一个长期运行的IF社区服务,由TADS的创建者Mike Roberts私下运行。)习惯于使用更为简捷的界面的用户可能还希望浏览IF Archive 的/games/source
目录 ,该目录通过开发平台和书面语言对内容进行分组(还有很多工作太杂乱或太古老而无法在顶部进行浮动分类)。
这些代码共享游戏的一些随机抽样揭示了一个有趣的难题:与广泛的开源软件世界不同,IF社区缺乏一种普遍认可的许可方式来许可其生成的所有代码。 与软件工具(包括我们用于构建IF的所有工具)不同,交互式小说游戏从最真实的意义上讲是一件艺术品,这意味着用于软件的开放源代码许可证比其他任何作品都适合它散文或诗歌。 但是话又说回来,IF游戏也是一种软件,它展示了其创建者可能合法希望与世界分享的源代码模式和技术。 开源的IF创建者应该做什么?
一些游戏通过显式许可或(例如, Crowther和Woods最初拥有42年历史的Adventure)通过社区命令将其代码传递到公共领域来解决此问题。 有些人试图打破差异,发行自己的许可,允许免费重用游戏的公开业务逻辑,但禁止创作专门从其散文衍生的作品。 这是我打开自己的游戏《 The Warbler's Nest》的来源时采取的策略。 洛德(Lord)知道在法庭上能站得住脚,但当时我没有更好的主意。
自然地,您会发现将所有内容置于一个通用许可之下的工作,而不必介意反对者。 一个著名的例子是艾米丽·肖特 ( Emily Short)的史诗般的《 假冒猴子》 ,该书是根据知识共享4.0许可整体发行的。 CC对其代码的应用程序皱着眉头 ,但您可能会争辩说,Inform 7源代码具有奇怪的散文状性质,使得它与CC许可证的兼容性至少比更传统的软件项目更兼容。
如果您渴望开始探索互动小说的世界,请查看以下链接:
如上所述, IFDB和IF存档都提供了可浏览的界面,可用于收集40多年的交互式小说作品。 其中大部分可以在Web浏览器中播放,但有些需要其他解释程序。 IFDB可以帮助您找到并安装它们。
IFComp的年度结果页面提供了另一种观点,使人们可以最好地利用这项免费的存档工作。
交互式小说技术基金会是一个慈善性的非营利组织,致力于为Twine,IFComp和IF档案提供支持,并改善IF的可访问性,探索IF在教育中的用途等。 加入其邮件列表以接收IFTF的每月时事通讯, 细读其博客 ,并浏览一些主题商品 。
John Paul Wohlscheid在今年早些时候撰写了有关开源IF工具的文章 。 它涵盖了此处未提及的某些平台,因此,如果您仍然渴望更多,请看看。
翻译自: https://opensource.com/article/18/7/interactive-fiction-tools
开源文字游戏代码