Vixen is a 3D physically-based game engine. This project is my own attempt at making a game engine in my effort to master all 3 major graphics APIs; OpenGL, Vulkan and DirectX12. All of these APIs are to be supported by Vixen, and they are to be switched between with a simple restart.
- Implement the 3 major APIs commonly used in modern rendering systems.
- Vulkan 1.3
- Full Vulkan 1.0 compatability
- MoltenVK
- Direct3D 12
- OpenGL 4.5
- WebGL
- Vulkan 1.3
- Implement a simple editor application, allowing users to create their own scenes and compile to a standalone game executable.
- Implement a scripting engine.
- Implement a physics engine, using a library.
- Implement a sound engine, using a library.
- Create at least one game with Vixen with a minimum gameplay loop of 1 minutes, before the end of my Master.
- This game will focus on graphical effects, rather than gameplay, hence the short runtime.
The engine consists of several modules, primarily the runtime core abstraction and its distinct rendering API implementations.
The runtime abstraction for Vixen lives under the core directory. Their implementations are in their respective platform directories.
The editor application lives under the editor directory.
Clone the repository and its submodules.
git clone --recurse-submodules https://github.com/WinteryFox/Vixen.git
Download and install the Vulkan SDK, CMake, and a compiler toolchain of your choice, like MSYS2.
Below is a list of one-liners for the different distributions to install all the required dependencies to build Vixen.
sudo apt update
sudo apt install -y \
build-essential \
cmake \
libxkbcommon-dev \
libx11-dev \
libxcursor-dev \
libxinerama-dev \
libgl1-mesa-dev \
libxi-dev \
libxrandr-dev \
libwayland-dev \
libpulse-dev \
libvulkan-dev \
vulkan-tools \
vulkan-utility-libraries-dev \
vulkan-validationlayers