A modern 2D hack 'n' slash game built with a custom C++ game engine. This project reimagines a previous XNA/FNA/Monogame prototype with platform independence and no Visual Studio build tool dependencies.
- Separate engine from game code via CMake
- Setup Conan
- Initial project setup with Conan and SDL2/GLAD/GLM
- Create reproducible builds with
Makefile
/make.bat
script code - Attempt to translate modified ECS from C# prototype
- Create simple sprite renderer using OpenGL
- Refactor/move C# ECS implementation into C++23
- Resource loading
- Audio system basics
- Dynamic audio playback system with sound effects, music and speed control
- Input manager
- Simple scene management
- Font rendering
- Immediate mode UI basics
- Initial gameplay implementation
- Game-specific features
The game is built on a custom C++ engine (STE - Stabby Engine) designed for high-performance 2D/3D(?) games.
- Modern implementation using C++20 concepts
- Sparse set component storage for efficient iteration
- Type-safe component queries
- Systems with priority scheduling
- Resource management
- Asynchronous asset loading
- Reference counting
- Support for textures and shaders
- Thread-safe asset handling
- Error handling with detailed feedback
- 2D batch renderer
- Triple buffered command processing
- Shader management
- Texture support
- Efficient sprite rendering
- Font loading/rendering with Freetype
- Real-time audio processing
- Low-latency output
- Support for multiple audio channels
- Sample-accurate timing
- Thread-safe command queue
- Modern builder pattern API
- Support for multiple windows
- OpenGL context management
- Event handling
- Resolution and display mode control
- Keyboard and mouse input
- Scene stack management
- SDL2 - Window management and input
- OpenGL - Rendering
- GLM - Mathematics
- GLAD - OpenGL loading
- Conan - Package management
- Modern C++20/23 features
- RAII throughout the codebase
- Lock-free concurrent operations
- Efficient batch rendering
- Thread pool for async operations
- Comprehensive error handling
- CMake
- Conan
- C++20 compatible compiler
See the build instructions for detailed information on how to build the project.
See the game entrypoint used for testing here.