YerbEngine is a work-in-progress game engine featuring an Entity-Component-System (ECS) architecture, built with SDL2 and C++.
- Cross-platform – Supports builds on MacOS, Linux (tested on Fedora), and the Web via Emscripten/WebAssembly.
- Modular ECS design – Independent systems for input, rendering, and more, enabling scalability.
- JSON configuration – Loads game settings using nlohmann/json.
- Modern C++ – Written in C++23, with code quality enforced by
clang-tidy.
To build for the web, run:
mkdir dist-web
cd dist-web
emcmake cmake ..
cmake --build .A web template is provided at /template and serves as the shell for the project.
After building, serve the app locally with Emscripten’s HTTP server:
cd dist-web/build
emrun --no_browser --port 3333 .mkdir dist
cd dist
cmake ..
make 2>&1 | tee build.logcd build
./SDL_GAMEOn launch, the menu scene appears. Follow on-screen instructions at the bottom of the window.
Contributions are welcome! Submit issues or pull requests to help improve the engine.
Licensed under GNU GPL v3.0. See LICENSE.md for details.