It can be used for activities such as:
- Gaming
- Scientific computation and visualization
- Windows
- macOS (under active revision)
- Linux (
DebianorUbunturecommended, under active revision)
ZEngine ships as three components:
| Component | Description |
|---|---|
| ZEngine | Core runtime — ECS, Vulkan renderer, physics, audio, VFS |
| Tetragrama | Editor built on top of ZEngine for scene authoring and asset management |
| Panzerfaust | Project launcher (C#/.NET) — creates, opens, and manages game projects. Hosted at ZodiacEngineHub |
Clone the repository:
git clone https://github.com/JeanPhilippeKernel/RendererEngine.gitAll dependencies are fetched automatically by CMake at configure time via FetchContent — no manual submodule initialization required.
- Install Visual Studio 2022 Community or Professional with "Desktop development with C++".
- Include MSVC v143 — VS 2022 C++ x64/x86 build tools and Windows 10/11 SDK.
- Install PowerShell Core
- Install Python
- Install CMake 4.1.2 or later
- Install LLVM
- Install Xcode from the App Store.
- Install Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"- Install CMake, NuGet, PowerShell Core, and ClangFormat:
brew update
brew install cmake nuget llvm@20
brew install --cask powershell- Install build tools, CMake, and LLVM:
sudo apt update
sudo apt install build-essential cmake ninja-build llvm clang clang-format python3 nuget- Install PowerShell Core for your distribution.
- Start PowerShell Core and verify CMake is available:
cmake --version - Change directories to the repository root.
- Run the build script for the desired configuration:
- Debug:
.\Scripts\BuildEngine.ps1 -Configurations Debug -RunBuilds $True - Release:
.\Scripts\BuildEngine.ps1 -Configurations Release -RunBuilds $True
- Debug:
Notes:
-RunBuilds $Falsegenerates the build directory without compiling.- Omitting
-Configurationsbuilds both Debug and Release.
See our roadmap here: Roadmap
Contributions are welcome. Please read Contributing.md before opening a pull request.
All dependencies are fetched automatically via CMake FetchContent — no manual submodule initialization required.
Rendering & windowing
- Vulkan-Headers + Vulkan-Loader — Vulkan API
- VulkanMemoryAllocator — GPU memory management
- SPIRV-Cross + glslang + SPIRV-Tools — shader compilation pipeline
- GLFW — window creation and input
UI system
Asset loading
- Assimp — legacy 3D asset import
- fastgltf — fast glTF 2.0 loader
- ufbx — FBX loader
- meshoptimizer — mesh vertex cache, overdraw, and LOD optimisation
- STB — image loading (PNG, JPEG, HDR)
- miniz — zip / deflate compression
Memory
- tlsf — O(1) dynamic allocator for variable-size engine slabs
Data formats
- nlohmann/json — JSON parsing
- simdjson — high-performance JSON for asset pipeline
- yaml-cpp — YAML configuration
Logging & utilities
- spdlog — structured logging
- fmt — string formatting
- stduuid — UUID generation
- CLI11 — command-line argument parsing
- Tracy — frame profiler (opt-in via
ZENGINE_TRACY)
Testing
- GoogleTest — unit testing
ZEngine is licensed under the MIT License.
