I created a super Mario game on my second semester of University with C++
Having to create features such as texture loaders was challenging, as I was not comfortable creating features that would already come integrated in game engines such as Unreal engine 4 or Unity3D.
This project was a great chance chance to look deeper in the creation of some features such as a texture loader, or a sprite renderer for in-game graphics.
For the game, we also had to create an audio manager and physics/collision manager Using the SDL C++ libraries.
Instead of the character falling up and down at the same speed, I added a smoother gravity falloff so the speed falls off in a parabola.
Collisions were handled with a rectangle for the size of the textures, where each texture pixel is calculated for collision.