Skip to main content
Back to selected work

Case study

Stay With Me: Deep Sea

You are the only voice on the other end of a damaged comms line. Mara, a marine biologist trapped 412 metres down at the Halcyon research station, reaches out in real time. Your replies, the evidence you uncover, and the time between messages shape whether she survives. A story-led, offline-first mobile experience built with React Native and Expo.

Halcyon research station on the dark ocean floor, lit by a small submersible
My role
Sole designer and engineer: narrative design, visual direction, game-engine architecture, mobile interface, native integrations, testing, and release hardening.
Year / status
2026 · Release candidate

Inside the experience

Halcyon’s moon pool with a submersible, safety rails, and the dark ocean beyond its observation window
The moon pool: one of Halcyon’s recovered camera views.
A flooded service corridor with amber emergency lights and a trailing cable disappearing into the water
The service gallery: environmental storytelling through recovered footage.

01 — The challenge

Make the waiting part of the story.

Real-time interactive fiction has to make the waiting meaningful and keep the story coherent across days of play. Branching stories can quickly become impossible to maintain, while notifications and interrupted sessions can break the experience on a real device. I wanted a complete, grounded horror story where every choice carried weight, without a server or microtransactions.

02 — The approach

A pure engine, a damaged terminal, a world to uncover.

I separated the narrative into a pure TypeScript engine, typed story content, and a mobile layer for saves, notifications, sound, and haptics. A vine structure lets choices change the journey while returning to a sustainable story spine. The interface acts as a damaged terminal: persistent radar, station tools, recovered stills, audio logs, and a comms thread make the phone part of the fiction. The newer imagery gives Halcyon a physical identity, with a station exterior and distinct camera views that support exploration rather than simply decorating the text. Automated checks exercise the engine, story references, mobile state, recovery paths, and browser layouts.

03 — The outcome

A complete story, moving through release hardening.

The complete three-act story is playable, with three endings, recovered camera footage and logs, an archive, station tools, local notifications, persistent checkpoints, and settings for the reading experience. The project has reached release-candidate hardening, with automated coverage and Android baseline checks complete. Final signed-build regression checks and physical iOS verification remain before release.

More work

Keep exploring.