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 文本预算与写作流程¶
先算账再动笔。按「每千字含差分、测试、修订的总成本」估算,别只算初稿;文字类型的文本成本天然高于纯散文,因为每句话背后有状态与分支的账。
写作流程按顺序执行:
- 一页纸骨架:故事是什么、玩家做什么、结局有几个。
- 结构图:选择式先画段落图(节点、分歧、收敛点),解析式先列房间图与动词表。图上没有的结构,正文里不允许出现。
- 初稿:一口气写完一条完整路线,先让故事成立。
- 状态与差分回填:按变量表把回写点补齐,这一步最容易漏,也最伤体验。
- 修订:定稿前删掉 10%-20%,开头砍得最狠;慢热是文本类型的第一差评来源。
- 朗读测试:出声读一遍,读不顺的句子改掉;请人朗读,观察他停在哪里、重读哪里。
- 集成与全通关测试:文本进工具跑一遍,对照提示与资产逐项过。
工具链习惯:正文与逻辑分离,正文放独立文件或表格;字数统计做成看得见的进度数字,长篇项目靠它续命。
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-2 天:选流派装工具。选择式用 Twine,解析式用 Inform 7;先跑通「改文本 → 看到结果」的回路,别的都不碰。
- 第 3-5 天:写 3000-5000 字的完整小故事:一个场景、一个 NPC、两三个状态变量、两个结局。先在文本编辑器写完,再进工具。
- 第 6-7 天:状态做全。变量表落纸(名字、初值、读写点),每个变量至少配一处可感知回写。
- 第 8-9 天:加舒适功能:随时存档、读档、回退、重开、字号;解析式再加动词清单与报错提示。
- 第 10-11 天:调节奏与提示:长段落拆开;做三级提示的雏形(三句话也行)。
- 第 12-14 天:找 3-5 人测。只看三件事:在哪里停住、哪个选择被讨论、走完线后有没有人主动重开。
验收标准(全部可观察):
- 测试者无提示 15-20 分钟走完一条线,能说出自己的一个决定改变了什么。
- 至少一人主动重开,想试另一条路。
- 测试结束后,至少两人能复述剧情与自己的选择,而不是只记得点击。
- 你能在 5 分钟内定位并改掉测试者卡住的点。
反例:先把变量表堆到一百行,先搭工具箱,先写十章大纲。正文一个字没落地,这些全是零。
7. 常见坑¶
- 假选择:选项不产生可感知差分,玩家识破一次就再不认真。规避:每个选项至少改一处状态或文本,做不到就撤掉选项。
- 分支爆炸:没有收敛点的树状分支,写作与测试量翻倍。规避:先标收敛点与深度上限(关键分支最多三层),再写正文。
- 变量毛线球:旗标越加越多,没人知道哪个还活着。规避:变量表加结项三查(引用、触发、读点)。
- 卡关无提示:解析式的猜动词、选择式的乱点,卡住即退出。规避:同义词表、动词清单、三级提示;报错写成有信息量的句子。
- 选项信息不足:玩家不知道自己在选什么,选择变成掷骰子。规避:选项文案短、具体,写出立场与赌注。
- 文本量按初稿估:没算差分回填、修订与测试。规避:预算按初稿的 1.5-2 倍报。
- 开头慢热:前二十分钟还在铺设定。规避:第一章就给一次选择、一次后果与一个悬念。
- 舒适功能缺席:不能存档、不能跳过、字号刺眼,评价会直接反映。规避:把存档、回退、字号、跳过已读列进发布底线清单。
- 重玩强制:为了试一个选项重走整章。规避:跳过已读、章节选择、周目捷径。
- 生成文本兜底:拿生成式文本填分支,风格漂移与逻辑断裂会毁掉「作者在场」的感觉。规避:生成只做草稿与变体,核心文本人工定稿。
- 工具先行:先写引擎、先搭工具,几个月没有正文。规避:文本先行,工具只服务文本,第一作用现成工具。
延伸阅读¶
- 《游戏设计手册》§8 叙事设计:分支成本管理、对话与选项设计,本文第 3 节的底稿。
- 《案例研究集》:叙事类作品的拆解方法;拆之前先给自己要拆的作品建一本文本账。
- 《独立开发生存手册》:范围控制与排期,配第 5 节的账本一起用;文本项目的范围失控最有隐蔽性。
- 《避坑大全》§2、§3:设计与内容生产的常见坑位,与本文第 7 节对照。
- 同手册对照:《视觉小说》(文本与演出的分工)与《点击冒险》(物品谜题路线),边界见第 1 节。
- 作业:玩两小时一部经典解析式作品,记录每一次卡住的命令;再把 80 Days 的一条路线拆成「选择 → 状态变化 → 文本回指」三列表。
文字冒险的代码量可以很小,文本账必须很大。先把一条线写到底、把状态盯到死,再谈体量与发行。