Inspiration Reddit's magic isn't any single game — it's thousands of strangers piling onto one shared thing (see r/place). Most hackathon entries are solo daily puzzles. We wanted collective joy: a game the community builds together, out of spite. PILE-ON is a daily obstacle course where you flick a ball to the goal — and every player adds one fiendish trap to tomorrow's course. You play the crowd's cruelty; you come back to watch your own trap rack up a kill-count.
What we learned Devvit Web is a full client and server platform: a Phaser webview talking to a serverless Hono backend over Redis. We learned to model everything as day-keyed Redis structures — sorted sets for leaderboards and the "most devious" trap, hashes for community obstacles, capped sets for ghost trails. And we learned that game feel is math you measure, not guess.
How we built it A Phaser 3 + Matter.js client and a Hono + Redis server sharing one TypeScript contract. The signature move: we ran the actual Matter engine headless to calibrate the launch and to verify every community course stays beatable. Launch power maps through a floor so no flick ever feels weak:
$$v = v_{\max},\big(0.35 + 0.65,t\big),\qquad t=\frac{\min(d,,d_{\max})}{d_{\max}}$$
Challenges Physics feel fought us. Our first launch was too weak — the headless sim proved the culprit was the drag → power curve, not the physics. We pivoted from a punishing vertical climb to a forgiving sideways run once gravity became a friend, not an enemy. And keeping user-generated content un-griefable meant server-enforced build zones, fixed-size pieces, anti-stacking, and one-trap-per-day — so strangers can be devious, never destructive.
Built With
- devvit
- phaser.js
- typescript
Log in or sign up for Devpost to join the conversation.