About this project
ZEngine (Zodiac Engine) is an open-source 3D rendering engine written in C++ and built on the Vulkan graphics API. The README positions it for activities such as gaming and scientific computation and visualization.
The project ships as three components. ZEngine is the core runtime, covering an ECS, the Vulkan renderer, physics, audio and a virtual file system. Tetragrama is an editor built on top of ZEngine for scene authoring and asset management. Panzerfaust is a project launcher written in C#/.NET that creates, opens and manages game projects; it is hosted in a separate repository (ZodiacEngineHub).
Supported platforms are Windows, macOS and Linux (Debian/Ubuntu), all described as actively developed and tested. Full documentation lives in the project wiki, and a roadmap file is referenced.
Setup requires a C++ toolchain plus supporting tools. On Windows: Visual Studio 2022 with Desktop development with C++, MSVC v143 and the Windows 10/11 SDK, PowerShell Core, Python, CMake 4.1.2 or later, and LLVM. On macOS: Xcode, Homebrew, then CMake, NuGet, PowerShell Core and LLVM/ClangFormat via brew. On Linux: build-essential, CMake, Ninja, LLVM/Clang, Python 3 and NuGet via apt, plus PowerShell Core.
Dependencies are fetched automatically by CMake at configure time through FetchContent, so no manual submodule initialization is needed. Building is driven by a PowerShell script at the repository root: BuildEngine.ps1 with -Configurations Debug or Release and -RunBuilds $True. Passing -RunBuilds $False generates the build directory without compiling, and omitting -Configurations builds both configurations.
The dependency list is broad and grouped by concern. Rendering and windowing use Vulkan-Headers and Vulkan-Loader, VulkanMemoryAllocator for GPU memory, SPIRV-Cross, glslang and SPIRV-Tools for the shader compilation pipeline, and GLFW for window creation and input. The UI system (ZUI) uses FreeType for font rasterisation and rapidhash for widget key hashing. Asset loading covers Assimp for legacy 3D import, fastgltf for glTF 2.0, ufbx for FBX, meshoptimizer for vertex cache, overdraw and LOD optimisation, STB for image loading (PNG, JPEG, HDR) and miniz for zip/deflate compression. Memory uses tlsf as an O(1) dynamic allocator for variable-size engine slabs. Data formats include nlohmann/json, simdjson for the asset pipeline and yaml-cpp for configuration. Logging and utilities include spdlog, fmt, stduuid, CLI11 and Tracy as an opt-in frame profiler via the ZENGINE_TRACY flag. GoogleTest is used for unit testing, and a GitHub Actions workflow builds and tests the engine.
The project is MIT licensed and welcomes contributions, with a contributing guide referenced before opening pull requests.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.