posts

《叙事策划与叙事工艺》卷二《叙事引擎与分支系统》· 全书目录与章节索引(50 篇)

《叙事策划与叙事工艺》卷二《叙事引擎与分支系统》全 50 篇。卷一回答「一个故事能不能先被写成一份规格」,卷二回答「这份规格能不能被一台机器可复现地、可断言地、可跨语言地执行」。全书围绕虚构的三夜悬疑叙事《雾港夜航》与工具链 inkwell 展开,唯一真源仍是 config/story_spec.json 的十段字段:meta(三幕)、world(4 派系 stance 矩阵、14 个地点的解锁条件、6 条 lore 的揭示旗标)、characters(6 个角色的目标/恐惧/秘密/好感度/弧光)、beats(16 个节拍与整数张力)、scene_graph(14 个节点与 16 条边,其中 5 条带条件)、dialogue(48 个对话节点、115 个选项、5 个结局)、conditions(嵌套数组文法,6 种形式)、state(18 个 flag、4 个好感度、9 个物品)、endings 与 metrics。第一部分(第 1–4 章)搭引擎内核:状态/事件/转移的三元组、规格驱动的对话状态机、引擎与规格的同源、条件求值器与短路、可满足性判定、效果应用、确定性与 set 类幂等、状态快照与差量、确定性回放与逐位一致;第二部分(第 5–8 章)算分支状态空间:990 万可达状态的 BFS 枚举、不可达节点与孤儿结局、死路检测与汇流合法性、结局可达性、分支宽度与采样上界、组合爆炸的控制、好感度状态机与阈值门扰动、整数不变量;第三部分(第 9–12 章)做可玩原型与持久化:把规格内联进单文件 HTML、选择界面与状态显示、Playwright 注入选择序列真玩、断言终局状态与结局、多路径批跑、存档序列化与读档恢复、快照向前兼容、文本表与键的一致性;第四部分(第 13–16 章)做一致、回归与装配:跨语言摘要与 digest、同源不同宿主、偏差与容差、属性测试与随机路径模糊、规模与性能扫描,最后装配成一份规格三处消费的完整链路并交付卷三。按章节提供仿真、逻辑内核与原型;当前试点阶段已有复核记录,完整项目的配置、共享模块和交付验收仍在补齐。全书数字均来自本机实跑:可达状态 9895423 个,分支覆盖率 1000‰,死路节点 0,跨语言摘要 500/500 一致,同输入确定性违例 0。

《叙事策划与叙事工艺》卷二《叙事引擎与分支系统》全 50 篇。卷一回答的是「一个故事能不能先被写成一份规格」;这一卷回答的是:这份规格能不能被一台机器执行——而且是可复现地、可断言地、可跨语言地执行?

站内的叙事内容基本落在两端:一端是引擎怎么实现(game/client/ 的打字机、立绘口型、字幕时间轴、过场系统,game/server/ 的 NPC 对话状态架构),一端是散文式的叙事经验(game/indie/ 的分支对话长文、game/industry/ 的叙事设计概览)。中间那一段——同一份规格在 Python 仿真、TypeScript 内核与浏览器原型三处跑出来的状态摘要是否逐位相同——没有人占。 而这一段恰恰是可计算、可跑、可证伪的一段。这一卷补的就是这一段。

做法还是那句话:一份叙事规格,三处消费。config/story_spec.json 是唯一真源(世界 / 角色 / 弧光 / 节拍 / 场景图 / 对话 / 条件 / 状态 / 结局 / 度量),卷一让它「可穷举」,这一卷让它「可执行」——条件求值器、效果应用、状态推进、确定性回放、存档往返、可玩原型。三处读的是同一个文件,产出的是逐位相同的状态摘要。改一个条件或一个阈值,三处同步改变且仍然互相一致。

贯穿全书的是虚构的三夜悬疑叙事 《雾港夜航》(工程名 mistport)与工具链 inkwell:config/ 放规格,sim/ 是 Python 侧的执行与穷举,core/ 是 TypeScript 确定性内核,web/ 把内核内联进单文件 HTML 供无头浏览器真玩。本页是《叙事引擎与分支系统》的全书目录:按章节顺序列出全部 50 篇,点击标题直达正文,也可以从各节末尾的「阅读导航」按顺序通读,或先看目录篇 里的分工说明与可运行性口径。

全书概览

项目内容
书稿《叙事策划与叙事工艺》卷二《叙事引擎与分支系统》
篇数50 篇(正文 16 章 48 节 + 目录篇 + 附录 A)
贯穿案例三夜悬疑叙事《雾港夜航》(mistport)
核心主张一份叙事规格,三处消费;同一选择序列跨语言给出同一个状态摘要
可运行性六档 S / P / W / D / X / B
前置卷一《叙事结构与可执行规格》 (16 章 48 节)
后继卷三《叙事体验与路径度量》 (16 章 48 节)

三卷怎么分

卷书名回答的问题
卷一叙事结构与可执行规格一个故事怎么写成规格,这份规格自洽吗、可达吗、可覆盖吗
卷二叙事引擎与分支系统这份规格怎么被执行:状态机、条件求值、确定性回放、可玩原型
卷三叙事体验与路径度量玩家真的走出来的路径是什么形状,怎么用代理指标度量它

与站内既有内容的分工

本卷 16 章

第一部分 · 引擎内核(第 1–4 章)

第二部分 · 分支状态空间(第 5–8 章)

第三部分 · 可玩原型与持久化(第 9–12 章)

第四部分 · 一致、回归与装配(第 13–16 章)

可运行性

本卷沿用六档口径:S 是 Python 侧的执行与穷举(条件求值、效果应用、BFS 可达状态枚举、死路与汇流检测、规模扫描),P 是 TypeScript 确定性内核(node --test),W 是浏览器可玩原型(Playwright 无头真玩),D 是规格文本与清单,X 是需真实环境、命令行不可复现的部分(正文逐处标注),B 是参数扰动与相变扫描(软告警不硬失败)。每一节至少有一个 S / P / W 档的代码块,且正文里的每个数字都来自本机实跑。

怎么读

想先看主张,从目录篇 开始,那里有分工说明与可运行性口径。想直接动手,从第 2 章 开始写条件求值器,再依次做第 3 章的效果应用与第 4 章的确定性回放。想先玩起来,直接跳到第 9 章 。只关心结论,看第 13.1 节 的跨语言摘要与第 16.1 节 的装配检查表。

全部文章 game golang 客户端开发 Minigame Saas rust Python Java cg Typescript