跳转至

Ludo Atlas · 类型手册 · 文字冒险(Interactive Fiction)

类型手册 · 第二辑。定位:以文字为第一载体的类型开发手册,把「读、想、决定、看后果」做成全部体验;覆盖解析式与选择式两大流派,从状态追踪、文本预算一路写到结局与重玩。 配套:《游戏设计手册》(叙事与分支成本)·《案例研究集》(作品拆解)·《避坑大全》(设计与内容生产)·《独立开发生存手册》(范围与排期)。


1. 定位与核心循环

一句话定位:文字冒险(也叫互动小说,IF)把文字当作引擎。场景由句子搭出来,行动用命令或选项表达,世界的变化全部写回文本;界面、图片与声音是配角,不是骨架。

两大流派先认清:

维度 解析式(parser-based) 选择式(choice-based)
玩家输入 自由文本命令(look、take lamp) 从若干选项里挑一条
世界模型 工具内建:房间、物品、动词、规则 作者维护:段落、旗标、变量
上手门槛 高,要学命令写法与词库 低,认识字就能玩
写作重心 场景描写与规则响应 段落结构与差分文本
代表工具 Inform 7、TADS Twine、Ink、ChoiceScript
代表作品 Zork、巨洞冒险 80 Days、Choice of Games 系列

核心循环用动词环写:

  • 选择式:读一段 → 做选择 → 状态改变 → 文本回指刚做的决定 → 接着读
  • 解析式:读场景 → 输入命令 → 解析与判定 → 世界变化写回描述 → 再输入

两条环的黏性来源相同:文字把世界立起来,状态让世界记住玩家。区别在表达决定的方式,以及世界模型的维护成本由谁承担,解析式由工具代管,选择式全在作者手上。

与相邻类型划边界:

相邻类型 边界
视觉小说 视觉小说以立绘、演出与配音为展示层;文字冒险的展示层就是文字本身,交互只有命令与选项
点击冒险 点击冒险用鼠标与物品谜题推进,画面是主角;文字冒险的描写与交互都由文本承担
MUD 与文字世界 多人在线、持续运行、以社交与长期积累为主;文字冒险是单人、读完即收的作品
挂机文字游戏 挂机把数值成长当主轴、文本当皮肤;文字冒险里文本就是内容,数值只是状态的记法

一个自检问题:把全部文本替换成干巴巴的同义版本,游戏还成立吗?答案若仍为「成立」,你要做的可能是系统设计,而不是文字冒险。

2. 玩家体验目标与标杆作品

体验目标就是文本要兑现的承诺:

体验目标 玩家内心的声音 设计着力点
代入与代理感 「我说了算」 选择有真实代价;世界回指玩家做过的事
好奇心与发现 「这里还能做什么」 可试验的世界规则、秘密空间、动词实验
选择的重量 「我得想想」 信息不足时的取舍;代价看得见
文字本身的快感 「这句话写得好」 描写密度与文风;朗读测试把关
可信的世界 「它讲道理」 同一动作在不同场景都有合理响应
舒适与自主 「想停就停」 随时存档、回退、字号、跳过已读

标杆作品(只用大众熟知名单,建议亲手玩过再拆):

作品 一句话背景 可借鉴点
巨洞冒险(Colossal Cave Adventure) 1977 年,文字冒险的起点 用文字建模空间的原型手法:房间、物品、谜题
Zork Infocom 的解析式黄金标准 世界模型的完整度与幽默文风;错误提示也是内容
银河系漫游指南 Infocom 的授权改编 把原作语气搬进命令响应,改编写作范本
80 Days inkle 的环球旅行叙事 选择式加资源压力;分支高度复用,写作效率范本
Choice of Games 系列 ChoiceScript 平台的流水线作品 变量追踪与多结局的工业化做法,逐周目差分
生命线(Lifeline) 手机端选择式 实时等待与通知把「等待」做成叙事手段
AI Dungeon 生成式文字冒险 生成文本的稳定性与作者缺席问题,公开的教训样本

解析式作品至少亲手玩两小时;命令界面的容忍度与挫败感,看视频感受不到。

3. 设计要点

3.1 先做流派选型

选型先回答四个问题:

问题 偏解析式 偏选择式
玩家在哪玩 键盘、坐得住、愿意学 触屏、碎片时间、零学习
谁维护世界 接受工具代管规则 愿意亲手登记每处状态
写作习惯 擅长描写与规则响应 擅长段落与分支结构
发布形态 经典解释器与爱好者社区 网页、手机、主流平台

第一次做,建议选选择式:门槛低、反馈快、作品能完整收尾。解析式是更高门槛的传统派,也是动词实验与拟真世界的独特入口。

两条混合路线值得知道:命令按钮化(把常用动词做成可点按钮,绕开输入与输入法问题);选择加状态(选项之外维护世界模型,80 Days 就是这条路)。中文环境做解析式,输入要额外设计:动词面板、名词高亮点击、同义词容错,都得人肉配齐。

3.2 状态与变量:世界模型心态

写作者脑子里要有一台「世界模型」:世界有哪些状态、什么动作改它、改完哪些文本跟着变。旗标多不等于世界活,能被玩家读到的回写才算数。

变量按类别登记,够用且不臃肿:

类别 记录什么 示例 回写方式
世界状态 门、机关、物品位置 大门已解锁 再经过时描述改一句
角色状态 玩家的能力与处境 受伤、被通缉 旁白与 NPC 反应变化
关系与态度 NPC 对玩家的立场 信任度、欠债 称呼与台词差分
知识 谁知道什么 玩家已知凶手 解锁新选项、避免说错话
元进度 跨周目的记录 已见结局 章节选择、旁白提示

五条纪律:

  • 先登记再动笔:变量表写清名字、类型、初值、读写点、影响的段落;没登记的变量不许引用。
  • 少而深胜过旗标堆:十个能相互组合的维度,比一百个布尔旗标更像活的世界。
  • 差分优先:改一句话能解决的,不新开一条线;大分支留给关键抉择。
  • 可感知的回写:状态变了,玩家必须能读到(描述、称呼、选项的出现与消失)。读不到的变化等于没做。
  • 结项对账:用脚本核对三件事,引用了没定义的、定义了没触发的、触发了没人读的。

3.3 文本预算与写作流程

先算账再动笔。按「每千字含差分、测试、修订的总成本」估算,别只算初稿;文字类型的文本成本天然高于纯散文,因为每句话背后有状态与分支的账。

写作流程按顺序执行:

  1. 一页纸骨架:故事是什么、玩家做什么、结局有几个。
  2. 结构图:选择式先画段落图(节点、分歧、收敛点),解析式先列房间图与动词表。图上没有的结构,正文里不允许出现。
  3. 初稿:一口气写完一条完整路线,先让故事成立。
  4. 状态与差分回填:按变量表把回写点补齐,这一步最容易漏,也最伤体验。
  5. 修订:定稿前删掉 10%-20%,开头砍得最狠;慢热是文本类型的第一差评来源。
  6. 朗读测试:出声读一遍,读不顺的句子改掉;请人朗读,观察他停在哪里、重读哪里。
  7. 集成与全通关测试:文本进工具跑一遍,对照提示与资产逐项过。

工具链习惯:正文与逻辑分离,正文放独立文件或表格;字数统计做成看得见的进度数字,长篇项目靠它续命。

3.4 结局与重玩

结局先行:先定结局集合与达成条件(一张结局矩阵表),再回头写通向它们的路。结局是作品的态度,数量不是。

设计项 做法
首周目 必须自足:多数玩家只通关一次,最好的内容放在必经之路上
结局矩阵 每行一个结局:名称、条件、情绪定位、首周目可达性
重玩钩子 新视角段落、旁白差分、状态回收、结局清单与成就
顺滑重玩 跳过已读、章节选择、周目继承,别逼玩家重走三里路
收尾一场戏 给一次回望:让玩家看到自己选择的总和

4. 技术要点

4.1 工具路线(概念层面)

选择式家族:

  • Twine:段落加链接搭成故事图,导出 HTML 即发布;原型与小体量首选,变量与宏够用,结构复杂后会开始别扭。
  • Ink:叙事脚本语言,文本与逻辑分离清楚,可嵌进 Unity / Godot;inkle 自家的叙事作品走的就是这一系谱。
  • ChoiceScript:围绕 Choice of Games 平台,变量追踪、多周目与统计内建;发布目标与平台生态绑定时考虑。
  • Ren'Py:需要立绘、演出与语音时,选择式文本可以直接做进视觉小说结构。

解析式家族:

  • Inform 7:用接近自然语言的规则描述房间、物品与动词,世界模型内建,产物交给统一解释器运行;解析式的默认答案。
  • TADS:老牌解析式系统,脚本更接近传统编程语言;与 Inform 并列的另一条成熟路线。
  • 概念上要带走的一件事:解析式工具的核心是「世界模型加规则系统」,解析只是最外层的一步;理解它,选择式的状态设计也会干净得多。

通用引擎加叙事插件(Unity / Godot 接 Ink)适合已有引擎栈的团队;自研只在交互方式超出现成工具时考虑,第一作不要。工具只做概念介绍,具体路线以各家官方文档为准。

4.2 工程实现要点

  • 文本外置:正文放独立文件或表格,代码只读文本;改一句台词不该碰逻辑。
  • 状态序列化:存档保存全部变量与位置,变量表带版本号与迁移函数;玩家在文本世界里投入的时间最多,坏档是差评里的头号重罪。
  • 自动存档点:每个分歧点与章节开头自动存;槽位要能回退几步。
  • 调试工具:跳转指令(直达任意段落或房间)、变量查看器、状态注入(设好变量直接跑结局)、段落覆盖率检查(哪些分支从没被跑到)。
  • 输入与词库(解析式):同义词表、形容词处理、代词指代、歧义消解,全是设计加实现的双份工作,预算要单列。
  • 本地化:文本总量大,术语表先行;中文全角标点、中英混排与断行,集成后人工过一遍。

5. 内容量与工作量参考

以下为同类项目的常见量级,用于估算范围,不构成承诺:

项目形态 文本量 通关时长 周期量级 备注
原型 0.5-2 万字 15-40 分钟 2-4 周 一条线加两个结局,验证文本与状态循环
Jam 作品 0.5-1.5 万字 15-30 分钟 1 个周末到 2 周 单场景、少变量,工期按小时排
短篇作品 3-8 万字 1-3 小时 2-6 个月 可售体量的下沿,一人可完成
中型作品 10-25 万字 4-10 小时 6-18 个月 多线多结局,写作与测试各占一半
大型作品 30 万字以上 15 小时以上 2 年以上 团队或多年投入,通常有平台与工具加持

换算口径:

  • 通关时长按每分钟 200-300 字估算,含思考与点击,不含重玩与卡关。
  • 写作速度:熟练写手每天 1500-3000 字可发布质量的增量文本,状态与分支设计另计。
  • 修订与测试倍率:0.5-1 倍于初稿;一轮完整通关测试按半天到两天计。

成本结构的两条量级结论:

  • 选择式的增量成本大体线性,新开一条线的同时要付收敛点的账;用差分代替新线是控本主力。
  • 解析式的房间成本跟动词走:一个房间支持多少动词、每个动词多写几层响应,上限由项目自己定(比如只养 20 个常用动词),早期定死,别中途放开。

6. 第一个原型怎么起步

第一个原型做两周,交付一个「完整读完、状态生效、能存能读」的最小作品,一张图都不需要。

  1. 第 1-2 天:选流派装工具。选择式用 Twine,解析式用 Inform 7;先跑通「改文本 → 看到结果」的回路,别的都不碰。
  2. 第 3-5 天:写 3000-5000 字的完整小故事:一个场景、一个 NPC、两三个状态变量、两个结局。先在文本编辑器写完,再进工具。
  3. 第 6-7 天:状态做全。变量表落纸(名字、初值、读写点),每个变量至少配一处可感知回写。
  4. 第 8-9 天:加舒适功能:随时存档、读档、回退、重开、字号;解析式再加动词清单与报错提示。
  5. 第 10-11 天:调节奏与提示:长段落拆开;做三级提示的雏形(三句话也行)。
  6. 第 12-14 天:找 3-5 人测。只看三件事:在哪里停住、哪个选择被讨论、走完线后有没有人主动重开。

验收标准(全部可观察):

  • 测试者无提示 15-20 分钟走完一条线,能说出自己的一个决定改变了什么。
  • 至少一人主动重开,想试另一条路。
  • 测试结束后,至少两人能复述剧情与自己的选择,而不是只记得点击。
  • 你能在 5 分钟内定位并改掉测试者卡住的点。

反例:先把变量表堆到一百行,先搭工具箱,先写十章大纲。正文一个字没落地,这些全是零。

7. 常见坑

  1. 假选择:选项不产生可感知差分,玩家识破一次就再不认真。规避:每个选项至少改一处状态或文本,做不到就撤掉选项。
  2. 分支爆炸:没有收敛点的树状分支,写作与测试量翻倍。规避:先标收敛点与深度上限(关键分支最多三层),再写正文。
  3. 变量毛线球:旗标越加越多,没人知道哪个还活着。规避:变量表加结项三查(引用、触发、读点)。
  4. 卡关无提示:解析式的猜动词、选择式的乱点,卡住即退出。规避:同义词表、动词清单、三级提示;报错写成有信息量的句子。
  5. 选项信息不足:玩家不知道自己在选什么,选择变成掷骰子。规避:选项文案短、具体,写出立场与赌注。
  6. 文本量按初稿估:没算差分回填、修订与测试。规避:预算按初稿的 1.5-2 倍报。
  7. 开头慢热:前二十分钟还在铺设定。规避:第一章就给一次选择、一次后果与一个悬念。
  8. 舒适功能缺席:不能存档、不能跳过、字号刺眼,评价会直接反映。规避:把存档、回退、字号、跳过已读列进发布底线清单。
  9. 重玩强制:为了试一个选项重走整章。规避:跳过已读、章节选择、周目捷径。
  10. 生成文本兜底:拿生成式文本填分支,风格漂移与逻辑断裂会毁掉「作者在场」的感觉。规避:生成只做草稿与变体,核心文本人工定稿。
  11. 工具先行:先写引擎、先搭工具,几个月没有正文。规避:文本先行,工具只服务文本,第一作用现成工具。

延伸阅读

  • 《游戏设计手册》§8 叙事设计:分支成本管理、对话与选项设计,本文第 3 节的底稿。
  • 《案例研究集》:叙事类作品的拆解方法;拆之前先给自己要拆的作品建一本文本账。
  • 《独立开发生存手册》:范围控制与排期,配第 5 节的账本一起用;文本项目的范围失控最有隐蔽性。
  • 《避坑大全》§2、§3:设计与内容生产的常见坑位,与本文第 7 节对照。
  • 同手册对照:《视觉小说》(文本与演出的分工)与《点击冒险》(物品谜题路线),边界见第 1 节。
  • 作业:玩两小时一部经典解析式作品,记录每一次卡住的命令;再把 80 Days 的一条路线拆成「选择 → 状态变化 → 文本回指」三列表。

文字冒险的代码量可以很小,文本账必须很大。先把一条线写到底、把状态盯到死,再谈体量与发行。