tentone / vkCraft

Minecraft clone written with C++ and Vulkan, node structure for infinite world chunks.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vkCraft

  • Minecraft clone written with C++ and Vulkan
  • Project made as a way of learning the basics about the Vulkan API.

How to run

Screenshots

alt tagalt tag!

World generator

  • 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.

Chunk structure

  • 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

To do

  • 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.

References

License

  • The project is under MIT license, available on the project repository.

About

Minecraft clone written with C++ and Vulkan, node structure for infinite world chunks.

License:MIT License


Languages

Language:C++ 95.1%Language:CMake 1.7%Language:Python 1.6%Language:GLSL 1.5%Language:Batchfile 0.1%