Inspiration

Golf games are fun because of that one impossible shot — and Reddit is fun because everyone wants to prove they can do it too. We wanted a game where a single screenshot-sized hole lives inside a Reddit post, everyone plays the exact same physics, and the comment section becomes the clubhouse. Kglobal daily puzzle culture (Wordle, chess puzzles) meets Happy Gilmore.

What it does

Trick Golf turns every Reddit post into a one-screen trick-shot golf hole:

One post = one course. A daily hole is auto-posted on a schedule, and every post carries its own leaderboard (strokes → ticks → first-clear wins ties). Play in seconds. Drag, release, watch the ball fly through sand, water, bounce pads, fast greens, and slopes — deterministic 60fps physics. Build your own. An in-post tile editor lets anyone paint a course. You must clear your own hole to publish it — instant proof it's beatable. Publishing creates a brand-new Reddit post in your name, with your avatar on it. Social by default. Other players' runs replay as translucent balls with their snoovatar + username floating above. Enter the top 3 and the app posts a congratulations comment on the thread; petals rain on your clear screen.

How we built it

Devvit Web app: vanilla JS + Canvas client, Express server on the Devvit runtime, Redis for leaderboards, courses, and author indexes. Deterministic integer physics engine, intentionally duplicated on client and server. The client simulates for feel; the server re-simulates every submitted run from its shot list (angle/power integers only) and rejects anything that doesn't clear — replay-verified anti-cheat with no video, no trust. Courses are content-addressed (FNV-1a hash of the canonical tile grid), so leaderboards can never mix edited variants. Scheduler walks a course pool and posts one hole per cadence; menu action lets mods post on demand.

Challenges we ran into

Determinism across two runtimes. One Math.trunc in the wrong place desyncs client and server. We versioned physics, wrote determinism smoke tests that replay every built-in course's author run, and treat physicsVersion as a persisted API contract. A cup the ball must actually fall into. The hole isn't a UI check — it's carved collision geometry, which meant rebuilding edge segments around it. No-scroll, one-screen constraint of embedded webviews at every viewport: the clear-screen panel (rank + top-3 + celebration) had to be measured to the pixel to fit inside the canvas frame. 1 post = 1 course was a real design fork — we restructured ranking, publishing, and navigation around it mid-project, and it made everything simpler. Accomplishments that we're proud of Server-verified leaderboards where a run is just ~a dozen integers — cheap to store, impossible to fake. The replay system: strangers' best runs ghosting through your attempt, with their avatar riding along. It makes a static post feel alive. A publish loop with built-in quality control: you can't ship an unbeatable hole. The whole game — play, build, publish, rank, celebrate — fits in one screen with zero scrolling.

What we learned

Determinism is a feature you design for on day one, not a bug you fix later. Reddit-native beats app-like: letting UGC posts run as the user (their name, their avatar, their profile collecting their holes) created identity and a creator economy for free. Physics "feel" tuning (restitution, tangent friction, static-friction thresholds per material) matters more than any visual polish.

What's next for Trick Golf

Ball skins & cosmetics you can show off. Your ball isn't just yours — it replays on everyone else's screen with your name on it. We'll add customizable ball skins, trails, and clear-celebration effects, sold via Devvit Payments (Reddit Gold). Cosmetics are pure flex: zero pay-to-win, the physics never change. 100-course launch pool for the daily post, with difficulty curves and weekly themes. Recent-runs feed so sub-top-10 players' replays also get screen time. Moderation & reporting path for user-generated courses. Course remix trees ("this hole was forked from…"), season leaderboards per subreddit, and tournament posts where the comment thread decides the next hole.

Built With

Share this project:

Updates