I also implemented various data structures like scene graphs and linked lists. The scene graphs allowed me to create a hierarchical structure which in turn allowed me to create more complex objects as multiple meshes could be easily used to create a character. This structure was used to create the solar system in the sky. The linked lists were useful as they are easy to manipulate and resize allowing me to very easily store all the objects.
The final addition I made were the hitboxes. I looked into a lot of different hitboxes such as axis aligned bounding boxes and oriented bounding boxes. I decided to implement axis aligned for simplicity and because the game I was creating was just for demonstration. I also read about hierarchical trees being used in order to carry out very detailed collision detection while still keeping computational cost low.