- Minecraft clone written with C++ and Vulkan
- Project made as a way of learning the basics about the Vulkan API.
- Download and install the required libraries
- GLM, GLW, GLFW, STB Image and LunarG Vulkan SDK.
- On windows open the solution in Visual Studio.
- On linux run the project using CMake (added by @MolassesLover)
- Make sure that you have Vulkan compatible drivers installed.
- Build and run project.
- The world generator is based on simple perlin noise.
- Multiple generations of noise are used, one for the terrain and other one for cloud placement.
- Blocks types are decided based on the weight relative to the surface, the same goes for underwater blocks.
- World chunks are organized as 3D linked list of chunks.
- Each chunk holds its data and 6 pointers to its neighbors (left, right, up, down, front, back).
- The linked structure allows for fast navigation and to find already created neighbors.
Up
| Back
| /
| /
Left ---- N ---- Right
/ |
/ |
Front |
Down
- Better world generation with biome support.
- Generate nodes in separate threads.
- Simplify geometry further (create only visible faces).
- Handle the water geometry separately and implement wavy shader animation.
- Try to use a geometry shader to generate the chunk geometry on the fly.
- The project is under MIT license, available on the project repository.