Cross-API-Engine is a fully modular and plugin-oriented engine architecture designed to decouple every subsystem into independently loadable runtime modules. Rather than focusing only on graphics API abstraction, the objective is to create an engine where every component can be swapped, extended, or replaced without modifying core code. This enables rapid experimentation, platform portability, performance benchmarking, and true freedom in engine architecture research.
| Platform | Compiler | Build system | Status |
|---|---|---|---|
| Windows | MSVC (Visual Studio 2026 / 18.x) | MSBuild / Ninja | ✅ |
| Linux | GCC ≥ 13 | Ninja / Make | ✅ |
| MacOS | GCC ≥ 13 / Clang | Ninja / Make | ✅ |
| iOS | ❌ | ||
| tvOS | ❌ | ||
| Android | ❌ | ||
| Web | ❌ |
Make sure you have the following dependencies installed on your system:
cmake -S . -G "Ninja" -B cmake-build-release -DCMAKE_BUILD_TYPE=Release
cmake --build cmake-build-release --config Releasecmake -S . -G "Visual Studio 18 2026" -A "x64" -B cmake-build-release -DCMAKE_BUILD_TYPE=Release
cmake --build cmake-build-release --config Release./cmake-build-release/bin/cae -h
Usage: cae [options]
Options:
-h, --help Show this help message
-v, --version Show version information
-c, --config <path> Specify JSON configuration file- Online Doxygen documentation: Full engine architecture, APIs and design rationale.
- Modules: Overview of available modules and their responsibilities.
- Plugins: Plugin system and how to create new runtime modules.
This section targets engine developers and contributors.
CAE_STRICT_WARNINGS(default:OFF): Enable strict warning level.CAE_ENABLE_SANITIZERS(default:OFF): Enable address and undefined sanitizers.CAE_ENABLE_LTO(default:OFF): Enable LTO on final targets.CAE_BUILD_TESTS(default:OFF): Enable building unit tests.CAE_CLANG_TIDY(default:OFF): Enable clang tidy usage.CAE_CLANG_FORMAT(default:OFF): Enable clang format usage.CAE_BUILD_DOC(default:OFF): Enable building doxygen documentation.
Unit tests are based on Google Test.
Use the CAE_BUILD_TESTS option.
./cmake-build-release/bin/cae-testsdocumentation is generated using Doxygen.
Use the CAE_BUILD_DOC option.
- Doxygen Awesome CSS: A custom CSS theme for Doxygen documentation.
- Google Test: A testing framework for C++.
- nlohmann-json: A JSON library for C++.
Want to contribute? See Contributing guidelines.
Please review our Security Policy for more information on reporting security vulnerabilities.
This project is licensed under the MIT License - see the License file for details.
