Inspiration

I grew up on Line Rider and Hill Climb Racing, and I've always loved that moment where something you scribbled becomes something that moves. When Reddit announced Games with a Hook, the idea clicked instantly: what if the drawing itself was the post? You sketch a road, a car drives it, and the whole thing lives right in the feed where your friends can try to beat your time.

What it does

Draw & Drive is a physics puzzle-racer built natively for Reddit. You draw a road from START to GOAL with your finger, hit GO, and a Matter.js-simulated car ignites, revs, and drives your line. Sharp corners flip it. Spikes end it. Smooth lines win races.

Around that core loop there's a full game:

  • A 25-track campaign across 5 chapters, ending in Gravity Canyon, where your car has no engine and gravity is your only fuel.
  • A level editor with walls, ramps, spikes and boost pads. Before you can publish, you have to beat your own track that proves it's solvable, and your time gets baked into the post title: "Beat 4.48s on 'Funda Bullet'". Every published track becomes its own interactive challenge post.
  • An ink budget on some tracks, so you can't scribble your way to victory efficient lines only.
  • The Daily Drive: a scheduler posts one track every day with its own fresh leaderboard, and playing daily builds a streak.
  • Leaderboards everywhere, including a pinned comment on each challenge post that updates itself whenever someone sets a new record.

Even the splash screen in the feed is playable you can doodle a mini road before you ever open the game.

How I built it

Devvit Web on the Reddit side, with a Hono server using Redis for levels, leaderboards, streaks and progress. The client is deliberately boring tech: TypeScript, a hand-rolled HTML5 canvas renderer, and Matter.js for the physics. Every sound effect engine crank, boost whoosh, crash, the sad trombone when you get stuck is synthesized live with the Web Audio API, so the game ships zero audio assets and has zero licensing headaches.

Challenges I ran into

I actually started with Phaser and ripped it out mid-hackathon. For a game that's mostly one canvas and one physics body, the framework was fighting me more than helping, so I rebuilt the renderer from scratch in a weekend. Best decision of the project.

Physics feel was the hardest part. The car used to nosedive under acceleration turns out applying thrust at the chassis center pitches the nose down, and moving the force to wheel level fixed it, like an actual car. I also chased a wonderful bug where steering assist randomly died on long straights: path simplification merged them into one giant segment, and my "nearest road" check measured distance to segment midpoints. Cars near the ends thought there was no road at all.

Reddit's sandbox taught me things too webviews block external origins, so Google Fonts silently failed until I self-hosted the font, and I learned to treat every post type (game, challenge, daily) as its own little entry point.

What I learned

Retention isn't a feature you bolt on; it's a hundred small decisions. The single biggest gameplay improvement was making Retry keep your drawn road, so crashing becomes "tweak one corner" instead of "start over." That, the daily streak, and a time-to-beat in every post title are what make it hooky.

What's next

Ghost replays of the leaderboard leader, a weekly featured community track, and server-side time validation before wider rollout.

Built With

Share this project:

Updates

Submission history