This is my second attempt at my own 3d game engine.
- Prerequisites
- Getting Started
- Build Instructions
- Setting Up Symlinks
- Troubleshooting
- Additional Notes
- Contact Me
- Git
- CMake (3.x or later)
- A C++ compiler (e.g., GCC, Clang, MSVC)
- VulkanSDK (1.3.x)
- SDL2
- SDL2.dll is available in this repository
This engine only supports Windows at the moment and all instructions and setup will only be outlined for Windows.
-
Clone the repository:
git clone https://github.com/Williscool13/WillEngineV2.git
-
Navigate to the project directory:
cd WillEngineV2
-
Initialize and update submodules:
git submodule init git submodule update
- Open CMake GUI
- 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
- 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 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.
If you're prompted for an SDL2.dll, copy the SDL2.dll from this repository into the working directory of your built project.
This error is often 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.
- Make sure you have the necessary permissions to create symlinks on your system.
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].