{"id":25352745,"url":"https://github.com/jsoulier/blocks","last_synced_at":"2025-10-08T14:18:10.213Z","repository":{"id":261028199,"uuid":"875301163","full_name":"jsoulier/blocks","owner":"jsoulier","description":"Tiny Minecraft clone in C and GLSL using the new SDL3 GPU API","archived":false,"fork":false,"pushed_at":"2025-09-20T17:43:54.000Z","size":12176,"stargazers_count":184,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-20T19:26:27.822Z","etag":null,"topics":["3d","c","example","examples","game","glsl","gpu","minecraft","sdl","sdl3","shaders","voxel"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jsoulier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-19T16:07:41.000Z","updated_at":"2025-09-20T17:43:57.000Z","dependencies_parsed_at":"2025-01-08T05:22:47.270Z","dependency_job_id":"cefb38bd-6502-4165-a6f7-66b91ebef46b","html_url":"https://github.com/jsoulier/blocks","commit_stats":null,"previous_names":["jsoulier/blocks"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/jsoulier/blocks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsoulier%2Fblocks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsoulier%2Fblocks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsoulier%2Fblocks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsoulier%2Fblocks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsoulier","download_url":"https://codeload.github.com/jsoulier/blocks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsoulier%2Fblocks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278956388,"owners_count":26075238,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["3d","c","example","examples","game","glsl","gpu","minecraft","sdl","sdl3","shaders","voxel"],"created_at":"2025-02-14T18:59:24.119Z","updated_at":"2025-10-08T14:18:10.207Z","avatar_url":"https://github.com/jsoulier.png","language":"C","readme":"# Blocks\n\n![](image.png)\n\nTiny Minecraft clone in C and GLSL using the new SDL3 GPU API\n\n### Features\n\n- Procedural world generation\n- Parallel chunk loading\n- Blocks and plants\n- Transparency (limited)\n- Deferred rendering\n- Directional shadows\n- SSAO (ish)\n- Water depth shading\n- Persistent worlds\n\n### Building\n\n#### Windows\n\nInstall the [Vulkan SDK](https://www.lunarg.com/vulkan-sdk/) for glslc\n\n```bash\ngit clone https://github.com/jsoulier/blocks --recurse-submodules\ncd blocks\nmkdir build\ncd build\ncmake ..\ncmake --build . --parallel 8 --config Release\ncd bin\n./blocks.exe\n```\n\n#### Linux\n\n```bash\nsudo apt install glslc\n```\n\n```bash\ngit clone https://github.com/jsoulier/blocks --recurse-submodules\ncd blocks\nmkdir build\ncd build\ncmake .. -DCMAKE_BUILD_TYPE=Release\ncmake --build . --parallel 8\ncd bin\n./blocks\n```\n\n### Controls\n\n- `WASDEQ` to move\n- `Escape` to unfocus\n- `LClick` to break a block\n- `RClick` to place a block\n- `B` to toggle blocks\n- `F11` to toggle fullscreen\n- `LControl` to move quickly\n- `LShift` to move slowly\n\n### Rendering\n\n1. Draw the sky to the g-buffer\n2. Draw the world from the sun's perspective to a depth texture (shadows)\n3. Draw the world (opaque only) to the g-buffer\n4. Calculate SSAO using the g-buffer\n5. Combine the g-buffer, SSAO, and shadows together to create a composite texture\n6. Draw the world (transparent only) with blending to the composite texture\n7. Draw the raycast block to the composite texture\n8. Upscale the composite texture to the swapchain texture\n9. Draw the UI over the swapchain texture\n10. Submit","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsoulier%2Fblocks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsoulier%2Fblocks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsoulier%2Fblocks/lists"}