8 Ball Golf - top down golf game (Group Project)

what is it?

A top down golf game where you complete a series of themed levels, trying to hit the ball in the least number of shots.

Mechanics: The power of the shot is dictated by a power meter.
The direction of the shot is dictated by your mouse and a spin mechanic (with its own spin meter).

The game ends if you clear all the levels, or you lose all your lives, which could be caused by colliding with certain obstacles or taking too many shots

The background

This was a games project for our first year. I was one of the core two members of four person team, in which we had to create a python game using a very rudimentary game engine called SimpleGUI.

Because this was SimpleGUI and not Pygame, we had to implement the collision and physics by ourselves.
This would have been easy, had I not been very adamant about including diagonal walls.
A lot of this project was spent trying to create a 2D collision algorithm that works in any orientation.

Lacking the fundamental linear algebra maths background (at the time) and thus having to rely on lots of trig, it took a while but I managed to put together a really ugly algorithm that mostly worked.
Just doing a bit more research, I could have implemented a SAT (Separating Axis Theorem) algorithm, or the more buisness smart solution would have been to ignore the diagonal walls (they were used once or twice)

Apart from that, the physics was fairly simple and we implemented it the first day.
The only other things that took a while were the level design and making the sprites (for which I used Aseprite).