Inspiration
It started with a tweet. A photo of a red Porsche wedged against a parking garage pillar, captioned "As a senior driver, reverse or drive forward to remove it?" got 11 million views on X in a single day. The comments were a war zone. Drivers everywhere had strong opinions, personal stories, and zero agreement on the right answer.
What it does
ParkIQ drops players into a hand-drawn parking lot full of obstacles — other cars, walls, barricades, shrubs, trees — with one job: drive out (or into) the marked spot, parked at the correct angle, without hitting anything. Three real parking disciplines are modeled — parallel, perpendicular, and angled — each with its own approach angle and tolerance. Crash and you reset instantly, no penalty, just try again.
How we built it
Built on Phaser 4.2.0 inside Reddit's Devvit Web platform, with React + TypeScript + Vite on the frontend and Hono + Redis on the backend. Early on I pivoted away from a multiple-choice quiz mechanic toward real, pixel-precise driving—direct x/y manipulation rather than arcade physics—so every puzzle is genuinely spatial, not just a knowledge check.
Midway through the hackathon I moved puzzle authoring off a rigid grid system entirely, building a freeform coordinate system so obstacles and walls could sit at real pixel positions and arbitrary angles instead of snapping to fixed cells. To support that, I built a rotation-aware collision system—every vehicle and prop uses an angle-bucketed lookup table, so a car's hitbox genuinely reflects its rotated footprint, not just its resting shape.
I also built my own standalone level editor—a zero-dependency tool for placing obstacles, dialing in exact angles, and catching unsolvable layouts before they ever reach a player, including live overlap warnings and a manual path test-drive mode.
Finally, I moved from placeholder/programmatic lot art to fully hand-drawn puzzle backgrounds, so every level has its own real, deliberate visual identity instead of a repeating tile.
Challenges we ran into
Getting collision to feel fair was the hardest part—a naive "snap to nearest angle" approach could silently produce a hitbox too small for the car's actual rotated footprint, which I caught and fixed with a properly derived, independently verified lookup table. I also had to rebuild my exit-zone detection more than once: early versions let a puzzle count as "parked" the moment the car's edge merely touched the target, rather than requiring the car to actually center itself the way a real parking spot demands.
Accomplishments that we're proud of
This is the first game I've ever made—coming from a UI/UX design background with no prior coding experience, actually shipping a working, playable game feels huge.
What we learned
I've learned to appreciate game development from a completely different angle—the math, mechanics, and physics behind even a "simple" puzzle are genuinely insane. Building this gave me a whole new respect for what goes into making a game feel right.
What's next for ParkIQ
More hand-drawn puzzles built with our own level editor and continued refinement of the angled-parking mechanic now that the underlying collision system supports it properly.
Built With
- devvit
- hono
- javascript
- node.js
- phaser.js
- react
- redis
- typescript
- webp
Log in or sign up for Devpost to join the conversation.