This project is an experimental game engine with Vulkan render. I use it for test ideas and new concepts about game engine development.
I started this project following the Brendan Galea tutorials series Vulkan Game Engine Tutorial. He explains very well all concepts of each part about setting up a Game Engine with Vulkan. Also, he shows nice concepts about things you can do. I really recommend his tutorial and considered is the best vulkan tutorial so far.
All the dependencies are installed with Conan package manager with the conanfile.txt
Name | Version |
---|---|
spdlog | 1.8.2 |
GLFW | 3.3.2 |
Vulkan Headers | 1.2.182 |
Vulkan Loader | 1.2.182 |
Nlohmann json | 3.9.1 |
CLI11 | 1.9.1 |
Vulkan® Memory Allocator | 2.3.0 |
Entt | 3.8.0 |
TinyObjLoader | x.x.x |
- CMake 3.18+
- Python 3+
- Conan 1.35.1+
For install Conan and create the profile, there is the Conan Getting Started.
- GCC 11
mkdir build && cd build
conan install ..
cmake .. -DCMAKE_BUILD_TYPE=Release
make
- MSVC Compiler 16
mkdir build && cd build
conan install ..
cmake .. -DCMAKE_BUILD_TYPE=Release -G "Visual Studio 16"
cmake --build . --config Release
Example about how to implement a simple camera movement system with the keyboard input.
implement a diffuse lighting model with a constant ambient light term in the vertex shader. This colors the vase object by calculating the intensity of light for each vertex based on how directly the surface at the point faces the incoming light.