Inspiration

Survival games are usually about scale: build the base, grow the army, tame the map. I kept wondering what the genre feels like when you shrink it all the way down. Not a settlement. One house. Not a population. A mother and two children. Every mechanic suddenly has a face: warmth isn't a bar, it's whether your kids sleep in a cold room tonight.

The image I started from was simple: one warm window in a frozen valley, and someone out in the dark walking toward it. Reddit made that image playable in a way nothing else could. The someone in the dark is real. When a stranger pounds on your door mid-storm, it's an actual member of your subreddit, and your whole community is out there surviving the same winter on the same leaderboard.

What it does

You play Mara. She reaches a ruined house in a blizzard with her two children, Ola and Pim, and there's exactly one working thing in it: a hearth. The hearth eats wood by the minute. Every unrepaired room leaks heat. Storms arrive on a visible countdown, each one named (Varga, White Maw, Old Teeth), and every eighth storm is The Long Night, which is longer, meaner, and tears holes in your roof while you hold on.

Between storms you live. Repair a room and Mara walks over and hammers it back together. Step into a repaired room and the camera drops top-down so you can furnish it: a stove that cooks faster, beds with patchwork quilts, a lamp that actually pushes back the dark. Go out to the yard for wood, scrap, and ice fishing. The children are not decorations. They get hungry and complain, run to the table when food's ready, fall sick if the house freezes, and one calm day they'll run outside and build a snowman that stays in your yard for the rest of the game.

The hook is the door. When someone pounds on it mid-storm, that's a real redditor, pulled from recent posters and commenters in the subreddit you're playing in. You choose: open now and let the cold in, or make them wait and risk finding only footprints. Let them in and u/whoever lives in your house, cooks when the pot runs low, and shows up in your family portraits. The Valley leaderboard ranks every household in the sub, and after each storm the game tells you how many neighbors survived the night with you. The whole subreddit is getting through the same winter.

How we built it

Devvit Web with a plain Canvas 2D client. The server side is a small Redis-backed message router: saves keyed by user ID, sorted sets for the leaderboards, a daily counter for storm survivals, and the Reddit API for pulling the visitor names.

The house renders in an oblique 3/4 projection so each room reads as an open box you look down into. Characters, furniture, and yard props are PNG sprites and every single sprite has a hand-drawn Canvas fallback, so the game boots instantly and upgrades itself as images load. Fire, snow, light pools, and the music-box lullaby are all procedural, WebAudio included.

Most of my testing ran headless: a local server, a save injected through a CustomEvent, and QA hooks on the scene object to force storms, teleport into rooms, and read the children's AI state. Almost every feature in the game was screenshot-verified that way before I ever opened Reddit.

Challenges we ran into

The big one was throwing work away. I built a full top-down colony sim with worker assignment before realizing it wasn't the game the ad promised, and rebuilt the entire play space around one big cutaway house in a day. Then the first version of the house looked like a diagram, so the projection got rewritten from flat elevation to 3/4 oblique.

The sneakiest bug: a breath-puff effect used a modulo on a coordinate that could go negative, which produced a negative circle radius, which threw inside requestAnimationFrame and silently killed the whole render loop. No console error surfaces from a dead RAF callback in a headless browser. The world just froze. I found it by trapping window errors manually.

Also: AI image generators pad sprites with invisible margins, so everything rendered tiny in-game until I auto-trimmed all 34 PNGs.

Accomplishments that we're proud of

The dinner. There's a bell on the hearth, and when you ring it the whole family walks to the kitchen, sits around the table, and eats together while little "mmm!" bubbles float up. It also happens on its own when everyone's hungry and the pot is full. It has no win condition attached. It's just the point of the game. My one playtester stopped giving me feedback for a minute the first time it fired on its own.

Also the arc. The game has an ending that isn't an ending: survive The Long Night and you get a dawn screen with your numbers (storms weathered, souls under the roof, family dinners, "the snowman: still smiling") and Winter 2 starts, harder. Fail and the cold gets in, the house is torn open, and the family survives anyway. You can lose the house but not them. That felt right.

What we learned

Fixed layouts beat free placement for this kind of game. Judgment calls about "is this fun" need a playable build every single iteration, so ship after every feature, not after every milestone. And a rendering fallback for every asset isn't just resilience, it's a workflow: I could design the whole game in drawn shapes and let the art land later without touching code.

What's next

Guest survivors with actual skills, a share card for the dawn screen, and storms influenced by the live weather of the subreddit (the engine for that already exists, it just isn't loud enough yet). And I want the snowman to melt in Winter 3 and the kids to rebuild him. Some things you keep fixing.


Built With

Share this project:

Updates

Submission history