Welcome to my personal Vulkan engine project! This repository is my playground for learning and experimenting with Vulkan and modern C++. My goal is to understand Vulkan concepts and build a simple graphics engine from scratch, which will gradually evolve into a basic game engine. This is a long-term, slow, evolving project where I experiment with and test new game technologies and techniques as my busy schedule allows for. While you shouldn't expect everything to be polished, I aim to write maintainable C++ code as best that I can.
- Learn Vulkan concepts and set up very simple infrastructure code.
- Construct a simple render pipeline:
- Compile fragment and vertex shaders to SPIR-V.
- Learn about and implement synchronization structures.
- Implement multithreaded rendering by having more semaphores and fences owned by images.
- Draw a triangle on the screen.
- Draw multiple triangles on the screen.
- Textures
- ......
- Depth Buffering
- ......
- Loading 3D models assets
- ......
- Directional Lights
- ......
- Cubemaps
- ......
- Support DX12 (would have to rename the project at this point)
- Construct ray tracing pipeline
- Implement simple Nanite, Rendering Meshlets (this is a whole other undertaking but I am currently researching to implement, who knows maybe its not that bad)
- ......
- Entity Component System
- ......
- Design Game Engine API
- ......
- Font Rendering
- ......
- Cross Platform
- Input Handling
- ......
- Audio
- ......
- Networking
- Physics
To get started with this project, clone the repository and follow the setup instructions provided in the respective directories. Feedback is always welcome!
Install Vulkan SDK from LunarG. Disclaimer I have only tested this project on Windows 11.
git clone [https://github.com/your-username/vulkan-engine.git](https://github.com/gabrielkryss/personal-vulkan-engine.git)
cd personal-vulkan-engine/
I use conan2 to install dependencies
conan install . --profile="custom_conan_profile" --build=missing
go into the build directory
cd build
Generate build scripts
cmake .. -G "Visual Studio 17 2022" -DCMAKE_TOOLCHAIN_FILE="generators/conan_toolchain.cmake"
Build the project
cmake --build . --config Release --clean-first
Run executable
./Release/MyProject.exe