This is a minimal, c++ implementation of the famous and nostalgic game SuperMario, which was chosen as a course project for the Advanced Programming course of the Computer Engineering major of University of Tehran, on the 2019 spring semester. As a teaching assistant for this course who was in charge of designing this assignment, I had the duty of writing the code that was expected of the students, in order to make sure that the project was neither too big, nor too small. Moreover, it would help bring out all those small ambiguities earlier, that would otherwise be discovered only after the students had started working on the project, and thus help save both the TAs and students significant amounts of time. The repository would also be shown to the students as an example of a "good-enough" design to help guide them towards better designs.
This project is built using the RSDL (Ramtin's Simple DirectMedia Layer) library, which is a library developed to help students use the SDL library through a simpler and more object-oriented interface.
Here's a short video that shows how my implementation actually looks like:
To play this game, you need to do the typical steps for running any c-based project. First, either clone the repository or simply download its ZIP and then extract it. Then, enter the extracted directory, and run the following to create the executable (named maio.out):
make
Then, you can play the game using the command below:
./mario.out
The game currently has only one level, and it will default to that one level if you run the executable as shown above. If you create a new level and you want to play it, then you must run
./mario.out <level-file-address>
- SDL2
- SDL2 Image Loading Library
- SDL2 Mixer Library
- SDL2 TrueType Font Library
you can refer to this page for installation instructions. if you are using linux and have the apt
package manager available, you can run the following command to install the dependencies:
sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev
- Ahmad Pourihosseini - wrote the source code - ahmad-PH
- Farzad Habibi - helped with writing the assignment description - gsoosk
- Amirhossein Habibvand - helped with writing the assignment description - amirhbv
- Bardia Eghbali - helped with writing the assignment description - sadmanbrad
- All the assets in this project were picked from the two websites: mariouniverse and themushroomkingdom.