Welcome to the Mario 2D Game Engine, a custom game engine built using Java with LWJGL, Box2D, JUnit, ImGui, and GSON. This engine allows you to create and play custom Mario levels with ease.
You can download the project report PDF here.
- Player Controls: Customizable controls for the Mario character.
- Powerups: Includes various powerups such as mushrooms, stars, and fire flowers.
- Enemies: Goomba and Turtle AI included for challenging gameplay.
- Game Objects: Flag poles, fireballs, and other interactive objects.
- Sound Effects: Immersive sound effects to enhance gameplay.
- Animation: Smooth animations for characters and objects.
- Physics Engine: Integrated Box2D physics for realistic gameplay.
- Editor Features:
- Properties Panel: Customize game objects easily.
- Translate and Scale Gizmo: Manipulate objects with ease.
- Editor Camera: Navigate and edit the game scene effortlessly.
- Mouse Picking: Select and interact with objects in the game.
- Docking: Organize your workspace efficiently.
- Rendering:
- Batch Rendering: Optimized rendering for better performance.
- Spritesheets: Efficient handling of sprite animations.
- Entity Component System: Flexible and modular architecture for game entities.
- Serialization: Save and load game states using GSON.
- User Interface:
- ImGui: Integrated for a user-friendly interface.
- ImGUI Fonts: Custom fonts for a polished look.
- Debugging Tools:
- Debug Drawing: Visualize physics and game objects for debugging.
- Grid and Z-Indexing: Align and organize game elements accurately.
- Dirty Flags: Optimize rendering by tracking changes in game objects.
- Java JDK
- LWJGL
- Box2D
- JUnit
- ImGui
- GSON
- Clone the repository:
git clone https://github.com/thisis-gp/2d-Game-Engine.git- Navigate to the project directory:
cd 2d-Game-Engine/src/main/java- Compile and run the
Main.javafile:
javac Main.java
java Main- Launch the game engine by running
Main.java. - Use the editor to create and customize your Mario level.
- Play the level and enjoy!
We welcome contributions! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature. - Make your changes and commit:
git commit -m 'Add some feature'. - Push to the branch:
git push origin feature/your-feature. - Submit a pull request.
This project is licensed under the MIT License. See LICENSE for more details.
Thank you for using the Mario 2D Game Engine! If you encounter any issues or have suggestions for improvements, please feel free to open an issue or reach out to us. Happy gaming! 🎮🍄


