MFA Thesis ProjectProduct Design · AI Interaction · 2026

Last Message

An immersive ARG you play in the browser. It breaks away from the usual click-an-option way of talking to NPCs: players can say whatever they want to them, and every conversation shapes which ending they reach.

Last Message detective game title screen on a laptop
My role
Product Designer
My scope
UX / UI, AI behavior & web development
Delivered
The investigation structure, interface, character rules and code
Timeline
4 months

01 / Product highlights

A new kind of AI game experience

Players investigate a death as a detective. I wanted the game to feel as immersive as possible, so there's no single direction to explore in. The story is non-linear.

Conversation

A lot of freedom for players

Instead of choosing from dialogue options like most games, players can type anything they want to the NPCs. Each NPC gives its own side of things, which helps players work out the story.

Design choice
A simple chat interface, close to the ones people use every day, so there's little to learn and players can focus on talking to the NPCs.
Tradeoff
Open input gives players freedom, but it also means some will ask things that have nothing to do with the game, just out of curiosity. So when I designed the endings, I made it so that asking too many unrelated questions triggers a bad ending straight away.

Real and fake, intertwined

Built from fictional pages and real content

Some of what players find in the game can be followed up on the real internet, on sites like Wikipedia and X, where there are more clues.

Design choice
Blurring the line between real and fictional, so players feel more immersed in it.
Tradeoff
Mixing real and fake does make it more immersive, but jumping between several sites confuses players, and it's hard to tell which parts belong to the game. The archived pages also still have some problems, so this part isn't smooth yet and still needs work.

02 / Game flow

The game is non-linear, with eight different endings

Player flow

  1. 01

    Enter the game

    As a detective, the player gets a call from a woman reporting a case.

  2. 02

    Enter the mysterious site

    Slip into the group and talk to the NPCs to get more access.

  3. 03

    Get a new account

    Get a new account in the group, then chat with its members to dig up more hidden information.

  4. 04

    Get admin access

    Use what you've found to unlock more files and open up private chats.

  5. 05

    Different endings

    Talking to different NPCs leads to different endings. Going off the beaten path may help you find secrets fewer people know about.

Early explorations behind the non-linear structure

Two small early exercises confirmed two things for me: people piece together different stories from the same fragments, and everyone looks at the clues in a different order. These exercises only shaped the concept. They didn't test whether the final game is easy to use.

Annotated discarded objects used to explore how people infer a story from traces
01 / Trace inferenceParticipants guessed who owned a pile of thrown-away objects. They were all confident, but they came to different conclusions, which showed that one clue can be read more than one way.
Illustrated room with ten inspectable objects and their clue records
02 / Visual detective exerciseA room held ten objects to inspect, each with a short note. Participants chose the order themselves, and that fed into the modular file structure I used later.

03 / AI interaction design

Giving players freedom while the NPCs keep the story moving

Language boundaries I set for the AI NPCs

Warnings turn into consequences

If a player keeps asking an NPC questions that have nothing to do with the game, the NPC warns them and won't answer. Trigger that reply enough times and the player gets "reported" to the site's admin and kicked out of the group chat, and the game goes to a bad ending.

Intent
Even when the player goes off topic, the NPC stays in character, while still giving hints and warnings.
Tradeoff
Some borderline questions can get misjudged, and it can dampen players' curiosity, which might make them hesitant to dig for the more hidden endings.
Character prompts and response rules

Every NPC you can talk to has their own way of speaking, backstory and range of knowledge. Ask them about something outside of that and they'll be vague. Players get more information from each person's file and from talking to the NPCs, and that's how they learn about the dead woman and the website. The NPCs also have their own web of relationships, so if you mention a name or handle they don't know, they'll be confused too.

Midnight's system prompt with tone, conversation, and boundary instructions
Character-level instructionsMidnight's prompt sets the tone, the way of speaking, the boundaries, and what to do when the conversation goes off topic.
English and Chinese rules for off-topic detection and challenges to the story
Input-handling rulesTwo sets of patterns, in Chinese and English, covering questions about members, off-topic messages and attempts to break the fiction.

04

Testing and iteration

Over the project I ran two expert interviews and two rounds of user testing. Every round gave me important feedback for the next iteration.

First user test

I invited six classmates to test the first version. In this round, most players only got as far as the point where they had to steal a new user's account, log in, and talk to the story NPC in it.

Five of the six said the task was too hard, and four didn't realize they were playing the detective. They thought they were the dead woman's sister. Only one player got the new account without any hints, and they'd played a lot of games like this.

One player also felt the interface was too plain and had no visual style of its own. It looked close to the chat apps people use every day, but it was short on visual design.

Players also said the NPC replies were too limited. At the time, NPCs only responded when you hit one of the six keywords I'd set. If you didn't mention a keyword, you got nothing back, which left players confused about how to move the game forward.

Based on this feedback, I made these changes after the first round:

01Added a progress bar and a hint button

This lets players see their overall progress, and when they're stuck, they can click for a hint to get a bit of information and keep going.

02Brought AI NPCs into the chatroom

The NPCs now reply based on what the player types, and whatever the player says affects how they answer. I kept the original six keywords too, so hitting one still gives a fixed reply and its information.

Two expert interviews

I had a level designer from miHoYo and a professor from Parsons each play through the whole game, then talked with them about the game's logic and where the AI's boundaries should be.

Talking game logic with a miHoYo level designer

After he'd played the whole thing, we went back over the game's logic.

At first the game only moved one way: players just picked who they thought the killer was at the end, and that decided the ending. That made it fairly one-dimensional to play. After we talked it through, he suggested reworking the logic, so I made the changes that became the current version.

Talking about the AI's boundaries with a Parsons professor

I also talked at length with a professor at Parsons about the AI's behavioral boundaries.

Watching him use the AI NPCs, I noticed he'd often bring up topics that had nothing to do with the story. There wasn't a bad ending for getting banned yet, so he could just keep chatting. The NPCs didn't play along, but the story didn't move forward either.

So I went back and strengthened each NPC's personality and the limits on how they respond.

Second user test

I recruited eight players online with different amounts of experience with games like this, and ran the test remotely. Each session ended when the player reached their first ending, followed by an interview. Overall, players took about 20 minutes to reach their first ending.

Most players chose to explore on their own instead of using hints

I noticed most players never clicked the hint button, so I asked them why in the interviews.

Six of the eight saw the hint button. Five of them said that with games like this, they'd rather find things out themselves, so they didn't want to use hints.

The other one used the hint button several times. He said that when he couldn't figure out what to do next, the hints helped him keep going instead of staying stuck.

The remaining two didn't notice the hint button, so they never used it.

Some players kept exploring other endings after the test

I left the site open to them for another two days. During that time, five players came back to tell me they'd reached other endings, and two of them found every ending, including the hidden one.

One more player figured out how to unlock the hidden ending, but couldn't finish it because of a bug.

The first playable chatroom
Early light chat interface with a general channel and member list

A basic chatroom with a member list was an early way to try out the interaction. Testing showed that players needed an identity and a reason to investigate before they'd start talking.

05

From Figma to VS Code

I designed the high-fidelity screens in Figma first, then used the images and written descriptions to have Codex and Claude Code help me build the site. The built version differs from the designs in a few details, but overall it's pretty faithful. I iterated on the whole site this way through most of development.

For the overall look, I went with a retro electronic style. Partly I wanted to build a creepier atmosphere, since it's a detective game. And the story is actually set around 2012, when interface design wasn't as modern as it is now, so I wanted the visuals to bring back the feel of that time.

The member file screen in FigmaThe member file screen as built, with locked records, member status and diary accessThe mission board in FigmaThe mission board as built, with the call record and its caller, location and time
Each design next to what was built from it: first the member file, then the mission board.

06

Reflection and next steps

After the user research and testing, I think the difficulty is about right for now. But because of time constraints, I didn't get to develop each NPC's backstory as thoroughly as I'd like.

If I have more time in the future, I'd like to flesh out the whole story and push the experience further. I'll also keep improving the UI/UX.