Inspiration
We're both drawn to puzzle-horror — the 2019 Escape Room movie was the direct spark. That film's idea of a mysterious "collector" trapping people in beautifully designed, lethal rooms stuck with us, and we wanted to bring that tension to Reddit: not a jump-scare game, but a slow-burn "solve it or the room solves you" experience.
What it does
Escape Rooms: The Ultimate Challenge is a 3D third-person puzzle-survival game, playable natively inside a Reddit post. Players pick a character, read their personal letter from "the collector," and are dropped into the first of three rooms — The Study, The Furnace, and The Frost — each with its own puzzle logic, hazard (a compressing ceiling, rising heat, freezing cold), inventory items, and a countdown clock. Solve the room fast enough and clean enough, and you move to the next; run out of time or make the wrong move, and the room punishes you.
How we built it
The 3D engine and room puzzles started as a standalone Three.js prototype we'd built earlier. What's new this hackathon: the entire Devvit Web port (server, Redis persistence, build pipeline), a full procedural audio overhaul (tension that escalates as your timer runs low, a cinematic ending sting), a daily-retention system (a named daily trial, a leaderboard that resets every day, a streak counter), a hearts-based feedback system, and mobile-specific fixes (touch controls, onboarding).
Challenges we ran into
Honestly? We wanted this to be cinematic — slow pans, dramatic reveals, the works. Reality
was a lot more "why is the server returning the wrong response shape" than "why is the
lighting not moody enough" 🫠. Porting a standalone HTML game into Devvit's actor-based runtime
meant working through real platform-specific issues one at a time: the correct build pipeline
(@devvit/start's Vite plugin instead of a hand-rolled bundler), the exact request-handling
contract Devvit's server runtime expects, and the strict response schema Devvit's menu actions
require. Every one of these was a silent, undocumented-feeling mismatch rather than a visible
bug — the kind of thing you only catch by reading real error output and, eventually, the
installed package's own source code line by line.
Accomplishments that we're proud of
Getting a real, unmodified Three.js game running natively inside a Reddit post with zero gameplay cut for the platform. Shipping real persistence — a Redis-backed leaderboard (both all-time and daily) and personal bests, fully surfaced on both the title screen and win screen. And building an actual reason to return: every day the Collector names a new trial, the leaderboard resets, and players build a streak.
What we learned
A lot about how Reddit's Devvit platform actually works under the hood — its webview architecture, its actor/RPC-based server runtime, and how differently a "normal" Node server behaves once it's wrapped inside a serverless, sandboxed environment. Also: patience. Some of the best debugging happens the third time you reread the same three-line error message.
What's next for Escape Rooms: The Ultimate Challenge
More rooms toward the full 50-room vision, a proper leaderboard UI on the win screen (the data is already tracked, just not surfaced yet), and — yes — eventually, more of that cinematic polish we originally set out for.
Log in or sign up for Devpost to join the conversation.