先让模型写一个“茶馆老板深夜暴毙”的故事,再让它补三条线索、四份证词,跑完第一遍看起来很像样。问题出在玩家第二次回头检查的时候:账房先生说他十点前离开,可物证清单里那只茶盏上的指纹,是在十点二十分以后才可能留下的。模型并没有撒谎,它只是没有一个可以回头查证的“事实”。
先写故事再补线索,为什么一定会漏
叙事文本天然是线性的、带修辞的。故事里写“他匆匆离开后院”,隐含了三件没有落实的事:从哪扇门走,几点走,谁看见了。这些空白阅读时不会被注意,在推理游戏里却恰好是玩家最爱追问的地方。
补线索的做法还有一个更隐蔽的问题:每补一条线索,都会为已有的故事增加一个新约束,而模型此时并不会回头重读全文。前五条线索或许彼此吻合,第六条已经悄悄改写了凶手的行动路线。PA真人游戏世界智能研究组在讨论案件生成时,把这类问题统称为“事实漂移”:不是某句话错了,而是没有任何一处保存着“真实是什么”。
真相账本里应该记什么
真相账本(Ground Truth Ledger)是一份只供系统读取的结构化记录,回答的只有一个问题:在案发前后,这个世界里究竟发生了什么。一条记录至少包含事件、参与人物、地点、起止时间,以及这件事留下了什么。
case: 茶馆案(原创示例)
E01 19:40 账房先生 · 后院库房 · 取走三月账册(遗留:库房门闩被拨开)
E02 20:15 茶馆老板 · 二楼雅间 · 发现账册缺页,电话质问账房(动机成立)
E03 20:50 账房先生 · 二楼楼梯 · 上楼争执,推搡(手段:铜茶壶)
E04 20:58 茶馆老板 · 二楼雅间 · 倒地死亡(死因:后脑钝击)
E05 21:05 账房先生 · 后院 · 将茶壶投入水缸(遗留:缸沿水渍,壶底账房印记)
E06 21:30 学徒 · 一楼柜台 · 听见楼上声响,未上楼(见证:仅听觉)
每个事件都有明确的时间窗口,可以按时间排序;每个人在同一时刻只出现在一个地点,程序可以直接检查;“遗留”一栏是后续所有物证的来源,凡是要在游戏里出现的物件,必须能在这一栏里找到出处。
动机、手段、机会要单独成栏
凶手推断通常落在三个条件上:有没有理由,有没有办法,有没有机会。账本里把这三项单独拆成字段,是为了在生成阶段有意识地给每个嫌疑人分配“缺一项”或“三项齐备”,而不是让模型顺手把所有人写得都很可疑。例如学徒有机会、没有动机;跑堂有动机、没有手段;只有账房先生三项齐备,但他的机会需要至少两条证据才能坐实。
从账本反向生成线索与证词
有了账本,线索和证词就变成了投影。物证从“遗留”字段取出:库房门闩、壶底印记、缸沿水渍。证词则从每个人在账本里的视角取出:学徒只能说他听到了什么,因为账本里他在一楼;他不能描述二楼发生的推搡,除非账本里有人告诉过他。
这一步的关键是方向。系统问的不是“这里可以放一条什么线索”,而是“账本里这个事件留下了什么,谁可能看到它”。于是每条线索都天然带着来源编号,玩家在游戏里翻到壶底的印记时,系统随时能追溯到 E05。后续如果玩家质疑这条线索,或者需要修改案件,改动只发生在账本一处,其余内容重新投影即可。
账本本身如何被验证
把真相写成结构化数据,最大的好处是能让程序检查,而不是靠人读。有几项检查几乎不需要智能:
- 时间线检查:同一人物的相邻事件,地点转换是否给足了移动时间。比如E03到E04之间只隔八分钟,账房先生不可能同时在后院。
- 因果检查:每个“遗留”是否有前置事件支撑,缸沿的水渍必须发生在茶壶入水之后。
- 知情检查:每个人的“见证”字段是否只包含他所在地点能感知到的内容。
- 覆盖检查:凶手在账本里是否至少有两个遗留能指向他,这个问题留给关于线索可达性的讨论,可以参考关键线索不能因为随机生成而无法找到。
这些检查可以在生成后立即运行。检查不通过时,修复的对象是账本,而不是把一句话糊弄过去。
账本不能解决的部分
先写账本并不等于案件就好玩。账本保证的是“可以推理”,并不保证“值得推理”。一份完全无懈可击的账本可能极其无聊:所有人的动机都一眼可见,所有物证都在第一分钟被发现。悬念、误导和节奏是账本之上的设计问题,需要另一批规则去处理,比如故意让一位无辜者的行动看上去与凶手重叠。
还有一个目前没有好办法的地方:账本的粒度。写得太粗,玩家一追问就出现空白;写得太细,模型生成成本上升,出错概率也随之增加。PA真人AI推理游戏目前的思路是分层:核心事件写到分钟,背景事件只写到时间段,玩家追问触及背景时再按需展开并回写账本,而不是即兴编造。
回到那只茶盏
开头的那只茶盏,如果一开始就在账本里,只是一条记录:某人在某个时刻碰过它,这个人是否在场,本来就由时间线决定。完整的一致性还涉及人物知识和玩家信息两层,可以在案件一致性的整体设计里看到它们的配合;而嫌疑人为什么会说谎,以及说谎与系统矛盾之间的区别,见下一篇关于角色知识层的讨论。更多栏目内容可以在PA真人AI推理游戏栏目页查看。