vkEngine is a toy game engine currently in development. It uses Vulkan as the rendering backend, integrates JoltPhysics for real-time physics simulation, and embeds CoreCLR as the scripting runtime for C#.
The project is primarily intended as a platform for experimenting with graphics and game development techniques.
- Windows 10/11
- Visual Studio 2022 (with C++23 support)
- Miniconda/Anaconda
- VulkanSDK >= 1.4
- .NET SDK 9.0
git clone --recursive https://github.com/Al0ha0e/vkEngine.git
cd vkEngine
conda create -n vkengine python=3.12
conda activate vkengine
pip install -r requirements.txt
mkdir out
sconsSConstruct will also:
- build
csharp/EngineCore - build the test gameplay assembly under
tests/csharp - run the reflection code generator for
GameConfig - compile the builtin shaders
The build will produce out/engine.exe. The executable expects a single game config json:
./out/engine.exe ./tests/cfg/test_sponza.json
./out/engine.exe ./tests/cfg/test_jolt.json
./out/engine.exe ./tests/cfg/test_anim.json
./out/engine.exe ./tests/cfg/test_env.json
- glfw
- SPIRV-Reflect
- stb_image
- assimp
- tinygltf
- VulkanMemoryAllocator
- nlohmann/json
- spdlog
- JoltPhysics
- ozz-animation
- entt
- freetype
- Frame Graph:
- support for multiple queue families
- transient resource allocation
- Rendering:
- cluster-based deferred rendering & PBR
- directional/spot/point lights
- UI rendering
- IBL
- shadow mapping
- Scripting:
- CoreCLR integration
- python-based preprocessing tool to generate metadata