GlideShot
A 3D mini-golf game that runs in the browser, with a drag-to-aim system that draws the path for you.
- Kind
- Browser game
- Year
- 2025
- Built with
- Next.js
- React Three Fiber
- Three.js
- Firebase
The question
What makes a golf shot feel good to line up?
GlideShot shows you the path before you commit, then lets the physics carry it out.
Why it exists
A small game prototype that puts the effort into feel: three hand-built levels, custom physics, a smooth camera and an aim assist that shows where the shot will go.
How it works
One shot, start to finish
- 1
Aim
Drag from the ball. The direction and the power appear as a curved trail and a ghost ball.
- 2
Shoot
Release to fire. A shot below a minimum speed is cancelled as a mis-click.
- 3
Roll
The physics loop applies slopes, damping and bounces until the ball comes to rest or drops in the hole.
- 4
Score
The strokes are posted to Firestore through the server, and the level’s leaderboard updates.
Decisions
Hand-tuned physics
Wall bounces keep 80% of the speed, and obstacle hits are deliberately stronger “for arcade feel”. The numbers were tuned by play, not taken from an engine.
The ball comes to rest cleanly
Separate thresholds for starting and stopping, plus a confirmation of two frames, stop the ball from flickering between rolling and still.
Scores are written on the server
Score writes go through server routes that use the Firebase Admin SDK, and the browser only holds the public configuration.
Built with
Frameworks and libraries
- Next.js
- React Three Fiber
- Three.js
Data and storage
- Firebase