Inspiration
We loved the tension and dark humor of Papers, Please, but wanted to explore what happens when every character can truly talk back. What if border control became a conversation? What if AI could generate endless unique workers with distinct voices and hidden lies? We imagined a blue-collar space dystopia where exhausted miners argue with you about their paperwork, and the AI makes it feel real.
What it does
Send Me Home is a document inspection game set at a remote asteroid mining station's transit gate. You're the clerk controlling access to the last shuttle home. Workers present their badge and clearance form, but contradictions hide in the details.
How we built it
- Google Vertex AI (Gemini) generates each worker's complete case file: backstory, badge and clearance form with planted contradictions, dialogue personality, and deterministic verdict explanations
- ElevenLabs synthesizes character voices on-demand for every NPC response—no pre-recorded audio assets, every line is generated fresh
- Go backend + Connect-RPC (gRPC) + React Typescript Frontend
Challenges we ran into
- Consistency: LLMs can "drift" and contradict themselves. We solved this by having Vertex AI generate the complete ground truth and lie plan upfront, then constraining dialogue to stay consistent with that blueprint.
- Real-time voice synthesis: ElevenLabs generation takes time. We stream text immediately for subtitles while audio generates, and pre-generate opening lines during session setup to hide latency.
- Document rendering: We experimented with image generation but found it unreliable. Instead, we render clean, deterministic documents from structured JSON, faster, clearer, and more accessible.
- Making it a game, not a chatbot: We added scoring, time pressure, and transparent verdicts that cite exact contradictions. This transforms free-form AI chat into a strategic, replayable game loop with clear win/loss conditions.
Accomplishments that we're proud of
- Seamless AI orchestration: Vertex AI handles case generation, dialogue, and verdict explanations while maintaining consistency across the entire session
- Dynamic voice synthesis: ElevenLabs generates every voice line on-the-fly, no audio asset library needed, infinite variations
- Clean architecture: Connect-RPC gives us full type safety from proto definition to frontend, zero manual API code
- It's actually fun: Not just a tech demo. The gameplay loop is genuinely engaging and replayable with procedurally generated content
What we learned
- Pre-generation beats real-time for UX: Generating content upfront while showing progress creates a snappier experience than waiting on each interaction
- Voice synthesis eliminates asset management: No recording sessions, no file management, just text-to-speech API calls that sound surprisingly human
What's next for Send Me Home
- Complete voice pipeline: Stream ElevenLabs audio chunks during interrogations, add ambient station sounds and background music
- Firestore persistence: Enable multi-session campaigns, leaderboards, and analytics -UI polish: Drag-and-drop documents, field highlighting for contradictions, stamp animations, scanner effects
- Secondary check system: Add limited verification tools that reveal hidden information at a cost
- Additional documents: Expand to contracts, shift logs, shuttle tickets for more complex contradictions
- Difficulty progression: Stricter rules, time pressure that increases as queue builds, reputation system
- Narrative consequences: Track decisions over multiple shifts with branching outcomes ("stranded workers," corporate reprimands, moral dilemmas)
- Mobile support: Responsive design for tablet/phone play
Long-term vision: A fully replayable procedural narrative game where every shift tells different stories, powered entirely by Google AI and real-time voice synthesis.
Built With
- elevenlab
- gcp
- golang
Log in or sign up for Devpost to join the conversation.