如何在自由文本游戏中让玩家保持方向感
当一款游戏接受键入的指令时,空白的输入行可能会暗示似乎输入任何内容都行得通。玩家需要空间来尝试自己的用词,但他们也需要线索来了解游戏能理解什么,以及每次尝试后发生了什么变化。实际的目标并不是去预测每一个句子,而是让有意义的选项变得可见,展示几个具有代表性的指令模式,并用有用的后续步骤来回应不明确的输入。
为什么开放式文本框会让下一步行动变得不明确
自由形式的输入带来了一种宽泛的可能性感,但游戏的世界模型和解析器(parser)仍然定义了哪些行动可以发生。玩家可能会不确定指令失败究竟是因为动词未被识别、目标对象不存在、表述不完整,还是所描述的行动在游戏中根本没有效果。Emily Short 指出,仅仅指出一个未知单词可能无法告诉玩家应该改试什么;一个明确的目标和一组简短、可见且实用的动词有助于让他们找准方向(“Parser Discussion, Redux”)。
这种区别之所以重要,是因为即使游戏将键入的输入包装为日常语言,它本质上也是在与游戏规则进行对话。只有当玩家的行动能够影响所呈现的世界时,他们的自由才有意义。试图接受每一个能想象到的句子却不提供与之匹配的世界响应,反而会产生游戏无法满足的预期。Short 的设计笔记将解析器的职责界定为:引导玩家使用能够对游戏世界产生有意义影响的表述,同时教会他们该世界支持哪些类型的交互(“Action and Interaction”)。
提供几个可见的选项,但不要让它们变成限制
保持输入框的开放性,但在旁边放置一小批相关的建议。让它们成为与当前场景紧密相连的具体行动:“看便条”、“问玛拉关于渡轮的事”或“试试那扇大门”。这些示例展示了预期输入的格式,并指出了当前的局部可用功能(affordances)。它们应当作为思考的起点来呈现,而不是唯一允许的指令。
一个有帮助的提示也可以指明一个目标和几个核心动词:“查明工坊为什么被锁上了。你可以检查物品、与人交谈,或者在门上试用物品。”这能告诉玩家什么行动可能会推动场景向前发展,而无需强制要求某种特定的解决方案。Short 描述了让解析器游戏平易近人的两种通用方法:通过帮助和建议支持广泛的操作范围,或者保持可用行动集小巧并进行清晰的提示。无论采用哪种方式,所呈现的动词都应当能返回有意义的回应(“Writing Novice-friendly Parser Games”)。
这种平衡是局部的且可调节的。当有许多看似合理的行动时,一个上下文相关的“在这里我可以尝试什么?”提示可以提供一个简短的菜单。当单一目标很明确时,几个例子就足够了。如果某个行动本就应当让玩家自行发现,就不要在提示列表中揭示其解法;相反,应当指出该节点可用的交互类型。其目的在于展示游戏的词汇表和可用交互,而不是巨细靡遗地讲明每一个后果。
通过示例教学指令模式
当示例用于说明可复用的模式而不是列出每一个被接受的句子时,它们最为有用。例如,游戏可以展示“检查 [物品]”、“与 [人物] 谈论 [话题]”以及“对 [对象] 使用 [道具]”。然后它可以实例化其中一两个:“检查黄铜钥匙”或“问玛拉关于渡轮的事”。一致的措辞能教会玩家如何组合行动和目标。只有在游戏确实支持某种句式时,才包含该形式。
在叙事文本和提示中都要明确提及重要的名词。如果场景中描述了一把黄铜钥匙,玩家就应该有理由尝试“检查钥匙”或“拿走钥匙”;默默要求使用另一个隐藏的名称会导致无谓的猜谜。在适用的行动因物品而异的地方,简短的交互提示会很有帮助:“门闩松得足以抬起,”或者“便条两面都有字迹。”Short 建议高亮显示可用的名词并提供建议,以此作为帮助玩家发现可交互内容的方法(“Writing Novice-friendly Parser Games”)。
避免在每个场景中充斥着完整的指令目录。过多的建议会分散对故事的注意力,而列出一个特殊的动词可能会让它变成一个意外的谜题线索。应优先选用简短且特定于场景的集合,并配合 help 指令或可展开的参考手册来提供更广泛的指导。IFComp 的解析器互动小说指南指出,有些游戏会使用可选的教程指导,让玩家在继续阅读故事的同时查阅支持信息(“About IF”)。
让模糊的输入成为简短的澄清,而不是死胡同
当游戏理解了行动但无法判断玩家指的是哪个目标时,提出一个有针对性的问题。如果玩家输入“打开书”,而眼前有两本书,可以回复:“哪本书:书桌上的红皮书还是书架上的蓝皮书?”有效的澄清会使用玩家能够区分的术语来列出备选项。如果缺少必要细节且不存在合理的默认选项,就询问该细节:“你想打开什么?”
技术解析器文档提供了这种交互的具体示例:TADS 描述了让玩家根据可见的颜色在书本之间进行选择,以及在诸如“打开”这类指令缺少目标时单独提示输入对象(TADS Parser: The Parsing Sequence)。更广泛的设计经验在于尽可能保留玩家的原始意图。只澄清缺失的部分,而不是直接丢弃指令让玩家从头再来。
如果游戏可以安全地选择默认值,请告知玩家它选择了什么:“你在花园大门上使用了黄铜钥匙。”如果两种选择可能会产生不同的结果,请改为提问。Emily Short 建议在指令不完整且无法推断出合理默认值时进行提示,并明确区分模糊对象之间的差异(“Action and Interaction”)。
以尊重和指引的态度回应出乎意料的问题
玩家会尝试好玩的、出于好奇的或无关的指令。将这种探索视为正常的参与。避免责备、嘲讽或暗示玩家早该知道规则的回复。相反,在可能的情况下,让回应体现出对玩家意图的理解,然后再将注意力引回场景中。
例如,如果玩家询问工坊的钟表是否知道时间,回应可以说:“钟表滴答作响,但没有给出回答。它旁边的便条上密密麻麻写满了数字。”这在给出简短的世界内反应的同时,将注意力引向了一个可见的线索。如果游戏无法解释该输入,请坦率说明并提供一个临近支持的行动:“我在这里无法理解该操作。你可以检查便条,或者向玛拉询问工坊的事。”避免假装游戏理解了一个它尚未建模的句子;虚假的识别会使后续的结果难以理解。
将输入问题与游戏世界内的结果区分开来。“我不认识该指令”表明存在表述或词汇问题。“大门锁着”表明行动已被理解,但世界状态阻止了它发生。“大门一动不动”表明尝试了行动但没有产生效果。当这些消息具有明确不同的含义时,玩家就可以决定是重新措辞、收集信息,还是尝试其他方法。Short 对解析器反馈的讨论强调了泛泛的拒绝如何让玩家感到困惑,分不清是不支持该动词,还是行动本身超出了游戏世界的范畴(“Parser Discussion, Redux”)。
展示行动已被记录以及发生了什么改变
在一个被理解的指令之后,以有助于玩家采取下一步行动的用语来报告结果。如果玩家打开了柜子,说明现在可以看到什么。如果提问改变了角色的反应,展示一个具体的线索,或告诉玩家他们了解到了什么新信息。如果该行动没有立即产生效果,在角色可以合理解释原因的情况下说明相关缘由。
这是方向感的另一半:玩家需要证据证明他们的行动已传达给游戏,而不仅仅是等待下一次输入的提示符。Short 认为,输出应该揭示与世界交互所需的信息,并且成功的变化应当清晰可见,包括在有实用信号可展示时揭示间接变化(“Action and Interaction”)。保持反馈的适度:描述一把改变了状态的锁、一个新注意到的细节或一个角色肉眼可见的反应,而不是在每条指令后都添加无关的解释。
设计每个回应的实用步骤
对于每个场景,列出重要的行动,然后围绕它们来设计提示和回应。这把“玩家可以输入多少内容?”这个宽泛的问题转化为了一个易于管理的设计任务:“玩家能否看清该场景支持什么、尝试意料之外的想法、理解回复并选出下一步行动?”
识别场景中可操作的物品、人物和即时目标。仅使用实际已被建模或能够被有意义地叙述的细节。
选择几个代表性的行动并将其组织为示例。保持开放式输入可用,并确保任何建议的动词都能如宣传般正常运作。
对可能出现的不明确输入进行分类:未知的行动、未知的目标、缺失的细节、多个可能的目标,或者被理解但无法在当前状态下成功的行动。
为每种情况编写不同的回应。澄清应当提供可识别的选择;不可能的行动应当解释相关的障碍;不支持的行动应当建议一条邻近的路径。
确认成功行动的结果是清晰可见的,并且当玩家再次需要时可以回顾先前揭示的信息。Short 建议提供找回已知信息的方法,这在情节细节或对话影响后续选择时尤其有用(“Action and Interaction”)。
用字面意思的、不完整的、换了措辞的以及玩闹性质的指令来测试该场景。修改任何让测试者无法分辨游戏究竟是误解、拒绝还是接受了行动的回应。
有用的衡量标准并不是游戏能接受多少个句子,而是玩家是否能够理解自己的用词、游戏支持的行动以及随后看到的状态之间的关系。几个可见的选项、教学模式的示例以及清晰而不带批判色彩的反馈,既保留了尝试的空间,又为玩家提供了足够的信息以继续前进。
