A playground for everything I learn about game development and graphics programming.
Nexus Engine is a long-term learning project with usability as its eventual goal. It serves as a place for me to explore engine architecture, graphics, and tooling while keeping everything practical enough to eventually build real projects with.
The project is written in C++23 and is currently developed and tested on Windows and Linux.
- A C++23-compatible compiler
- CMake >= 3.30
- Ninja >= 1.11
- Git
Supported compilers:
- GCC 16
- Clang 22
- MSVC 19
The following packages are required on Debian/Ubuntu-based systems using apt.
Adapt the package names to your distribution and package manager as needed.
apt-get update && apt-get install \
pkg-config \
libwayland-dev \
libx11-dev \
libxrandr-dev \
libxinerama-dev \
libxcursor-dev \
libxi-dev \
libxkbcommon-dev \
wayland-protocols \
doxygen \
graphvizClone the repository:
git clone https://github.com/dark-dylan-dev/NexusEngine.git
cd NexusEngineConfigure and build the project with CMake and Ninja:
cmake -B Build -G Ninja
cmake --build BuildAdditional options can be passed during configuration:
cmake -B Build -G Ninja \
-DNEXUS_BUILD_TEST=ON \
-DCMAKE_BUILD_TYPE=ReleaseYou can also use parallel compilation:
cmake --build Build --parallel <NUMBER_OF_CORES>Nexus Engine uses Google Test for unit testing.
Enable tests during configuration:
cmake -B Build -G Ninja -DNEXUS_BUILD_TEST=ONThen run them with:
ctest --test-dir Build/Tests --output-on-failureAPI documentation is generated using Doxygen:
doxygen DoxyfileNexus Engine is licensed under the MIT License.