This project is a faithful reproduction of the World 6-9 level from the Super Mario universe. The goal was to build a platformer game engine from scratch using C++ and Qt, handling physics, collisions, and enemy AI.
Here is the complete layout of the level we recreated. The game features underwater mechanics, pipes, and complex collisions just like the original.
Watch the following video for a gameplay overview:
https://www.youtube.com/watch?v=gH-bdCRIQQ8
- ENTER — Start the game (from main menu)
- R — Reset game
- P — Pause / Resume game
- G — Toggle debug grid
- C — Toggle object colliders
- Arrows — Movement (Left/Right) and Crouch (Down)
- SPACE — Jump / Swim
- Z — Run (hold for speed)
- T — Debug Transformation (cycles through power-ups)
- B — Launch fireballs (Fire Mario) or Tail spin (Raccoon Mario)
- Z (hold) + SPACE — Fly (Raccoon Mario when super-running)
Choose your preferred way to get the game running:
🎮 Download & Play (Ready to Run)
If you just want to play without compiling the code:
- Go to the Releases page.
- Download the
SuperMario3Installer.exefile. - Run the installer and follow the on-screen instructions to set up the game.
⚠️ Windows 64-bit only This installer is currently compatible only with 64-bit Windows systems.
🛠️ Build from Source (Step-by-Step)
Follow these detailed instructions to set up the environment and compile the project manually.
- Git: To clone the repository.
- CMake (3.16+): For build management.
- Compiler:
- Windows: Visual Studio 2019/2022 with C++ workload.
- Linux: GCC/G++.
- Mac: Clang (Xcode).
- Qt 5.15.2 DevBinaries: Download the specific binaries for your OS from our Releases (e.g.,
qt-5.15.2-win64-msvc.zip) and extract them locally.
git clone https://github.com/giusalfieri/Super_mario.git
cd Super_mario- Launch Visual Studio and select "Open a local folder".
- Navigate to and select the project root directory; Visual Studio will automatically detect the
CMakeLists.txtfile. - From the top menu, navigate to Project > CMake Settings.
- Locate the CMake variables and cache section.
- Note: If the "Add" button is missing or you prefer a manual setup, click on "Edit JSON" (located at the top right of the panel).
- Add the
CMAKE_PREFIX_PATHvariable:- Via Interface: Click Add, set Name to
CMAKE_PREFIX_PATH, Type toPATH, and Value to your Qt path (e.g.,C:/Qt/5.15.2/msvc2019_64). - Via JSON: Inside the
variablesarray of your configuration, paste the following:{ "name": "CMAKE_PREFIX_PATH", "value": "C:/Users/giuseppe/Desktop/Qt/5.15.2/msvc2019_64", "type": "PATH" }
- Via Interface: Click Add, set Name to
- Save the configuration (Ctrl + S); Visual Studio will then automatically generate the CMake cache.
Open your terminal in the project root directory and execute the following commands:
mkdir build && cd build
cmake .. -DCMAKE_PREFIX_PATH="/your/extracted/qt/path"
cmake --build .- Visual Studio: Select
supermario3.exefrom the startup item dropdown and press F5 to compile and launch the game. - Terminal: Locate and run the generated executable within the
builddirectory.
Note for Windows Users The CMake configuration is scripted to automatically invoke
windeployqt. This utility bundles all required Qt shared libraries (.dll) and essential plugins (audio, platforms) directly into the output folder, ensuring a seamless "out-of-the-box" execution experience.
Our development team has worked to recreate this classic experience with modern tools:
| Name | GitHub Account |
|---|---|
| Giuseppe Alfieri | @giusalfieri |
| Nico Fiorini | @capocattiveria |
| Jacopo Saccocci |

