This is a simple game framework library I'm creating for use in my own games. SDLGL currently provides support for
- A simple and extensible Entity + Scene organization
- A simple 'Update and Render' game loop
- Audio mixing for sound effects and music built on miniaudio
- Easily configurable (JSON-defined) resources supporting:
- Animated sprites
- Static textures
- Sound effects
- Music tracks
- Collision detection system for rotatable rectangles
- Font renderer
- Debugging UI elements
- Access to the SDL2 rendering context
- Multiple example programs demonstrating each engine feature
In addition to the example programs, I have some other projects that are built with SDLGL.
To install SDLGL, you will have to build from source. Before building, there are 4 dependencies required for static linking:
- SDL2
- SDL2 Image
- SDL2 TTF
- SDL2 Mixer
You can use apt to install the libraries.
sudo apt-get install -y libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev
You can use homebrew to install the libraries.
brew install sdl2 sdl2_image sdl2_mixer sdl2_ttf
Currently, no binaries are published for SDLGL. A CMake configuration is provided to enable easy building across platforms. This project provides SDL2 CMake modules to enable CMake to find the SDL2 libraries on all systems. The modules are taken from this repository by Amine B. Hassouna.
To generate the build files:
cmake -S . -B build
To build the library:
cd build
make
To install the library:
# From within the build directory
sudo cmake --install .
# Or from within the project root
sudo cmake --install build
The library will be installed to:
- Headers to
/usr/local/include
- Static library archive to
/usr/local/lib
- CMake targets export file and CMake configuration file (
sdlglTargets.cmake
) to/usr/local/lib/cmake/sdlgl
In addition to the build requirements, additional tools are required for development. You can install them with the following commands:
sudo apt install clang-format
brew install clang-format
This project is auto-formatted to the Google style (modified to an indent of 4 spaces) using the clang-format tool.
To run the auto-formatter on all files, use the following command:
bash clang_format_project.sh
SDLGL is licensed under the MIT License.
This library uses the JSON C++ library by Niels Lohmann which is licensed under the MIT License.