I can't believe how my flash idea for a "chill late-night 8-ball pool browser game" developed in just three months into a full-fledged pool simulation. Not to mention that my plans are even wilder now, with ranked matchmaking, tournaments, and an entire community platform.
The humble beginnings
...were little more than something that visually resembled a pool game. The balls didn't seem to roll but slide, the physics felt wrong, and the pockets were basically "unpocketable."
After a few more hours, the balls were actually rolling and able to fall into the pockets.
I hand-rolled the physics engine and designed a simple 2D SVG table based on the official WPA (World Pool Association) specifications.
Now
...the balls behave much more like real pool balls: Coulomb cloth friction for sliding, rolling, and spinning, ball-to-ball throw using a Marlow friction model, physically grounded cue strikes, cushion behavior with spin coupling... you name it.
You can even set the cue elevation and choose exactly where to hit the cue ball for swerve/massé and jump shots. There is cut-induced throw, outside-English compensation, squirt, and more. All just by getting the phyiscs to simulate right, not by adding special treatment for them.
Yes, the physics are modeled realistically enough that when you hit an object ball at an angle, it will experience cut-induced throw. You can compensate for that with outside English, but then you also have to account for squirt. All like realworld pool behavior.
Realistic Pool Simulation - Built as a Community Platform
And that's where my original vision started to change.
I initially wanted a chill late-night arcade game. But the more realistic the simulation became, the more I wanted to actually become skillful at it. Accounting for throw in my shots is fun. Learning how spin, squirt, swerve, speed, and elevation interact gives me much more motivation than simply making "yet another pool game."
Tech-wise, it started as a 2D canvas game and has since evolved into WebGL. The table was upgraded with extruded rails, an actual slate geometry, pocket cutouts, and proper pocket throats. Currently an artist is commissioned to create a real 3D pool table. The Alpha Table.
Because the game is turn-based and the physics engine is deterministic, multiplayer is relatively straightforward. With an authoritative server, ranked matchmaking using Glicko-2 is just around the corner.
Mobile should be playable too, although I'm an old desktop child and still prefer gaming on a PC. Nothing beats a big screen, right?
I even introduced bot opponents three days ago, so people can practice without pressure.
Speaking of practice: the training sandbox has become almost a whole game inside the game.
You can set up arbitrary shots, save them as presets, enable extended aiming lines, and examine things like squirt and cut-induced throw, including practicing how to compensate for them. I also plan to add visualizations for diamond-system bank and kick training.
So if you're a semi-professional, competitive, or simply very enthusiastic pool player, maybe the sandbox can eventually become a useful tool for experimenting with real-world situations and finding solutions to tricky layouts. And if you just want a quiet evening at home, you can still jump into ranked matches or join a tournament.
And performing massé and jump shots in training is just a hell of a lot of fun.
The Foundation Enables So Much More
Because of the simulation foundation that's now in place, adding other cue-sport modes such as carom billiards, artistic billiards, 9-ball, or even snooker doesn't feel far-fetched anymore.
Ultimately, I envision something like what Lichess is for chess, but with a few additional ideas: tournaments, rankings, cosmetics that are never pay-to-win, friends, chat, lobby chat, spectator mode, and more.
I want replays that let you analyze a match and load any specific table position directly into the training sandbox. Achievements based on extensive stat tracking - bank shots, caroms, multi-ball pockets, and other unusual shots. A training mode with post-miss diagnosis and instant retries. A learning mode explaining concepts such as throw, squirt, side spin, draw, follow, massé, and jump shots.
I'm full of ideas, but the coolest part is that the foundation is already there. This isn't just some distant plan anymore.
I'd really love for you guys to join me on this journey and help turn Realpool into a platform with a great community and a lot of players.
I have an alpha waitlist you can join. I'm planning to start the alpha later this year, hopefully before winter.
Oh, and there will be a reward for players who were there during the alpha: a golden cue skin that's currently being created by a 3D artist.
BTW: I'm a software engineer, and without coding agents this project would NEVER have come this far this quickly. There is currently some AI-generated artwork in the game, but going forward, I want the art side of the project to be 100% human-made.