This project is a game engine for Windows.
cmake --preset vs
cmake --build --preset vs-debugUse vs-release instead of vs-debug for a Release build.
The engine static library owns the Windows entry point and engine implementation. The sandbox executable supplies the application implementation.
Install pre-commit and enable the repository hooks:
python -m pip install pre-commit
pre-commit installThe clang-format hook formats staged C and C++ files automatically. If it changes a file, review and stage the result before committing again.
To format every first-party C and C++ file manually:
pre-commit run clang-format --all-filesTests are enabled by default through CTest and use GoogleTest.
cmake --build --preset vs-debug
ctest --preset vs-debugConfigure with -DBUILD_TESTING=OFF when tests and GoogleTest are not needed.
The lint preset requires LLVM 22, including clang-cl and clang-tidy, and Ninja in PATH.
It analyzes the first-party engine, sandbox, and tests targets while compiling them.
cmake --preset lint
cmake --build --preset lint --parallel
ctest --preset lintClang-tidy warnings fail the lint build. Prefer fixing the code or updating the shared
.clang-tidy policy. When a diagnostic cannot be avoided at an API boundary, use a
narrow suppression that names the check, for example NOLINT(check-name).
Automatic fixes are intentionally not applied by CI. Developers may run clang-tidy
with --fix locally, then review the diff and run the build and tests before committing.
The shared .clang-format policy is based on the Microsoft style and uses
clang-format 22.1.5. Pre-commit applies formatting automatically to staged files,
while CI checks all first-party C and C++ files without modifying them.