Director, Lead Engineer, Producer · Team of 7 · Jan 2024 - May 2026
First-person, Narrative | Released | Unity, C#, Perforce, Wwise
Before Closure is an interactive story dedicated to the people we love and once loved.
It’s the first game I’ve led from concept to launch as a director. The project began as my MFA thesis "Closure" at USC Interactive Media program in 2024, where I was lucky to bring together a small, talented team. We continued development after graduation, taking the game to Tokyo Game Show, Slamdance, and Beijing Feinaki Animation Week before finally bringing it to players on Steam in May 2026.
Like many people on small indie teams, I wore several hats throughout development:
I built six prototypes to explore eye-controlled gameplay and find the game’s creative direction.
I partnered with our writer, Grace Mei Ng, to shape the story and design the gameplay, interactions, and sequences together as a cohesive interactive narrative experience.
I conducted 50 playtest sessions, using questionnaires, gameplay metrics, and qualitative feedback to guide design iterations.
Late in production, I designed an additonal Epilogue Mode within time and resources constraints, which offered a customizable immersive audio experience as part of our crowdfunding marketing campaign.
I built and maintained multiple core gameplay systems in C#, including input, interactions, camera, and sequencing.
I collaborated with fellow engineers Kevin Hu and Julia Wang on larger systems such as UI, localization, and save systems.
I worked closely with the audio production team on interactive audio and voiceover implementation, bringing multiple adaptive soundtracks, 300+ sound effects, and 540+ voice lines into Wwise and Unity.
I participated in 130+ code reviews and investigated crashes, error logs, and performance issues, helping maintain the codebase and ensure a smooth player experience across 50+ released builds.
Eye Detection
I architected and maintained the detection system to support our eye-controlled gameplay from early prototypes through production, during which I worked with other engineers to integrate new systems and iterate on the detection technology: new detection algorithms and CV models, more debugging and analytic features, etc.
Subtitle System
Since Wwise doesn't provide any subtitle feature, I built a subtitle system that embeds subtitle references within wwise source audio. This ensures the alignment between the subtitle timing and voicelines while supporting different way for authoring subtitled VOs.
I brought together and led a seven-person development team, coordinating a wider production team of more than 20 people across audio, voiceover, QA, and localization.
I planned and managed the project timeline from student production through studio development, ensuring the project meets milestones and deadlines for festivals/showcases, marketing campaigns, and the final Steam launch.
What worked
Relentless prototyping during ideation that helped me find the right combination of mechanics and narrative to create a deeply emotional and sensory experience.
Well-scope design and timely design decisions on what to cut that facilated a sustainable, managable production timeline and left room for trial and error in areas unfamiliar to the team, such as voiceover and localization.
Cross-disciplinary collaboration with art, audio, and narrative teams throughout development that helped bring the game together as a cohesive interactive story.
What I could've done better
While the core mechanic was strong, I moved into full production before thoroughly exploring its design possibilities. This left the later parts of the game without enough gameplay variety to fully support the narrative arc.
If I were to do this again, I’d spend more time exploring the design during pre-production. I'd use the vertical slice to test and validate design, rather than treating it merely as a production milestone.
Our early planning and design were well documented, but I didn’t keep the documentation current once I got into the weeds of full production.
If I were to do this again, I’d review, update, and add documentation regularly throughout production. I’d also pay closer attention to questions from new team members and teammates working on unfamiliar systems, since those often reveal gaps or outdated information.
During pre-production, I over-engineered some technical systems (e.g. object interactions) while underestimating the preparation others needed, particularly voiceover localization.
It was hard to judge how much engineering and redundance each system needed at the time. Nevetheless, one lesson I took away is that it’s never too late to revisit those decisions and make time to address technical debt during production.