Playable here.
I created this project for fun. Its a super simple implementation of Billiards using Python and PyGame-CE. I made the game in about 5.5 hours of coding and improved it totaling 8 hours to date. It was a fun skills exercise to work out how to handle the ball collisions efficiently. While this project really isn't all that interesting, I found it enjoyable to make.
Each ball simply calculates whether it collided with another ball each frame it is moving. This allows for a sort of cascading effect where once one ball moves and collides with another, it transfers its momentum, and the next ball will calculate its collisions, perfectly remodeling how it happens in real life. I found this cool because such a simple concept to implement mirrors real-world outcomes almost perfectly.
No AI was used in this project. Funnily enough, I was going to ask an LLM about coding an elastic collision but decided to consult my old high school textbook instead.