Inspiration
Most mystery games rely on pre-written paths. Once you figure out the developer's logic, the magic fades. We loved the "found phone" genre and the intimacy of piecing together a stranger's life through their messages, photos, and apps. We wanted to push that concept further. Our goal with Finding Maya was to build a mystery that adapts to how you investigate, rather than one that just waits for you to find the right answer.
What it does
Finding Maya is an AI-driven digital investigation game. You play as Jordan Reeves, a former college friend of Maya Chen. She was just found dead and her death was officially ruled an accident, but you do not believe it.
Working through a web interface designed to look and feel exactly like a smartphone, you dig through Maya's digital life. You check her messages, emails, photos, maps, notes, and transaction history to piece together what she discovered, who she trusted, and who she feared. The evidence is carefully layered, but the story you build from it is entirely your own. An AI story engine tracks your discoveries and shapes how the narrative responds to what you have found so far.
How we built it
Finding Maya is built as a React web application that completely simulates a mobile phone interface. The core story logic runs on Google's Gemini models, which power a custom story engine that uses the player's current evidence as its context.
We used Gemini's large context window to keep the narrative consistent as players uncover clues across all the different simulated apps. We also used Firebase and Firestore to handle saving the game state, ensuring players do not lose their progress between sessions. The phone calling feature is powered by the Google Live AI API.
Challenges we ran into
The hardest problem was designing the mystery logic itself. Since we had a specific set of evidence, every single item had to mean something. A Venmo transaction, a deleted photo, or a calendar entry all had to connect to something else and hold up under scrutiny from any direction a player might approach it. Making the clues logically consistent, well-paced, and satisfying to uncover required a lot of trial and error with both the story structure and how the evidence showed up across the simulated apps.
Accomplishments that we're proud of
- Creating a fully authored, multi-layered mystery with real investigative depth that involves corporate fraud, workplace retaliation, and a highly suspicious death.
- Building a web UI that faithfully reproduces the feeling of navigating a stranger's phone across a dozen distinct apps.
- Developing an AI story engine that maintains a coherent narrative state across a very large, branching web of evidence.
- Achieving a really clean integration between our structured frontend interactions and Gemini's generative backend.
What we learned
We learned that large context models fundamentally change what is possible in narrative game design. We are not just using AI to generate random dialogue. Instead, we are using it as a persistent story layer that tracks a complex web of variables and keeps the world totally believable as the player moves through it. We also developed a much deeper appreciation for authored mystery design because when the player can look anywhere, every single detail has to earn its place.
What's next for Finding Maya
We want to expand the game by adding even more complex apps and deeper story elements. We also want to open up our story engine so other writers can easily build their own murder mysteries.
Built With
- css
- express.js
- firebase
- firestore
- google-gemini-api
- google-live-api
- google/genai
- html
- javascript
- motion
- node.js
- react
- tailwind
- typescript
- vite
- yaml
- zustand

Log in or sign up for Devpost to join the conversation.