(SCROLL DOWN TO SEE MORE INFORMATION ABOUT THE PROJECT)
Biet vay
Stepping into the what-ifs.
Role
Solo development
Genre
Narrative
Experimental
Puzzle
Tools used
Unity
Blender
FMOD
Yarn Spinner
Duration
3 Months
About
Regrets in life. It is a fantasy that you can attempt to fix what “could have been” by rearranging your words to form different sentences in various situations of life.
…and in Vietnam, we say “Biet vay,…” before every action we wish we could undo.
Core gameplay loop
Loop overview
Players assemble sentences to interpret a character’s regret. Including or omitting the phrase “Biet Vay” determines whether the player can enter a fantasy scenario, where dialogue choices alter the outcome. Each loop concludes with observing the result and moving to the next character.

Gameplay loop illustrating player flow and decision points
Key systems

Sentence Construction System
The player constructs a sentence as their dialogue choice. Instead of selecting an option, meaning is shaped by how words are arranged, mirroring the way people think before speaking.

Words that reflects character's emotion
Certain words carry emotional weight and are harder to interact with. This reflects hesitation or difficulty in expressing certain feelings.

Micro-interactions
Small interactions let the player progress through the game while supporting the mood of the scene.

Reflection Space
After completing the vignettes, players can view and share their own “Biết Vậy” as a form of reflection. This space reinforces the theme of letting go rather than altering outcomes.
Process & prototyping

Initial Concept
At first, Biet Vay was planned as a 2D game focused only on removing the phrase “Biết Vậy.” The idea was to let the player see regret without trying to change it.

Exploring the Fantasy
As the project developed, I started asking what would happen if the player could step into that regret. Instead of only observing, the player could enter the fantasy and experience what it feels like to try to change the past.

Building Meaning Through Words
I tested a system that combines 2D word ordering with 3D space. Sentence construction became more than a dialogue mechanic: arranging words allowed players to express intent through interaction, rather than selecting pre-written options.

Design Direction
Switching between 2D and 3D, and building sentences word by word, encouraged players to slow down and read carefully. Making a sentence became part of the decision itself, helping connect interaction to themes of regret, hesitation, and acceptance.
Technical implementation
Narrative tooling
I built the narrative system on top of Yarn Spinner and extended it in C# to support custom word-ordering interactions. Instead of treating dialogue as static text, narrative scripts define interactive word blocks and control how sentences are constructed during play.

Word Generation
Dialogue is hand-authored using a structured format where sentence fragments are explicitly defined by the writer. Word breaks are marked directly in the script, allowing each dialogue option to be presented as an interactive, rearrangeable sentence during play.

Tag-Based Modifiers
Some words are marked to behave differently during interaction. These markers allow certain words to feel harder to drag, or to act as special words like “Biết Vậy” that can change other words in the sentence. This makes emotional weight readable through interaction without adding new systems.

While time-consuming at first, this system allowed me to focus more on narrative design without introducing additional technical complexity. It made it easier to iterate on dialogue, emotional beats, and structure while keeping the underlying system stable and reusable.
For a more detailed breakdown of the technical implementation and iteration process, see the Process Retrospective.
Additional reads
Process Retrospective
A behind-the-scenes breakdown of my design and development process, covering technical decisions, narrative iteration, and problem-solving across audio, visuals, and systems. This document reflects on what worked, what failed, and how the project evolved through playtesting.
Playtest reports
A collection of playtest reports documenting player behavior, usability issues, and narrative clarity across multiple builds. These notes informed key design changes and helped refine pacing, interaction, and player understanding.
Pre-production & Design Documentation
Early planning documents outlining the project’s vision, scope, and design direction.
Post-motem
This project was the biggest risk I have taken so far, as it focused on narrative writing, which is not my strongest skill. Writing my own story for the first time was difficult and often frustrating, but it made the process more engaging and meaningful. It also showed me how visible a lack of literary understanding becomes when building narrative systems. Despite these challenges, I am proud of the technical foundation of the project. While the system is not overly complex, it is clear, maintainable, and easy to revisit and extend without breaking the overall structure. If I were to make this project again, I would still choose to write the story myself, as it highlighted an area where I want to continue growing as a designer.