Skip to content

This my Vulkan engine project where I used to learn and experiment with Vulkan, C++.

Notifications You must be signed in to change notification settings

gabrielkryss/personal-vulkan-engine

Repository files navigation

Personal Vulkan Engine Project

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.

Table of Contents

  1. Checklist
  2. How to Run

Checklist

  • 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

How to run

To get started with this project, clone the repository and follow the setup instructions provided in the respective directories. Feedback is always welcome!

Requirements

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

About

This my Vulkan engine project where I used to learn and experiment with Vulkan, C++.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages