GameEngine/ subtree is now the repository root. See REROOT.md for backups & recovery instructions and next steps for collaborators (re-clone or reset local branches).
Genesis is a modular, cross-platform C++ game engine prototype. This repository contains the engine core, renderers, tools, and a sample game used for verification.
- Rendering: Modular backend supporting OpenGL (PBR), Vulkan, DirectX, and Software rendering.
- PBR Pipeline: Physically Based Rendering with glTF 2.0 support (Albedo, Normal, Metallic/Roughness).
- Runtime Switching: Hot-swap renderers at runtime (F2 key).
- Architecture: ECS-based (Entity Component System) using
entt. - Scripting:
- Lua: Standard game logic scripting.
- WASM: Secure, sandboxed modding support via
wasm3.
- Physics: Modular backend supporting Bullet and Box2D.
- Platform: Windows (primary), Linux/macOS (via CMake).
See Docs/status_report_20260103.md for the latest detailed status and competitive analysis.
Requirements:
- CMake >= 3.16
- Visual Studio 2022 (recommended)
vcpkg(integrated automatically)
Build (Windows):
./build.ps1This script uses CMake Presets to configure and build the project with all dependencies (SDL3, Assimp, etc.) managed by vcpkg.
asset_packer: Pack/unpack assets.shader_compiler: Compile GLSL to SPIR-V.Scripts/generate_gltf.py: Generate test PBR assets.
- Build: GitHub Actions (Windows/Linux/macOS).
- Security: Snyk SAST integration for vulnerability scanning.
Packaging:
- Use CPack to create a ZIP package of the built artifacts. Example:
cmake -S . -B Build -DCMAKE_BUILD_TYPE=Release
cmake --build Build --config Release --target packageThis will create GenesisGameEngine-${PROJECT_VERSION}.zip in the Build output. You can also install the project contents to a local prefix with cmake --install Build --config Release --prefix <dir>.