This is my second attempt at my own 3d game engine.
- Git
- Git LFS (Large File Storage)
- CMake (3.x or later)
- Visual Studio 2022 (or newer) with MSVC Compiler
- Required because precompiled libraries were built with MSVC
- VulkanSDK (1.3.296)
This engine only supports Windows at the moment and all instructions and setup will only be outlined for Windows.
-
Clone the repository (skip LFS files):
export GIT_LFS_SKIP_SMUDGE=1 git clone --filter=blob:none https://github.com/Williscool13/WillEngineV2.git
-
Navigate to the project directory:
cd WillEngineV2
-
Initialize and update submodules:
git submodule init git submodule update
-
Download LFS files:
git lfs pull
- Set the source code directory to the root of the WillEngineV2 project
- Choose a build directory (e.g.,
build
orcmake-build-debug
) - Click "Configure" and select your preferred generator (must be MSVC, I suggest VS2022)
- Click "Generate"
- Open the generated project in your IDE or build it from the command line
After building the project, you need to set up symlinks for the shaders and assets directories to avoid creating unnecessary copies. For simplicity, you may simply copy the entire shaders and assets folder into your build folder instead.
Open a Command Prompt as administrator in your build directory and run:
mklink /D shaders ..\shaders
mklink /D assets ..\assets
Note: Adjust the paths if your folder structure differs.
This error is typically caused by vkb failing to find a suitable GPU to use. It could be that your GPUs do not support Vulkan 1.3 or the use of some vulkan extensions (in this case Descriptor Buffers). You can verify this by checking what extensions your GPU supports at https://vulkan.gpuinfo.org/.
Unfortunately there isn't much that can be done if you get this error.
- Use
git lfs pull
after cloning to ensure large files are correctly downloaded. For this project, shaderc is precompiled and the binaries are stored in Git LFS.
If you have any troubles with the code or would like to discuss game engine/rendering architecture, please feel free to contact me at [email protected].