Mint is my first attempt at creating a game engine. I developed it during my second year of programming school in 2022. It utilizes SFML as the core graphics library, providing a foundation for rendering and basic media capabilities.
Mint was created to simplify the usage of SFML and make it more "modern." It was also an opportunity for me to explore how to organize large projects and create an easy-to-use API.
- Rendering: Window creation, 2D rendering.
- Input Handling: Support for keyboard and mouse input using SFML.
- Asset Management: Efficient handling of textures, fonts, shaders, and other assets.
- Animated Sprites: Tools for creating and managing sprite animations.
- File Management: Simplified file I/O operations using RAII.
- Object Pooling: Experimental feature for efficient object reuse (not finished).
- UI Components: Basic user interface elements for game development (not finished).
Most of SFML's features have been abstracted into a thin wrapper, making them easier and more intuitive to use.
- spdlog: Integrated for robust and efficient logging.
- Premake: Used as the build system for project configuration.
Mint was designed as a learning project to:
- Understand the structure of large-scale projects.
- Take a first step into the world of game engine development.
- Create a simplified, modern interface for SFML.
While Mint is functional, it is not production-ready and has several known flaws, such as:
- Overuse of singletons.
- Lack of comprehensive testing.
Mint is no longer actively developed as I have moved on to my current project, Sapphire. There are no plans for future updates or a roadmap.
- Clone the repository:
git clone https://github.com/Theo-Mestre/mint.git
- Build the project by running the SetupWindows.bat
Mint is licensed under the MIT License. See the LICENSE file for more details.