Gnome-Inform7 简介 - 第 2 部分

这是 Gnome-Inform7(以及 Inform 7 语言的扩展)两部分介绍的第二部分。我不会花太多时间回顾上次的内容,所以如果您还没有阅读第一部分,请立即阅读。

上次我们完成的游戏世界只包含一个房间。如果这还不够糟糕的话,房间里什么都没有,游戏也不可能获胜。

所以,首先,让我们启动 gnome-inform7,在休息室里放一些物品,并为它们的工作方式设置一些规则。如果您没有第一部分的源代码。下载文件“the-server-room-pt1-source.txt”,并将其复制粘贴到一个新的 Inform 7 项目中。现在将以下代码添加到项目的末尾


桌子在休息室里。描述是“这是一张桌子。您还期待什么?”

如果要拿桌子,请说:“让我为您拼写出来:这是一张 [bold type]桌 子[roman type],而您 [bold type]不是[roman type] 超级英雄。您是一个极客,您的体格证明了这一点。”

您的背包是一个可关闭的可打开容器。您的背包在桌子上。描述是“这是您的背包。[if closed] 目前是关闭的。” 将“包”或“背包”理解为您的背包。背包是可穿戴的。

您的背包里有光盘。光盘的描述是“自动恢复 CD,保证几乎可以修复任何服务器。

好的,它只是一张自动安装 Ubuntu 的安装 CD,但是,嘿,如果它有效,那就行了。”

将“Ubuntu”或“disk”理解为光盘。

第一次打开背包后:奖励 2 分;说“您打开背包,露出了您的 Ubuntu 光盘。”

第一次拿起光盘后:奖励 2 分;说“您拿起 Ubuntu 光盘。”

上面的代码中有很多内容。如果您还记得上次的内容,[bold type] 和 [roman type] 标签已经返回。我当时承诺我会介绍它们,所以现在就开始吧。简而言之,Inform 使用这些标签来设置字体。它的工作方式类似于多位置开关:您转到一个位置,然后再转到另一个位置,再转到另一个位置,但开关不能同时位于两个(或更多)位置。除此之外,您还需要确保在完成后将其转回默认设置(roman type)。

乍一看,这似乎相当有限制,而且,说实话,确实如此。但是这种行为有一个很好的理由:Z-Code 游戏可以在各种各样的平台上运行,如果您在文本样式方面被赋予过多的自由,您将在游戏中引入各种不兼容性。这并不是说没有扩展程序允许您以花哨的方式更改字体 --- 确实有 --- 但默认情况下,Inform7 试图生成可以在尽可能多的平台上运行的游戏。

上面代码中的另一个带括号的语句是“[if closed]”,这是一个简单的 Inform7 风格的“if...”语句。它基本上输出背包状态为“closed”时紧随其后的文本。

说到状态,在 Inform 7 中描述对象时,您可以将几种状态或特征应用于它们。例如,支撑物是一个对象,例如桌子,您可以在其上放置其他对象。容器是一个对象,您可以将其他对象放入其中。您还可以指定容器是关闭还是打开,以及容器是否可以打开。

一旦您声明了一个对象,它们就会继承许多通用属性。例如,游戏中的大多数对象都可以被拿起并随身携带。这对于背包和 Ubuntu 光盘对象来说很好,但是对于玩家拿起桌子对象(更不用说随身携带)来说就很傻了,所以我们加入了一些代码来禁止它。

创建对象时要记住的另一件事是,您需要描述它们在哪里以及它们是什么。每个对象和房间都应该存在描述。描述可以是愚蠢而有趣的,也可以是平淡而严肃的 --- 您的选择取决于您想要讲述的故事的基调和类型。

我们可以用更多的对象填充第一个房间,并通过添加抽屉、电器等使对象更具互动性。但这将留给“扩展版”。现在让我们规划出与我们之前创建的休息室相连的房间,参考我们的世界图,以确保它们位于它们应该在的位置。


我们的游戏世界的简单图表。


休息室的东边是外部世界。

休息室的西边是走廊。

走廊的北边是服务器机房。走廊的西边是洗手间。

如果要从休息室向东走,请说:“您向外看了一眼,觉得最好还是别去了。今天的太阳太亮太可怕了,无法面对。再说,您还有工作要做。”

走廊是一个房间。“这个走廊缺乏特色、装饰,甚至没有足够的照明,简直是再普通不过了。门向东通往休息室,向北通往服务器机房,或向西通往洗手间。”

洗手间是一个房间。如果要向西去洗手间,请说:“当大自然呼唤时,您会知道的,但现在,它并没有呼唤。”

关于上面代码的主要注意事项是,“外部世界”和“洗手间”房间已定义,但我们不允许玩家进入它们。这是游戏的扩展版的又一个项目。

游戏中的最后一个房间是“服务器机房”。这是一个重要的房间,它和里面的物体比我们目前看到的要复杂得多。


如果要从走廊向北走,请说:“您使用钥匙卡打开服务器机房的门,然后走进您的世界。”

服务器机房是一个房间。“风扇、灯光、寒冷……是的,这是一个服务器机房。里面摆满了来自十几个不同制造商的服务器,每个服务器都有自己的怪癖。[paragraph break]您的注意力立即被吸引到 7 号机架向上 2/3 位置的服务器上。小指示灯呈红色闪烁,并且发出蜂鸣声。”

Dell 是服务器机房的布景。将“server”、“machine”和“computer”理解为 dell。dell 的描述是“这台古老的 Dell 服务器上的指示灯呈橙色闪烁。正面的其余部分没有特色,除了 CD 托盘。蜂鸣声似乎是从服务器内部发出的。”

CD 托盘是 dell 的一部分。它是一个可关闭的可打开容器。

每回合在服务器机房中,说“[one of] 蜂鸣声快把您逼疯了。[or] 蜂鸣声太吵了,很难思考。[or] 蜂鸣声的单调令人发狂。[or] 无法……工作……太多……蜂鸣声……[完全随机]”

第一次打开 CD 托盘后:奖励 2 分;说“您按下按钮,CD 托盘弹出。假设您有光盘,您可以将其放入并一劳永逸地停止蜂鸣声。”

服务器机房中的服务器对象是我们以前没有见过的类型。它是一个“布景”对象。因此,它继承了某些特征。首先,由于布景被认为是背景的一部分,因此当玩家进入房间或发出“look”命令时,不会特别提及它。默认情况下,布景对象也不能被拿起并带到其他地方。

您可能已经注意到,对于服务器机房的主要描述,我没有以“描述是……”开头。在可能的情况下,如果可以从上下文中合理推断出您的意思,Inform7 允许您省略某些内容。就房间描述而言,它们通常在首次声明房间存在之后出现,因此当 Inform7 看到引号时,它就知道后面很可能是刚刚创建的房间的描述。

“服务器机房”房间的主要特征是服务器,它是赢得游戏的关键,以及来自服务器的蜂鸣声。如果每回合都说一句话,蜂鸣声会变得非常单调,因此为了增添趣味,我们使用 Inform7 的方括号代码随机显示一系列短语。

剩下的唯一任务是建立获胜条件并结束游戏


每回合:如果光盘在 CD 托盘中并且 CD 托盘已关闭,则以胜利结束游戏。

当游戏以胜利结束时结束游戏时,说“将 CD 放入托盘后,您快速重启服务器。[paragraph break]在 bios 发布后,您的光盘开始工作,您很快就会发现服务器正在愉快地运行 Ubuntu,更重要的是,蜂鸣声已经停止。耶!”。

就这样。现在我们可以进行游戏测试,然后编译它。“the-server-room-source.txt”文件包含完整的源代码,“The_Server_Room.z5”文件是编译后的版本。

要测试游戏,请单击“Go”按钮。“Documentation”窗格将自动切换到“Errors”窗格,以向您显示编译进度和弹出的任何错误,并且假设没有任何错误,窗格应随后切换到“Game”选项卡并开始运行您的游戏。


准备测试完成的游戏。

要测试游戏,我们将通关完成游戏。这是一个示例演练


向东走
检查背包
打开背包
获取光盘
x 光盘
穿上背包
向西走
w
n
检查服务器
x 托盘
打开托盘
将 Ubuntu 光盘放入托盘
关闭托盘

从上面的演练中,您可以看到在典型的 IF 游戏中与对象交互的一些方式,以及如何在房间之间移动。如果您愿意,您可以在旅行时使用详细的说法,例如“向北走”,或者您可以只说“north”,或者您可以通过只输入“n”来进一步缩写。对于“examine”动词也可以这样做 --- 您可以完全输入它,或者只使用“x”。

假设上面的命令有效,并且游戏以胜利结束,我们可以使用“Release”按钮制作一个合适的 z-code 文件与世界分享。随着多年来添加到 Inform 中的所有功能,它现在能够创建比原始 Z-Code 解释器能够处理的更大更复杂的世界。因此,您可以选择将游戏编译为几种不同的格式。Z-code 版本 5 与经典的 Inform 文本冒险游戏最相似,最大允许大小为 256 KB。版本 8 类似,但使完成游戏的允许大小加倍。版本 6 是一个支持简单图形的版本,但如果您想在游戏中包含图形,最好使用 Glulx 选项,该选项允许游戏大小高达 4GB。对于所有不同的选项,您可以选择将您完成的故事卷成一个“blorb”文件,该文件可以包含各种补充文件,例如封面艺术、地图等等。您可以从设置选项卡中选择这些选项。


可用的导出设置。

我们创建的游戏非常小,因此我们可以使用“Z-code version 5”选项发布它。并且由于没有任何地图或启动画面,因此没有理由选择“Blorb”选项。按下发布按钮后,它会提示您保存文件的位置,我们就完成了。现在可以使用不同平台上的各种解释器来玩游戏。在 Linux 上,主要的两个是 Frotz 和 Zoom。


使用 Zoom 玩游戏。


使用 Frotz 玩游戏。

这两个解释器非常相似。主要区别在于 Zoom 可以打开 .blorb 文件,而 Frotz 不能。在这两者中,Frotz 存在的时间更长,并且更广泛可用。它可能在您的发行版的应用程序存储库中。每个主页的链接都在在线资源部分。

所以,现在我有了 .z5 文件,我就完成了“服务器机房”吗?没门。

首先,房间太简陋了。尤其是休息室应该有更多的东西。一个装有食物和苏打水的冰箱,以及一台工作(或不工作)的咖啡机,会让房间更有趣。而且游戏的主要情节也太简单了。添加一些谜题(例如,使 Ubuntu 光盘更难获得)将是一个好的开始。

此外,当我在现实生活中走进一个装满服务器的房间,其中一台服务器发出蜂鸣声时,有时很难确定哪个是罪魁祸首。在现在的游戏中,识别是自动的,但在未来的版本中,将其变成一个谜题会很好。

另一个要添加的好东西是一个或多个非玩家角色 (NPC),这些角色可以设计为帮助玩家或阻碍玩家。

但是现在游戏中的内容是一个良好的开端,就像一个洞穴探险家一样,我可以不断添加房间,就像我“发现”它们一样。

查找和玩互动小说

如果您想体验最好的互动小说,以及其他的,那么要查找的地方是互动小说档案馆。它是地球上最大的互动小说收藏。有数百款游戏可供下载和玩,其中许多都提供源代码。几乎所有已制作且可以合法重新分发的互动小说都位于此处。在互动小说档案馆中,还有自 1995 年至今每年参加互动小说比赛的所有游戏。

互动小说档案馆中可用的内容太多了,有时很难找到您要查找的内容。因此,如果互动小说档案馆让您感到不知所措,我建议您访问 Baf 的互动小说档案馆指南。您应该查看的其他资源包括 Brass Lantern 和 SPAG(冒险游戏推广协会)。

至于实际玩互动小说,网上有几个指南可供选择。链接在在线资源部分。

结论

感谢围绕它涌现的社区,互动小说拒绝消亡。即使今天创建的大多数互动小说本质上是非商业性的(许多都免费且容易获得源代码),但仍然至少有一家商业出版商每年发布几次新作品。还有定期举办的比赛,展示各种类型和游戏风格的最佳新作品。

感谢 Inform 等产品,任何人都可以创建自己的游戏并与世界分享。您无需了解复杂的 3D 建模和动画,也不必拥有自己的录音棚或程序员和艺术家团队来创建一款精彩的游戏。您只需要您的想法。

最后,除了创造的满足感之外,互动小说还为玩家提供了一种独特的游戏形式。在我们这个娱乐被喂到嘴边,并被精确地展示其外观、声音和动作的时代,启动一部新的或旧的互动小说,迷失在仅以屏幕上的文字和脑海中的图像存在的世界中,这是一件很美好的事情。

现在请原谅我,我身处曲折通道的迷宫中,一切都不同,一个恶鬼拿着刀在跟踪我,我把斧头掉在了……某个地方。

在线资源

维基百科关于互动小说的条目

Inform 网站

下载 Inform

Infocom “主页”

Frotz 主页

Zoom 主页

互动小说档案馆

Baf 的互动小说档案馆指南

冒险游戏推广协会

Brass Lantern

互动小说游戏指南

另一份互动小说游戏指南

又一份互动小说游戏指南

Brass Lantern Linux 解释器指南

Malinche Entertainment - 最后一家或最后一家互动小说商业出版商

加载 Disqus 评论