{"id":15646246,"url":"https://github.com/tentone/vkcraft","last_synced_at":"2025-10-29T12:33:26.315Z","repository":{"id":97242940,"uuid":"134306048","full_name":"tentone/vkCraft","owner":"tentone","description":"Minecraft clone written with C++ and Vulkan, node structure for infinite world chunks.","archived":false,"fork":false,"pushed_at":"2022-09-03T10:34:32.000Z","size":43231,"stargazers_count":53,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-25T07:41:31.606Z","etag":null,"topics":["game-dev","minecraft","voxels","vulkan"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tentone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-21T18:02:09.000Z","updated_at":"2024-12-22T19:15:07.000Z","dependencies_parsed_at":"2023-03-13T16:18:27.619Z","dependency_job_id":null,"html_url":"https://github.com/tentone/vkCraft","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tentone%2FvkCraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tentone%2FvkCraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tentone%2FvkCraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tentone%2FvkCraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tentone","download_url":"https://codeload.github.com/tentone/vkCraft/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242650895,"owners_count":20163610,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game-dev","minecraft","voxels","vulkan"],"created_at":"2024-10-03T12:12:02.376Z","updated_at":"2025-10-29T12:33:21.295Z","avatar_url":"https://github.com/tentone.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vkCraft\n - Minecraft clone written with C++ and Vulkan\n - Project made as a way of learning the basics about the Vulkan API.\n\n## How to run\n - Download and install the required libraries\n   - [GLM](https://github.com/g-truc/glm), [GLW](https://github.com/mallocc/glw), [GLFW](https://www.glfw.org/), [STB Image](https://github.com/nothings/stb) and [LunarG Vulkan SDK](https://www.lunarg.com/vulkan-sdk/).\n - On windows open the solution in [Visual Studio](https://visualstudio.microsoft.com/vs/community/).\n - On linux run the project using [CMake](https://cmake.org/) (added by [@MolassesLover](https://github.com/MolassesLover))\n - Make sure that you have Vulkan compatible drivers installed.\n - Build and run project.\n\n## Screenshots\n![alt tag](https://raw.githubusercontent.com/tentone/vkCraft/master/images/a.png)![alt tag](https://raw.githubusercontent.com/tentone/vkCraft/master/images/b.png)!\n\n## World generator\n - The world generator is based on simple perlin noise.\n - Multiple generations of noise are used, one for the terrain and other one for cloud placement.\n - Blocks types are decided based on the weight relative to the surface, the same goes for underwater blocks.\n\n## Chunk structure\n - World chunks are organized as 3D linked list of chunks.\n - Each chunk holds its data and 6 pointers to its neighbors (left, right, up, down, front, back). \n - The linked structure allows for fast navigation and to find already created neighbors.\n\n\n```\n            Up\n            |    Back\n            |   /\n            | /\n  Left ---- N ---- Right\n          / |\n        /   |\n     Front  |\n           Down\n```\n\n## To do\n - Better world generation with biome support.\n - Generate nodes in separate threads.\n - Simplify geometry further (create only visible faces).\n - Handle the water geometry separately and implement wavy shader animation.\n - Try to use a geometry shader to generate the chunk geometry on the fly.\n\n## References\n - [Mike Bailey's Vulkan Guide](http://web.engr.oregonstate.edu/~mjb/vulkan/)\n - [Alexander Overvoorde Vulkan Guide](https://vulkan-tutorial.com/Introduction)\n\n## License\n - The project is under MIT license, available on the project repository.\n ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftentone%2Fvkcraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftentone%2Fvkcraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftentone%2Fvkcraft/lists"}