娱乐 · 深入
一局剧本杀,别交给一个大模型管
该是预置数据的,就别让模型去猜
六个人一起玩、要在两小时里走完「分发剧本 → 两轮探索 → 两轮讨论 → 两轮锚点 → 投票 → 复盘」,靠一个提示词让模型「记住全场」是撑不住的 —— 它会忘记谁拿到了哪条线索,会在第二句话里把凶手说出来,也会为了故事好看而悄悄改掉一条本该固定的判定。这一页给的是另一条路:把一整局拆成 12 个阶段的状态机,让程序管「什么能发生、发生到什么程度」,只把「NPC 怎么开口」留给模型。一局的骨架因此变成可复盘的:每一轮处在哪个阶段、谁已获哪些线索、哪些秘密已经暴露,全部是可查的字段,而不是模型的一段回忆。
方法 · 一图看懂
1
先切阶段,再谈模型 — 把一局切成 12 个阶段(准备 → 分发 → 自我介绍 → 探索1 → 讨论1 → 锚点1 → 探索2 → 讨论2 → 锚点2 → 最终讨论 → 投票 → 复盘),每个阶段有明确的进入条件与能做/不能做的事
2
画一条确定性边界 — 掉落、物品效果、锚点剧情、线索保底一律是预置数据;模型只写 NPC 的话,⛔ 不改结构化结果
3
谁说话也算结构 — 系统发言只有一个出口(DM),人类与 NPC 走同一个聊天框、共用一套 / 指令
4
把状态写成可查的字段 — 轮次 × 子阶段 × 阶段三元组 + 每个角色的私有卡(已获线索 / 持有物品 / 嫌疑 / 信任 / 秘密暴露度)
5
产品阶段与代码阶段一一映射 — 每个阶段给出时长与核心产出,让「跑到哪了」可以被机器判定,而不是靠主持人感觉
12 个阶段 · 产品与代码的对照表
把一局当状态机跑,第一件事是把「产品语言」翻译成「代码能认的东西」。示例映射:0 准备(3 分钟 · prepare → assign_roles · 产出:剧本加载 / 角色分配 / NPC 运行时初始化)· 1 剧本分发(5 分钟 · opening → script_handout · 私有剧本 / 规则 / 初始物品推送)· 2 自我介绍(10 分钟 · free_talk → self_intro · 6 人按序发言)· 3 探索1 与 6 探索2(各 15 分钟 · search → explore_r1 / r2 · 调查 / 私聊 / 交易 / 权力 / 物品全开放)· 4 讨论1 与 7 讨论2(各 15 分钟 · free_talk → discuss_r1 / r2)· 5 锚点1 与 8 锚点2(各 10 分钟 · action → anchor_r1 / r2 · 固定剧情推进、解锁新场景与提示)· 9 最终讨论(15 分钟 · 仅发言 / 展示 / 私聊,禁调查与交易)· 10 匿名投票(5 分钟 · vote → final_vote · 私聊 DM 投票、实时统计)· 11 结局复盘(12 分钟 · settlement → replay · 多结局分支 + 时间线复盘 + 表现点评)。⚠️ 这张表的价值不在数字,在每一行都同时给了「产品看到的阶段名」与「代码里的子阶段」,两者一一对应 —— 有了它,才谈得上「按子阶段驱动节点跳转」。
确定性边界 · 哪些交给程序,哪些才交给模型
底线一句话:确定性优先。四类东西必须是剧本预置的数据,⛔ 不由模型生成 —— ① 调查掉落(谁在哪个场景找到什么)② 物品效果(一件道具用了之后世界里发生什么)③ 锚点剧情(到点必须推进的那段固定剧情)④ 线索保底(每轮无论如何要给出的最低线索量)。模型的职责被压到一件事:NPC 的自然语言 —— 怎么把一个已知的结果说成人话。它不改动任何结构化结果。这套分工对外最直观的体现是「DM 是唯一的系统发言人」:规则、判定、公示都由一个出口发出,模型只在 NPC 壳子里说话。配套的是三条接口约束:人类与 NPC 同权交互(同一个聊天框、同一套指令);9 条 / 指令覆盖全流程(调查 / 私聊 / 交易 / 展示 / 权力 / 投票……);每个角色的私有卡按已获线索 / 持有物品 / 嫌疑排名 / 信任排名 / 秘密暴露度五个字段维护。⚠️ 反过来做(让模型既叙事又判定)的代价不是「不够真」—— 是同一局里两次问同一件事会得到两个答案,而玩家一旦发现有第二个答案,整局的信任就没了。
原理 · 为什么有效
为什么「一个大模型管全场」在多人局里一定先崩 —— 不是它不够聪明,是它没有能被反复读到的状态。模型每一轮看到的是对话历史,而对话历史有两个特性:它会变短(压缩),也会被后来的叙述冲淡。当六个玩家各自在私聊里拿到了不同的线索,这些线索在模型的视角里只是混在一起的文字 —— 谁是第几个发言的人、谁的秘密已经暴露、这一轮还能不能调查,全靠它从上下文里再推一遍。推一次可以,推二十轮就会开始漂。而状态机的做法把这件事移出了模型:阶段由程序切换、可做的事由阶段决定、结果由预置数据决定 —— 模型每次只需要回答「在这个已知结果下,这个 NPC 会说什么」。这就是为什么多人局、长篇局几乎总是走同一条路:不是为了让 AI 更聪明,是为了让它哪怕不聪明也不会把局跑坏。同样的道理也解释了「DM 唯一系统发言人」为什么重要 —— 判定一旦有两个出口,就有了两个版本。
适用场景
适合:想认真做一局多人 AI 剧本杀(6 人上下、两小时量级)的人;已经玩过几场、发现「线索对不上 / 判定前后不一致 / 有人中途没得玩」的人;想把线下本搬成线上、又不想让 AI 自由发挥到失控的人。不适合:两三人、半小时内的即兴短局 —— 还没长到需要状态机,直接跑一个轻量 GM 就更省事;也不不适合纯氛围向、玩法本身依赖真实随机性的桌游(那种请直接上实体骰 + 真人 GM)。⚠️ 另外要认清成本:12 阶段状态机是一套要搭的东西(剧本包 + 阶段驱动 + 私有卡 + 指令集),不是一段提示词。
自测 · 5 问
我这一局能被切成有明确进入条件的阶段吗?切不出来的,先别上状态机
掉落 / 物品效果 / 锚点剧情 / 线索保底 —— 这四类我是不是全部预置了?(留一类给模型生成,它就会在那里开始漂)
系统发言是不是只有一个出口?如果规则判定和 NPC 说话由同一个口子发出,先分开
「谁说话了」是不是同权?人类和 NPC 走同一套指令,不然玩家会发现自己少了几个动作
我能不能随时回答「现在到第几阶段、谁已获哪些线索」?答不出来的部分,就是还没做成状态
怎么上手 · 验证步骤
上手顺序:先搭骨架,再填内容,最后才调语气。第一步,把一局写成 12 行阶段表 —— 每行都要有三样:阶段名、时长、核心产出(这一阶段结束时世界里必须多了什么)。第二步,划确定性边界:上面那四类预置数据先列出来,凡是列不出的,说明剧本本身还没准备好。第三步,定私有卡的字段(先用五个字段起步:已获线索 / 持有物品 / 嫌疑 / 信任 / 秘密暴露度),并确认每个字段由谁写、什么时候写。第四步,做指令集:把玩家能做的动作收敛成一套 / 指令,逐条写好它的前置条件(例如「最终讨论阶段不能调查」)。第五步,空跑一遍:不放内容、只走阶段切换,确认从准备能走到复盘、每一步都停得下来。第六步,再填内容、最后才让 NPC 开口。
搭完先做三件事:① 乱序测试 —— 在最终讨论阶段故意发一条 / 调查,看它是否被阶段规则挡住(挡不住说明前置条件没落到代码里);② 一致测试 —— 同一个线索,隔十分钟用两种说法问两个 NPC,看得到的答案是否指向同一份预置数据(开始漂就说明边界漏了);③ 可查测试 —— 中途随便问一句「现在谁掌握了第 2 号线索」,看能不能立刻答上来(答不上来说明状态还在模型脑子里,不在字段里)。三件都过,这一局的骨架才算立住。