《过滤器》(暂定名) — 叙事游戏设计文档 v0.1
腾讯云黑客松 2026 · 赛题三:叙事类游戏(剧情驱动类) 一句话简介:一对回避型×回避型的情侣,一段没有争吵、却在沉默中耗尽的关系。玩家说出真心话,角色说出口的却永远是别的。
0. 备选名称
- 《过滤器》(The Filter) — 直指核心机制
- 《没说出口》(Unsaid) — 直指主题
- 《体面》 — 反讽:这段关系从头到尾都很体面
- 《隔靴》 — 隔靴搔痒,永远差一层
待定,原型阶段先用《过滤器》。
1. 核心设定
1.1 主题陈述(一段话讲清楚这个游戏在说什么)
两个回避型依恋的人相爱,是一场没有凶手的慢性死亡:没有争吵,没有背叛,没有任何一个”可以归罪的瞬间”。每个人都在等对方先伸手,每个人都把”不伸手”合理化为体贴、独立、成熟。这个游戏让玩家亲身体验”心里有话、出口全是防御”的失控感,并在最后从第三视角看见:对方也在做一模一样的事。
1.2 角色
| 角色 | 说明 |
|---|---|
| 阿沉(玩家扮演) | 回避型。内心戏极其丰富,出口极其贫瘠。口头禅:“都行""随便""没事” |
| 阿默(AI 驱动 NPC) | 回避型。看起来云淡风轻,实际同样在等、在退、在自我合理化 |
设计原则:两个角色性别可模糊化/可选(用中性名字、避免性别化描写),让主题落在”依恋模式”而非”性别脚本”上。既普世,也规避刻板印象风险。
1.3 玩家体验目标(按优先级)
- 失控感:我想说的和我说出口的不一样,而且我拦不住
- 共谋感:每一次回避的理由,单看都成立——玩家自己也会选择回避,然后意识到”我也是共犯”
- 对称性揭示:最后发现对方的内心戏和我一模一样,心碎点在此
- 自我认知:走出游戏时,玩家带走的不是剧情结局,而是”我在关系里是不是也这样”
2. 核心机制:回避过滤器 (The Filter)
2.1 机制描述
每个场景中,玩家在关键节点自由输入阿沉真正想说的话(内心真实意图)。游戏不直接输出这句话,而是经过”回避过滤器”(AI 实时改写)后,输出阿沉实际说出口的话——通常是防御性的、疏离的、轻描淡写的版本。
玩家输入(真心): "其实我今天特别想见你,一整天都在等你消息"
↓ [回避过滤器 · AI 实时改写]
角色说出口: "哦,今天还行吧。你呢,忙不忙?"
↓
阿默(AI NPC)基于"说出口的版本"回应 → 剧情继续
关键规则:
- 阿默永远只能听到过滤后的版本 → 误解是系统性的,不是偶然的
- 屏幕同时显示两个文本:内心话(灰色/半透明,只有玩家看得见)和出口话(正常显示)——这个视觉落差本身就是叙事
- 过滤强度是一个隐藏数值,随剧情推进可变化(见 2.2)
2.2 过滤强度系统(核心数值设计)
| 强度 | 表现 | 触发条件 |
|---|---|---|
| 高(默认) | 真心话被完全改写成客套/防御 | 游戏初始状态 |
| 中 | 真心话漏出一半,但会立刻找补(“我挺想你的……我是说,顺路的话”) | 玩家在前序场景中做出微小的”暴露”选择 |
| 低 | 接近原话说出,只削弱语气 | 累积足够多的暴露时刻 |
| 穿透(特殊) | 原话原样说出,一字不改 | 每局游戏仅有极少数机会,需特定条件触发(见结局设计) |
设计意图:玩家会逐渐发现”我可以通过某些行为让过滤器变弱”——努力的方向不是”说服对方”,而是”卸下自己的防御”。这就是主题的机制化表达。
2.3 AI 实现要点(对应赛题 AI 创作要求)
- 过滤器改写:LLM 实时改写,prompt 中注入”回避型依恋的语言特征”(轻描淡写、转移话题、反问、用玩笑消解)+ 当前过滤强度
- 阿默的回应:LLM 驱动,人设 prompt 固定(回避型、有自己的内心逻辑),输入为”过滤后的话”+ 场景上下文 + 关系状态数值
- 阿默的内心独白(第三视角用):同一 LLM 以”阿默内心”身份生成,玩家在第三视角重放时才能看到
- 世界观/人物小传/场景背景文本:AI 生成,满足”世界观&剧情完全 AI 产出”要求
3. 场景清单与考点
结构:独幕剧合集,按关系时间线排列。每幕 5-10 分钟。开发优先级标注 P0(原型必做)/ P1(初赛前完成)/ P2(有余力再做)。
幕一:AA 制 【P0 · 教学关】
- 场景:两人第 N 次约会,吃完饭,账单放在桌上。
- 表层事件:谁付钱、怎么付。
- 考点:公平作为距离。AA 制表面是现代、体面、互相尊重,底下的潜台词是”我们互不亏欠”——不亏欠,就不纠缠,就随时可以全身而退。谁先说”这次我请”,谁就先暴露了”我想让这段关系欠着点什么”。
- 关键输入点:服务员站在桌边,阿默摸出手机说”扫这个吧,我们 AA”。玩家输入阿沉的真心(可能是”其实我想请你/我讨厌这种清清楚楚”),看过滤器如何把它变成”好啊,AA 挺好的”。
- 教学目标:让玩家在最低压力的场景里理解核心机制(内心话 vs 出口话的落差)。
- 本幕金句候选(第三视角旁白):“账算得越清的两个人,越不敢欠对方一句真话。“
幕二:烧烤局 【P0】
- 场景:阿默的朋友攒的烧烤局,阿沉第一次以”对象”身份出席。
- 表层事件:在朋友面前的社交表演。
- 考点:公开亲密 vs 私下疏离的反差。人前两人默契十足、有来有回,朋友起哄”你们感情真好”——散场后并排走回家,一路无话。回避型往往擅长表演亲密,因为表演是安全的:有观众、有脚本、不用真的交付什么。
- 关键输入点:
- 朋友起哄”讲讲你们怎么在一起的”,阿默看向阿沉——玩家输入,看真心话如何被过滤成一个得体的玩笑。
- 散场后的夜路,阿默说”今天他们人还不错吧”——最后一个开口的机会,玩家输入,过滤器照常工作。
- 视觉设计钩子:热闹的桌面特写 → 镜头拉远 → 桌子底下,两只离得很开的手。(此镜头在第三视角重放时才出现)
幕三:那晚之后 【P1 · 谨慎处理】
- 场景:亲密关系发生后的深夜/清晨。不呈现过程,只写之前的犹疑和之后的沉默。
- 表层事件:事后,两人背对背各自看手机;或一方的手抬起来想环住对方,停在半空,又放下。
- 考点:身体的贴近 vs 心理的设防。对回避型来说,身体亲密有时反而触发更强的逃离反应——因为那是防线被突破得最深的时刻,事后需要立刻”扳回”安全距离。最贴近的时刻紧接着最远的疏离,这个反差是本幕全部的戏。
- 关键输入点:黑暗中阿默轻声问”睡了吗”。玩家输入真心话(可能是”没睡,我在想我们算什么”),过滤后可能只剩”嗯,快了”。
- 内容红线(比赛评审 + 浏览器平台):
- 无任何直接描写,一切发生在幕后/画面全黑,只用声音留白和事后场景
- 文本分级对标青春文学而非成人内容
- 若评估仍有风险,本幕可降级为”同居后的第一个失眠夜”——考点(贴近后的逃离)不变,事件外壳更安全
- 本幕金句候选:“离得最近的那晚,是他们各自退得最远的开始。“
幕四:见家长 【P1】
- 场景:阿默带阿沉回家吃饭(或反过来,可做成玩家选择)。
- 表层事件:一顿饭,长辈在场。
- 考点:承诺压力下的同步逃跑。长辈问出那个问题——“你们打算什么时候……?”两个人同时看向对方,同时等对方接话。回避型的大考不是外部压力本身,而是”承诺被摆上桌面、无法再模糊处理”的瞬间。两人事后甚至会为”刚才的尴尬”共同打个圆场(“我爸妈就那样,别放心上”),用共谋的轻描淡写把这一关糊弄过去——又一次成功回避,又一次共同失败。
- 关键输入点:
- 长辈提问后的沉默瞬间,玩家输入(限时!倒计时 10 秒,超时自动输出”啊,还没想那么远,哈哈”)——限时机制模拟社交压力下大脑空白,是本幕独有的机制变体。
- 回程路上阿默说”别放心上”。玩家输入。
- 本幕金句候选:“两个人一起打的圆场,是这段关系里少有的默契。“
幕五:没有争吵的结束 【P0 · 终幕】
- 场景:普通的一天,没有导火索。可能只是一句”最近好像都挺忙的”。
- 表层事件:分手——但没人说出”分手”两个字。关系以”淡了""缓缓吧""都挺忙的”这种模糊语言结束,体面到残忍。
- 考点:回避型分手的本质——不是决裂,是搁置直至风化。没有一场架吵过,没有一句重话,谁也说不清是哪天结束的。“可以归罪的瞬间”不存在,这才是最窒息的部分。
- 关键输入点(全游戏高潮):阿默说完”那就……先这样?”之后,玩家获得最后一次输入机会——此时触发结局分支判定(见第 5 节)。
- 本幕金句候选:“他们的爱情没有死因。它只是没有活下去。“
备选/扩展幕(P2,时间富余再做)
| 幕 | 考点速记 |
|---|---|
| 生病那天 | 被照顾 = 欠人情 = 危险。“我没事,你别过来了”的真实含义 |
| 纪念日 | 仪式感是承诺的具象,双方都”忘了”,都松了口气,都有点失落 |
| 对方的眼泪 | 阿默罕见地情绪决堤(可能因家事),阿沉手足无措——想安慰,身体却在后退 |
| 朋友的婚礼 | 他人的承诺现场,两人全程没敢对视 |
4. 双视角系统
| 视角 | 何时 | 玩家看到什么 | 功能 |
|---|---|---|---|
| 第一视角(默认) | 每幕首次游玩 | 阿沉的全部内心独白 + 自我合理化;阿默只有言行,内心不可见 | 制造共情与失控感:“我的每个理由都成立” |
| 第三视角(重放) | 单幕通关后解锁 / 或仅在终幕后一次性解锁全部 | 内心独白全部消失,镜头拉远,只剩两个人的动作与沉默;同时首次显示阿默的内心话(灰色文本,与阿沉的并置) | 揭示对称性:“对方也在做一模一样的事”。全游戏的情绪暴击点 |
原型阶段取舍:P0 只做”终幕后一次性解锁第三视角合集”(开发量小、情绪冲击集中);单幕重放做成 P1。
第三视角的呈现形式建议:文字冷静化(去掉所有情绪形容词,只剩动作白描)+ 双方内心话左右并置排版——同一时刻,两颗心里几乎相同的话,谁都没说。排版本身就是控诉。
5. 结局设计
原则:不做”努力就能 HE”的谎言。结局差异不在”在一起/分手”,而在”有没有人说出一句没被过滤的真话”。
结局判定依据:①全程累积的”暴露时刻”数量(过滤强度是否曾降到低档);②终幕最后一次输入时,玩家是否争取到并使用了”穿透”机会。
| 结局 | 触发 | 内容 |
|---|---|---|
| 结局 A:风化 | 全程高过滤,终幕照常被过滤 | 关系无声结束。数月后两人在共同朋友的饭局重逢,客气寒暄,像从未认识过。第三视角解锁后,玩家看到当年每一幕里阿默没说出口的话 |
| 结局 B:一句真话 | 终幕触发”穿透”,原话说出 | 真话说出口了——但不承诺任何结果。阿默沉默很久,可能只回一句”……我也是”。然后呢?游戏在这里停住,不给答案。说出真话的意义不在挽回关系,在于阿沉终于没有背叛自己一次 |
| 结局 C:看见(隐藏) | 全程暴露时刻 ≥ 阈值 + 特定场景选择 | 关系仍然结束(诚实:模式不会因单方努力而痊愈),但结束得清醒——最后的对话里两人第一次谈论”我们好像都在等对方”,互相看见了。分开,但不再归因于”不合适”这种糊涂账 |
结局后统一进入 “你的过滤器报告”:AI 将玩家全程的”真心输入 vs 出口输出”做归纳,生成一份个人化的回避语言画像(“你最常用来代替’我想你’的词是:‘随便’”)。这是玩家带走的东西,也是社交传播的钩子(截图友好 → 对应比赛 +5 分传播加分项)。
6. 与赛题要求的对照(自查清单)
| 赛题要求 | 本方案如何满足 |
|---|---|
| 完整可运行原型、有开始与结束 | 独幕剧结构:P0 三幕(AA制/烧烤/终幕)+ 结局 + 过滤器报告,即构成完整闭环 |
| 部署至浏览器 | 纯 Web(HTML/JS 或 React),文本为主、轻美术,天然适配 |
| 必须使用 CodeBuddy 开发并导出对话记录 | 全部编码在 CodeBuddy 内进行;本文档作为需求输入喂给 CodeBuddy,对话留痕即开发史 |
| AI 内容完全产出(至少一环节) | 世界观&剧情:人物小传、场景背景、旁白金句由 AI 生成;更进一步,过滤器改写与 NPC 回应是运行时 AI 生成,深度高于静态生成 |
| 主题契合度(30分) | “AI 重塑叙事”:过滤器机制 = AI 不是讲故事的工具,而是”横在两人之间的那层东西”本身,机制即隐喻 |
| AI 工具使用(40分) | 运行时 LLM 双角色(过滤器 + NPC)+ 生成式结局报告,展示深度而非贴皮 |
| 游戏品质(30分) | 机制新颖(过滤器/限时输入/双视角)、情绪曲线完整(教学→反差→高潮→暴击→报告) |
7. 开发路线图(倒排,截止 7 月 15 日)
| 时间 | 里程碑 |
|---|---|
| 第 1 周 | 在 CodeBuddy 中搭建:对话 UI + 自由输入框 + LLM 过滤器管线(单场景验证手感) |
| 第 2 周 | 完成 P0 三幕内容 + 过滤强度数值 + 结局 A/B |
| 第 3 周 | 第三视角合集 + 过滤器报告 + 结局 C;部署上线(Cloud Studio) |
| 最后 3 天 | Demo 视频、介绍 PPT、CodeBuddy 对话导出、社媒发布(加分项)、提交 |
风险预案:
- LLM 改写质量不稳 → 过滤器降级为”AI 改写 + 规则模板兜底”混合方案
- 时间不足 → 砍到两幕(AA制 + 终幕)仍是完整闭环;第三视角只做终幕
- 幕三内容风险 → 启用降级版”失眠夜”
8. 创作备忘(给自己的提醒)
- 素材来自真实经历,但角色是典型化的”回避×回避”,不是任何真实的人。写的时候如果某个场景过于贴近真实记忆、开始不舒服,允许自己换壳、绕行、或者停一停。
- 警惕把游戏写成”控诉”或”辩护”——两个角色必须同等地可理解、同等地有责任、同等地值得心疼。第三视角的对称性是这个游戏的良心,不能偏。
- “典型化”的检验标准:一个焦虑型依恋的玩家玩完,也应该能看懂并被击中,而不是只有回避型玩家才有共鸣。