ZEngine
ZEngine is an open-source 2D - 3D rendering engine written in C++ and using OpenGL as graphic API. It can be used for activities such as:
- game prototyping
- scientific computation and visualization
Supported Platforms:
- Windows
- macOS
- Linux (
Debian
orUbuntu
are recommended systems)
Setup
Before building, make sure your setup is correct :
Setup Window machine
- Install Visual Studio 2019 Community or Professional, make sure to add "Desktop development with C++".
- Install PowerShell Core
Setup macOS machine
- Install lastest version of
Visual Studio Code
or any text editor - Install PowerShell Core
- Install compiler
Apple Clang
(most recent version)
Setup Linux machine
- Install lastest version of
Visual Studio Code
or any text editor - Install PowerShell Core
- Install compiler
gcc-11
- Install debugger
gdb
- Install packages
libxext-dev libasound2-dev libgl1-mesa-dev libpulse-dev
libudev-dev libdbus-1-dev libx11-dev libxcursor-dev libxi-dev
libxinerama-dev libxrandr-dev libxss-dev libxt-dev libxxf86vm-dev
Building
As this project uses differents dependencies, make sure you've cloned the project with the --recursive
option.
You can also do git submodule update --init --recursive
.
- Install CMake 3.20 or later.
- Start
Powershell Core
and make sure that you can run CMake, you can typecmake --version
to simply output the current CMake's version installed. - Change directories to the location where you've cloned the repository.
- Building on different systems
-
Building on Windows :
- Debug version :
.\Scripts\BuildEngine.ps1 -SystemNames Windows -Architectures x64 -Configurations Debug -RunBuilds $True
- Release version :
.\Scripts\BuildEngine.ps1 -SystemNames Windows -Architectures x64 -Configurations Release -RunBuilds $True
- Debug version :
-
Building on macOS :
- Debug version :
.\Scripts\BuildEngine.ps1 -SystemNames Darwin -Architectures x64 -Configurations Debug -RunBuilds $True
- Release version :
.\Scripts\BuildEngine.ps1 -SystemNames Darwin -Architectures x64 -Configurations Release -RunBuilds $True
- Debug version :
-
Building on Linux :
- Debug version :
.\Scripts\BuildEngine.ps1 -SystemNames Linux -Architectures x64 -Configurations Debug -RunBuilds $True
- Release version :
.\Scripts\BuildEngine.ps1 -SystemNames Linux -Architectures x64 -Configurations Release -RunBuilds $True
- Debug version :
-
- Notes :
Architectures
can be omitted as its default value is :x64
.RunBuilds
can be omitted as its default value is :$True
.- You can build
Debug
andRelease
versions at once by omitting theConfiguration
parameter
Dependencies
The project uses the following dependencies :
- SDL2 for window creation and user input management for Linux,
- GLFW for window creation and user input management for Window and MacOS,
- GLM for functions and mathematical calculations,
- GLAD for openGL functions
- 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 assest 2D -3D models