Custom Voxel Engine in C++ with Vulkan
Note
Craft is still under heavy development. Do not expect a functional product in its current state.
| Feature | Implemented? |
|---|---|
| Implement Vulkan abstractions for most things | DONE |
| Implement voxel generation and meshing | DONE |
| Implement world editing (building and breaking) | DONE |
| Play as blocks that shoot each other | NO |
More features will come, as they will be implemented. I'll try my best listing them all here.
- WASD for moving
- Tab for toggling mouse access
- ...
All compilers should be supported. A GLSL shader compiler glslc is required, and the easiest way to install it is via the Vulkan SDK.
All libraries are included within the repository. Clone with:
git clone --recursive https://github.com/qaxl/craftBuilding with CMake (platform-agnostic):
# Create build directory, you can call this whatever.
mkdir build && cd build
# Generate project files and build the program.
cmake .. && cmake --build .Currently supported platforms are the following:
| Platform | Support |
|---|---|
| Android | Planned |
| Linux | Planned |
| Windows | Supported |
- Vulkan for rendering graphics
- Volk for loading the Vulkan library
- VulkanMemoryAllocator for allocating memory in Vulkan
- ImGui for intermediate GUI
- GLM for mathematics (will be replaced soon:tm:)
- SDL for windowing and platform-specific APIs
- stb_image for image loading
- Steamworks for Steam integration (TODO!)
- vulkan-tutorial.com for teaching the basics
- vulkan.org/learn for diving deeper; I recommend this tutorial, if you want to get started!
- vkguide.dev for dynamic rendering implementation
- ...
