世界给出了一个答案,但作者还想知道为什么
故事写到第三十八章。
作者点开 Rowan。
Inspector 告诉他:
Rowan 现在是轨道站指挥官。
他位于 Europa 前哨站。
他持有一枚白色通行核心。
他是紧急议会的成员。
他和 Ilya 的关系已经变成敌对。
他的压力值目前是 7。
这些答案都是正确的。
但作者接下来想问的,不是 Rowan 现在是谁。
而是他为什么会变成现在这样。
Rowan 原本就是指挥官吗?
他什么时候抵达 Europa 前哨站?
白色通行核心是由谁交给他的?
他为什么加入紧急议会?
他和 Ilya 的敌对关系始于哪一次事件?
压力值又是从哪些经历逐步累积到 7?
如果世界只能显示最新状态,这些问题就必须重新回到全文里寻找。
作者知道答案存在于前面的三十七章。
却不知道它们分别藏在哪里。
世界能够回答「现在是什么」很重要。
但一个真正可以被信任的世界,还应该回答:
这个现在,是怎么形成的?
最新资料保存结果,事件历史保存来处
一般资料页很擅长保存最新结果。
角色目前的职业。
角色现在的位置。
物品当前的持有人。
人物关系目前的状态。
组织现在的领袖与成员。
这些资讯能让作者快速掌握世界走到哪里。
但如果最新状态只是被直接覆盖,旧状态就会逐渐消失。
角色资料原本写着工程师。
升职后改成指挥官。
再过一段时间,他退出组织,资料又被改成自由航行员。
最后一份资料可以正确显示他现在是自由航行员。
却无法回答他曾经何时担任工程师、何时成为指挥官,以及什么事件让他离开原本的职位。
只保存最新答案,世界就像一张不断被擦掉重写的表格。
每一次修改都让现在更准确。
也让过去更难被看见。
InkWeave 的世界状态不是靠直接覆盖所有旧答案形成。
角色移动、物品转手、属性改变、人物关系变化、身分转换与组织异动,都可以成为正文时间线里的事件。
最新状态是这些事件重播后的结果。
事件历史则保留这个结果一路如何形成。
所以作者看见 Rowan 现在是指挥官时,不只得到一个职业名称。
他还能回到真正让 Rowan 成为指挥官的那一刻。
一个角色不只有一条历史
我们经常把角色历史理解成一段人物生平。
出生在哪里。
经历过什么。
遇见过谁。
最后成为什么样的人。
这种叙述很适合让人理解角色。
但世界模拟需要把其中不同种类的改变分开。
Rowan 有移动历史。
他从地球研究中心前往轨道站,之后才抵达 Europa 前哨站。
他有状态历史。
他可能曾经失踪、恢复活动,也可能在另一条世界线里死亡。
他有属性历史。
压力、伤势、信任或其他自订数值,会随事件增加与减少。
他有种族与职业历史。
他可能从工程师成为指挥官,也可能因为改造、契约或世界规则而改变身分类型。
他有人物关系历史。
合作、信任、敌对与其他关系,不一定从角色第一次出场就保持不变。
他有物品历史。
取得过什么、失去过什么、把什么交给别人,都会改变后续行动能力。
他也有阵营历史。
何时加入紧急议会、担任什么位置、是否退出,都属于另一条组织时间线。
这些历史共同构成同一个人。
却不能被压成一条模糊的「角色曾经发生过很多事」。
因为作者追问的位置不同,需要的答案也不同。
想知道 Rowan 为什么在 Europa,要查看移动历史。
想知道他为什么能进入控制室,要查看通行核心的流转与相关资格。
想知道紧急议会为什么承认他,则要查看身分与阵营事件。
一个角色的现在,是多条历史在同一刻交会的结果。
历史不是每隔一段时间保存一张角色卡
作者当然可以替角色保存不同版本。
第十章的 Rowan。
第二十章的 Rowan。
第三十八章的 Rowan。
每隔一段时间复制一次角色卡,就能保留部分过去。
但这种方式很快会产生新的问题。
应该在哪一章建立版本?
两张角色卡之间发生的细小变化由谁保存?
如果第十六章的一次事件被修改,作者要重新更新后面多少张角色卡?
哪一张才是目前可信的版本?
更重要的是,快照只能告诉作者某一刻的结果。
它不一定能说明两张快照之间究竟发生了什么。
InkWeave 不需要作者手动保存每一个阶段的完整角色副本。
正文里的事件本身就是历史来源。
第十二章,Rowan 从工程师转为指挥官。
第十七章,他移动到 Europa 前哨站。
第十九章,他取得白色通行核心。
第三十章,他加入紧急议会。
第三十四章,他和 Ilya 的关系转为敌对。
因果律引擎沿着这些事件重播,便能推导不同时刻的世界切片。
游标停在第十章,世界仍然看见工程师 Rowan。
停在第二十章,世界承认他已经成为指挥官,也已经抵达 Europa。
停在第三十八章,后面更多事件的结果才会一起出现。
快照保存的是几个被选中的现在。
事件历史则让每一个现在都能重新被推导。
压力值是 7,不代表历史只需要记住 7
Rowan 的压力值目前是 7。
如果角色资料只保存这个数字,作者可以知道他现在承受多少压力。
却不知道 7 是怎么来的。
第十四章的设备事故让压力增加 2。
第十八章抵达安全区后降低 1。
第二十三章失去一名队员,再增加 3。
第三十四章遭到 Ilya 背叛,又增加 3。
这些事件共同把压力推到现在的数值。
属性历史不只需要列出「曾经变更」。
它还要让作者看见每次变动量,以及事件发生后的累计结果。
这样作者才能回答:
哪一次事件让压力第一次超过危险门槛?
角色在第二十章时的压力是多少?
如果删除第十四章的事故,后面的数值会如何改变?
第三十四章的反应是否真的符合角色当时已经累积的状态?
同样的最终数值,也可以来自完全不同的历史。
压力值 7,可能是一次重大灾难造成。
也可能是十几次小事件逐步累积。
数字相同,不代表世界经历过相同的事。
所以属性历史不能只保存最新答案。
它必须让数值带着自己的形成过程回来。
一件物品可以从不同视角追溯
白色通行核心现在由 Rowan 持有。
但这只是它目前的停留位置。
它在抵达 Rowan 手上以前,可能已经走过很长一段路。
最初,通行核心由轨道站系统配发给安全主管 Vera。
Vera 离开控制区以前,把它放进中央保管室。
前哨站遭到封锁后,Ilya 从保管室取出核心。
几章之后,Ilya 又把它交给 Rowan。
如果只看 Rowan 的持有物品,作者会知道他现在拥有通行核心。
但物品的完整历史还能回答更多问题。
它最初由谁配发?
曾经经过哪些角色?
在哪些地点停留过?
是否曾经被放下、遗失或重新取得?
世界里是否还存在另一枚同名核心?
InkWeave 可以从不同视角查询物品历史。
作者可以查看某件物品的系统分发纪录。
可以查看这件物品完整的流动轨迹。
可以查看某名角色曾经取得或失去哪些物品。
也可以查看某个地点曾经接收或移走哪些物品。
需要时,还能从全域视角查看世界里的系统分发事件。
同一笔转交事件会同时影响角色、物品与地点。
但不同历史视角会让作者看见不同问题。
Rowan 的历史回答他何时取得核心。
核心的完整轨迹回答它如何抵达 Rowan 手上。
中央保管室的历史则回答它何时不再留在那里。
世界只有一段历史。
作者却可以从不同实体的位置进入它。
地点现在没有人,不代表从来没有人来过
Europa 前哨站的实验室目前是空的。
没有角色停留。
重要设备也已经被移走。
如果只看当前状态,这个地点可能像是一个没有发生过任何事情的空房间。
但地点也有历史。
Vera 曾经抵达这里。
Ilya 在封锁期间进入过。
Rowan 后来带着通行核心来到这里。
另一名角色可能曾经短暂停留,之后又离开。
地点访客历史让作者知道谁曾经到过。
地点物品历史则保存哪些东西曾经被放在这里,又在什么事件中被移走。
这种差别对调查、责任与叙事都很重要。
「目前没有人在实验室」只是一个当下答案。
「从来没有人进入实验室」则是一个完全不同的历史判断。
如果作者把两者混在一起,就可能让曾经发生过的事件被目前的空白洗掉。
一个地点不只由仍然留下的东西构成。
曾经来过又离开的人,也属于它的世界历史。
组织历史不只保存主动发生的事
Rowan 加入紧急议会,是一次明确事件。
他取得指挥官职称,也可以是一项明确的组织变化。
但组织里不是每一个结果都由当事人主动发起。
假设安全主管 Vera 带领两名成员。
她退出组织时,创作者选择让整个下属体系一起离开。
那两名成员并没有各自建立一笔主动退出事件。
但他们仍然受到 Vera 离开的结构性影响。
另一种情况下,Vera 离开后,下属可能失去主管。
也可能向上重新连接到 Vera 原本的上级。
这些都是由离开政策推导出的衍生结果。
InkWeave 的阵营历史可以从组织视角查看领袖、成员、职称与上下级如何改变。
也可以从角色视角查看某个人何时加入或退出不同阵营。
当事件具有衍生影响时,历史还需要保留:
这是直接事件,还是由另一件事推导出的结果?
影响源自哪个角色?
原本的主管是谁?
新的主管是谁?
使用了哪一种离开方式?
如果历史只写「成员已退出」,作者仍然不知道这个人为什么离开。
当历史能指出它源自 Vera 的级联退出,组织现在的样子才真正得到解释。
历史纪录必须能带作者回到正文
一份事件列表可以告诉作者:
第十九章,Rowan 取得白色通行核心。
但作者接下来可能想知道:
当时是谁交给他的?
那段文字究竟怎么写?
取得事件放在对话以前,还是对话以后?
是否应该修改数量、参与者或事件位置?
所以 InkWeave 的历史纪录不只保存事件摘要。
每笔历史可以带有章节、章节标题、来源、目标、变动量、累计结果与锚点识别。
作者可以从历史面板直接跳到事件所在的章节与正文锚点。
如果想连续比较多笔纪录,历史面板也可以保持开启。
作者查看第十九章的取得事件。
再跳到第二十二章的放置事件。
接着查看第二十九章的再次转交。
他不是先抄下章节名称,再离开 Inspector 搜寻正文。
查询历史与回到历史发生的位置,可以属于同一段工作流程。
这很重要。
因为历史真正有用的时刻,通常不是作者单纯想回忆。
而是他发现目前状态需要解释、确认或修改。
一段不能回到来源的纪录,只能告诉作者世界曾经改变。
能跳回正文锚点的纪录,才能让作者重新处理那次改变。
时间线回答先后,因果图回答依赖
所有历史都具有时间顺序。
某个 Flag 先被设定。
后来改变状态。
再被一个 REQ 检查。
最后可能被回收。
把这些事件依章节排列,可以看见它们先后发生的顺序。
但先后不一定等于依赖。
第十二章可能发生很多事。
真正支撑第二十七章 REQ 的,只有其中几个特定 Flag。
InkWeave 的旗标与剧情因果图,能把同一个 Flag 的前后变化连起来,也能把 Requirement 对 Flag 的依赖呈现出来。
作者因此不只看见:
这些事件发生在第二十七章以前。
还能进一步看见:
第二十七章的哪一项条件,正在由前面的哪条状态变化支撑。
时间线回答事情何时发生。
因果图回答后面的事件正在向哪些前因取得资格。
两者不能互相取代。
只有顺序,作者可能看见大量相邻事件,却不知道它们是否真正相关。
只有依赖,作者又可能失去事件如何沿着时间形成的过程。
世界的历史需要先后。
世界的解释还需要连线。
这不是 AI 替世界编写一个合理解释
当作者询问 Rowan 为什么是指挥官,InkWeave 不会把角色资料交给 AI,再生成一段听起来合理的升职原因。
它会寻找正文时间线里真正改变角色身分的事件。
当作者查看白色通行核心的去向,系统也不会根据附近文字猜测它可能经过谁的手。
它会重播明确建立的配发、取得、放置与转交事件。
角色位置来自移动事件。
属性数值来自每一次增减。
人物关系来自已确认的关系变化。
角色身分与职业来自转换事件。
阵营状态则来自加入、退出、领袖、职称与组织关系事件。
InkWeave 使用的是自己自研的因果律引擎。
在作者已经建立的模型里,事件顺序、状态转移、数量变化、集合归属与关系连线都可以被确定性重播。
相同的事件历史会得到相同的世界状态。
历史查询也会回到真正参与推导的事件,而不是事后生成一个可能的解释。
这是模型边界内的数学保证。
不是 AI 审计。
如果作者只在普通文字里写了一场升职,却没有建立身分变化事件,因果律引擎不会假装知道那段文字应该如何改变角色资料。
如果人物内心已经原谅对方,却没有建立需要追踪的关系变化,系统也不会擅自改写关系。
InkWeave 能解释的是作者真正交给世界的历史。
不是所有可能藏在语言里的意义。
真实世界需要来处,架空世界也一样
世界状态的可追溯性不只适用于小说角色。
公司现在认定某台笔电由一名员工保管。
那台笔电是何时配发的?
是否曾经交给另一个人?
离职交接时又经过哪一次转交?
制作现场判断演员在某场戏里应该穿着特定服装。
那套服装从哪个场景开始出现?
中间是否已经损坏、更换或留在另一个地点?
调查人员发现一份证物位于仓库。
它最初在哪里?
由谁带走?
经过哪些地点后才抵达仓库?
一个组织现在由新的主管领导。
前任何时离开?
下属如何重新连接?
新主管又是透过哪一次事件取得位置?
InkWeave 不是资产管理系统、制片管理系统或企业人资系统。
但它能模拟这些情境共同拥有的骨架:
世界目前有一个状态。
这个状态由过去事件形成。
每一次改变都应该能回到它真正发生的位置。
如果这套骨架能承担真实世界里的人员、物品与责任流转,它也能承担架空世界里更复杂的历史。
一名将军为什么掌握军队。
一件圣物为什么出现在敌国。
一座城市为什么仍然封锁。
一个角色为什么不再信任昔日盟友。
一个古老组织为什么失去了原本的领袖。
这些答案不能只因为作者在资料页上如此设定,就被世界接受。
它们需要来处。
一个可信的现在,应该带着自己的历史
世界状态不是一组被更新到最新的栏位。
它是过去仍然留在现在里的方式。
Rowan 是指挥官,因为某次身分变化曾经发生。
他位于 Europa,因为他曾经移动到那里,之后也没有离开。
他持有通行核心,因为那件物品沿着角色与地点一路流转到他手上。
他和 Ilya 敌对,因为某次事件改变了原本的关系。
他的压力值是 7,因为前面的增加与减少共同留下了这个结果。
Inspector 可以让作者看见现在。
历史面板让作者知道现在从哪里来。
因果图则让作者看见某些后续条件正在依赖哪些前因。
它们共同回答的,不只是世界目前长什么样。
而是世界凭什么成为现在这个样子。
一个答案如果找不到来处,就只能依赖作者记忆或资料页上的宣告。
一个能够回到事件的答案,才真正属于这段世界历史。
当下告诉你答案。
历史告诉你,这个答案为什么成立。