Skip to content

JeanPhilippeKernel/RendererEngine

Repository files navigation

ZEngine Window Build ZEngine Linux Build ZEngine macOS Build

Discord Server

ZEngine

ZEngine is an open-source 3D rendering engine written in C++ and using Vulkan as graphic API. It can be used for activities such as:

  • Gaming
  • Scientific computation and visualization

Supported Platforms:

  • Windows
  • macOS (Under active revision as of today)
  • Linux (Debian or Ubuntu are recommended systems) (Under active revision as of today)

Setup

Before building, make sure your setup is correct :

Setup Window machine

  • Install Visual Studio 2022 Community or Professional, make sure to add "Desktop development with C++".
  • Install PowerShell Core
  • Install Vulkan SDK (uncheck the GLM headers component when installing)
  • Install Python

Building

  1. Install CMake 3.20 or later.
  2. Start Powershell Core and make sure that you can run CMake, You can type cmake --version to simply output the current CMake version installed.
  3. Change directories to the location where you've cloned the repository.
  4. Building on different systems
    • Building on Windows :
      • Debug version : .\Scripts\BuildEngine.ps1 -Configurations Debug -RunBuilds $True -VsVersion 2022
      • Release version : .\Scripts\BuildEngine.ps1 -Configurations Release -RunBuilds $True -VsVersion 2022
  • Notes :
    • RunBuilds can be omitted as its default value is: $True.
    • You can build Debug and Release versions at once by omitting the Configuration parameter
    • On Windows, you can specify the Visual Studio version with VsVersion, it can be omitted as its default value is: 2022

Dependencies

The project uses the following dependencies as submodules :

  • GLFW for window creation and user input management for Windows, Linux, and MacOS,
  • GLM for functions and mathematical calculations,
  • STB for loading and manipulating image files for textures.
  • ImGUI for GUI components and interaction.
  • SPDLOG for logging
  • EnTT for entity component system
  • Assimp for managing and loading asset 2D -3D models
  • yaml-cpp for parsing and emitting YAML files