MFA 毕业设计产品设计 · AI 交互 · 2026

Last Message

一款浏览器侦探游戏。玩家可以自由盘问 AI 角色,再按自己的顺序拼出案情。

最大的设计问题是:路线和对话都不固定,怎样才能让玩家不迷路?

笔记本上打开的 Last Message 侦探游戏标题画面
我的角色
产品设计师
我负责的部分
UX / UI、AI 行为与网页开发
背景
帕森斯 · MFA 设计与技术
周期
4 个月

我交付了什么

一个可以直接玩的网页游戏。我完成了调查结构、界面、角色规则和代码实现。主线尽量让人跟得上,隐藏结局则保留为一条更难的可选路线。

01 / 体验

玩家想从哪里查,就从哪里开始。

玩家以侦探身份调查一桩死亡案件。对话、档案和外部网站上的线索,都是进入案情的不同入口。

对话

想问什么,就自己打字问。

玩家可以在私聊里自由输入问题。每个角色的 prompt 都规定了说话方式和可以透露的信息。

设计选择
用大家都熟的聊天界面,让玩家把心思放在「该问什么」上。
取舍
开放输入给了玩家自由,但也要求角色对意料之外的问题有反应。
查看对话大图 ↗

交叉验证

顺着线索走出游戏。

一个角色在 X 上留下了主页。玩家需要离开游戏界面去查,再把找到的信息带回案子里。

设计选择
让一个大家都熟悉的网站,成为这桩虚构调查里的另一份证据。
取舍
离开界面让人更入戏,但回来的路和下一步该做什么就没那么明显了。
查看线索大图 ↗

02 / 调查流程

告诉玩家还能往哪查,但不直接给答案。

核心循环是盘问、查看、把证据连起来。新信息打开另一条路时,玩家可以回头再看之前的档案和角色。

调查循环 · 大致结构

  1. 01

    接下案子

    一份事件报告交代玩家的身份,以及这桩谜案。

  2. 02

    盘问与查看

    在对话、成员档案、通话记录和日记之间选。

  3. 03

    把证据连起来

    交叉比对档案,顺着线索查到网上去。

  4. 04

    打开另一条路

    用查到的东西解锁更多档案,回头再找角色聊。

  5. 05

    走到一个结局

    不同的路会把案子引向不同结果;把相互关联的线索看得更细,可以打开一条可选的隐藏路线。

新信息会把玩家送回之前的对话和档案。

八个结局,外加一个隐藏的第九个。

录像中的故事地图从结局画面打开,标出已经解锁和仍然锁着的分支。玩家走到一个结果后,可以从这里回看整个案子还有哪些路线。

信息架构

每类证据都有自己的地方。

聊天、成员名册和任务板各占一条路由。案子越查越大,玩家也能回到同一套档案结构里。

状态反馈

把变化显示出来。

锁着的档案、可看的文件、成员状态和计数器,把「已经知道的」和「还要查的」区分开。

非线性结构背后的早期探索

前期两个小练习让我确认了两件事:同一组碎片,不同的人会拼出不同故事;查线索的顺序也因人而异。这些练习只影响了概念方向,没有验证最终游戏是否好用。

带标注的废弃物品,用来探索人如何从痕迹里推出故事
01 / 痕迹推理参与者从一堆废弃物品推测主人是谁。他们讲得都很笃定,但结论各不相同,说明同一条线索容得下不止一种读法。
一间画出来的房间,里面有十件可查看的物品和它们的线索记录
02 / 视觉侦探练习房间里有十件可以查看的物品,各配一小段记录。参与者自己决定查看顺序,这一点影响了后来模块化的档案结构。

03 / AI 交互设计

玩家问了剧本外的问题,角色也得接得住。

自由对话不能没有边界。我为每个角色写下性格、知识范围和跑题时的回应方式,再把这些反应放回故事里。

现有版本里的一条边界

警告会变成后果。

聊天记录里留着反复追问天气的对话,还有 Lily 的几次警告。录像接着显示连接被断开,以及「Revoked」结局。

意图
即使玩家跑题,角色也要留在故事里回应,而不是突然变成通用 AI 助手。
取舍
收回权限让这条边界真的有分量,但也可能误伤正常的好奇心;警告说得够不够清楚,还需要再测。
查看交互大图 ↗

01 / 角色

口吻要一致

每个角色有各自的 prompt,规定语气和说话方式。比如 Midnight 是冷静、克制的,带着刻意保持的距离感。

02 / 知识

能说到哪为止

规则把「承认另一个成员存在」和「把他的私人档案说出去」分得很清。这些指令是引导回答的,不能保证模型永远不会说多。

03 / 剧本外输入

玩家试探规则时,角色怎么回应

跑题、质疑管理员、追问 AI 本身,各有不同的回应规则。反复试探还会触发故事里的后果,录像里展示的就是其中一种。

角色 prompt 和回应规则

示意用的对话 · 不是测试实录

玩家
「1 号是谁?」
规则
可以确认这个成员存在;不能把他的私人档案说出去。
角色
「这里还有别人。他们身上的东西,不该由我交出去。」
Midnight 的系统 prompt,含语气、对话方式和边界指令
角色层面的指令Midnight 的 prompt 规定了语气、说话方式、边界,以及跑题时怎么处理。
中英文的规则,用于识别跑题和对故事本身的质疑
输入处理规则中英两套模式,覆盖询问成员、跑题消息,以及想拆穿这个虚构设定的尝试。

用 Claude Code 和 ChatGPT API 搭的。我的设计工作包括角色、回应边界、界面状态,以及对话和进度之间的关系。

04 / 测试与迭代

主线要跟得上,隐藏路线可以难一点。

隐藏结局要求玩家更仔细地看线索,以及线索之间的联系。能不能发现这一层本身就是难度的一部分;让所有人都通关从来不是目标。

8参与可玩版本测试的玩家
约 35 分钟玩家自述锁定主要嫌疑人的时间
8 人中 2 人走到了隐藏结局

8 位玩家中有 2 位走到了隐藏结局。这个结果只能说明这组玩家是怎样探索可选路线的,不能证明难度恰好合适,也不能用来判断整个游戏是否好用。

01 / 开场

先让玩家知道自己是谁,再让他开口。

开场文字太多,测试者搞不清自己的身份,也不知道为什么要查这个案子。

改动
缩短开场说明,把第一屏改成一份视觉化的警方事件报告。
后来的观察
在 8 人的可玩版本测试里,多数玩家能跟上主线,也认出了主要嫌疑人。但这不是一次只针对开场的前后对照测试。

02 / 对话

为剧本之外的问题做设计。

玩家会质疑这个虚构设定;基于关键词的回复来回重复,角色显得很假。

改动
改成每个角色一套 prompt,写清性格、知识边界,以及跑题输入的处理规则。
已实现的行为
现在的版本能演示警告和「收回权限」的结局。边界到底稳不稳,还需要更多样的提问来评估。

03 / 发现

单独评估这条隐藏路线。

8 位玩家中只有 2 位走到隐藏结局。这个数字不能证明难度合适或不合适。

下一步评估
下一轮会记录玩家卡在哪里、以为自己还漏了什么,以及界面反馈是否足够支持下一步判断。
设计意图
导航和档案状态应该帮玩家继续调查,但不能把谜题本身的难度拿掉。
第一个能玩的聊天室
早期的浅色聊天界面,有一个公共频道和成员列表

一个朴素的聊天室加成员列表,是早期试交互的办法。测试暴露出的问题是:得先给玩家一个身份和一个查下去的理由,再让他开口聊。

05 / 从 Figma 到能跑的网站

从 Figma 做成网站后,才发现静态稿漏了多少状态。

高保真稿只定下了视觉语言。放入真实内容后,导航、锁定档案和不断变化的成员状态,才真正变成需要解决的问题。

左边是 Figma 稿,右边是实现出来的成员名册和任务板
左:Figma 稿。右:实现出来的界面,含锁着的档案、成员状态和日记权限。

导航

内容变多,就把目的地拆开。

当单页堆叠太密时,聊天、名册和任务板各自挪进了自己的路由。

交互状态

拿到权限前后都要设计。

锁着和解锁的档案,还有成员在世与死亡的状态,都需要在默认画面之外有能一眼认出的处理。

语言

中英文输入都要支持。

角色规则是中英两套一起维护的。要让两种语言表达同一个意图,光把界面文字翻过去是不够的。

视觉系统 / 一份读得下去的数字档案

字体

像素风标题字立住虚构感;正文用等宽字,让档案有统一的节奏。

对比

深色底配浅色字把证据框出来,状态和警报用红色点出。

档案模式

重复出现的表头、文件夹、状态标签和计数器,帮玩家认出哪些是新信息。

接下来要做的

下一轮要确认:这个谜够难,但不是没法解。

我会继续看主线是否容易跟、隐藏路线能否靠推理走通,以及导航和档案状态给的反馈是否足够,同时避免提前泄露答案。