Skip to content

Latest commit

 

History

History
52 lines (42 loc) · 2.14 KB

README.md

File metadata and controls

52 lines (42 loc) · 2.14 KB

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.