Inspiration

I actually started this hackathon building a different game, a daily speed-dungeon called "One More Room." A few days in it was clear it leaned too hard on RNG and just wasn't fun to tap through on a phone, so I scrapped it and rebuilt as "Before the Dungeon." Same idea of "one shared daily thing," but instead of playing the hero I put you behind the counter of the shop the hero buys gear from before they go get themselves killed. Same customer, same choices, for everyone, once a day.

What it does

A customer walks into your shop needing supplies before a dungeon run. You sell them something (or don't), you set the price, discount, fair, or greedy or you refuse to serve them entirely. What you don't get is an answer. Whether the item mattered, whether they made it, whether refusing them was actually the right call, none of that shows up until tomorrow's recap. It's Wordle with consequences you don't get to see yet.

How I built it

Devvit web-view app: Phaser 3 for the pixel-art shop scene and customer sprite, React on top of it for everything else like dialogue, item picker, price chooser, all the screens as an absolutely-positioned overlay on the canvas. TypeScript throughout, Vite for the client build, a small Node server on @devvit/server with Redis behind it for leaderboards and the next-day recap data.

Challenges I ran into

The big one hit with about two hours left on the clock. I decided pretty late that showing the outcome right after a choice was killing the whole point — you'd sell an item, see "+10 respect, harm caused" pop up, and the tension was gone in three seconds. So I stripped all of it out: no more happy/angry reaction animation, no more stat deltas, no score, nothing on the end-of-day screen either. All of it moved to the next day's recap.

Which is the right call for the game and also creates an obvious problem: a judge isn't coming back tomorrow to see if the mechanic pays off. So the end-of-day screen got an optional "peek at tomorrow's recap" button — collapsed by default, so a normal player never sees it and keeps the suspense, but it lets anyone pull the full reveal (score, outcome, leaderboard) right then, plus play through a second, bonus customer so you can see what a real "next day" actually looks like. One button, two audiences.

What I learned

That "hide the result until later" is a genuinely good idea for this kind of game and a genuinely annoying one to demo.

Hope you like it!

Share this project:

Updates

Submission history