{"id":22954823,"url":"https://github.com/offdroid/cobble","last_synced_at":"2025-08-13T02:32:04.933Z","repository":{"id":191190026,"uuid":"396987023","full_name":"offdroid/cobble","owner":"offdroid","description":"Minecraft-esque voxel building game","archived":false,"fork":false,"pushed_at":"2021-08-17T10:23:45.000Z","size":3530,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-08-28T17:38:00.196Z","etag":null,"topics":["bevy","bevy-engine","game","minecraft","procedural-generation","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/offdroid.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}},"created_at":"2021-08-16T21:56:16.000Z","updated_at":"2023-08-28T17:38:00.952Z","dependencies_parsed_at":"2023-08-28T17:54:43.531Z","dependency_job_id":null,"html_url":"https://github.com/offdroid/cobble","commit_stats":null,"previous_names":["offdroid/cobble"],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offdroid%2Fcobble","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offdroid%2Fcobble/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offdroid%2Fcobble/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offdroid%2Fcobble/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/offdroid","download_url":"https://codeload.github.com/offdroid/cobble/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229724659,"owners_count":18114484,"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":["bevy","bevy-engine","game","minecraft","procedural-generation","rust"],"created_at":"2024-12-14T16:19:43.238Z","updated_at":"2024-12-14T16:19:43.844Z","avatar_url":"https://github.com/offdroid.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cobble\n\nA basic Minecraft-esque voxel building game written in Rust based on the Bevy engine\n\n![Screenshot 1](./assets/screenshots/01.jpg?raw=true \"Screenshot 1\")\n\n\u003cdetails\u003e\n\u003csummary\u003eMore screenshots\u003c/summary\u003e\n\n![Screenshot 2](./assets/screenshots/02.jpg?raw=true \"Screenshot 2\")\n![Screenshot 3](./assets/screenshots/03.jpg?raw=true \"Screenshot 3\")\n\u003c/details\u003e\n\n## Features\n\n- Block placement and destruction\n- Basic physics based movement and collisions\n- Procedural world generation\n- Nine types of blocks\n\n## Limitations\n\n- No world persistence\n- No async and/or parallel chunk loading and generation\n- Movement can occasionally be a bit weird\n\n## Running cobble\n\nRun just like any other project with cargo\n```bash\ncargo run --release\n```\nFor development, it might be beneficial to use the nightly toolchain with a special config, as detailed in the official bevy documentation, to drastically reduce the compile time.\n\nMoreover, runtime options can be set in the `cobble.yaml`-file, like this\n```yaml\nvideo:\n  vsync: false\ngame: \n  creative: false\n# ...\n```\n\u003cdetails\u003e\n\u003csummary\u003eFull schema (except for bindings, see defaults)\u003c/summary\u003e\n\u003cp\u003e\n\n```yaml\ndebug:\n  log_diagnostics: bool # default = false\n  print_default_config: bool # default = false\n  show_colliders: bool # default = false\n  show_fps: bool # default = true\n  show_selection: bool # default = true\n  show_selection_normal: bool # default = false\ngame: \n  breakable_bedrock: false # default = false\n  creative: true # default = true\ninput:\n  bindings:\n    # omitted, see default values for inspiration\n  initial_cursor_grab: bool # default = true\n  sensitivity: f32 # default = 1.0\nvideo:\n  msaa_samples: u32 # Any power of two, default = 4\n  show_interface: bool # default = true\n  vsync: bool # default = true\n  window_mode: Windowed | Borderless | Fullscreen # default = Windowed\n```\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDefault configuration\u003c/summary\u003e\n\u003cp\u003e\n\n```yaml\ndebug: \n  log_diagnostics: false\n  print_default_config: false\n  show_colliders: false\n  show_fps: true\n  show_selection: true\n  show_selection_normal: false\ngame: \n  breakable_bedrock: false\n  creative: true\ninput: \n  bindings: \n    DeadZone: {}\n    EventPhase: \n      BREAK: OnBegin\n      FULLSCREEN_TOGGLE: OnBegin\n      PLACE: OnBegin\n    GamepadAxis: {}\n    GamepadButtons: {}\n    KeyboardKeys: \n      A: MOVE_LEFT\n      D: MOVE_RIGHT\n      F3: FULLSCREEN_TOGGLE\n      Key1: SLOT_1\n      Key2: SLOT_2\n      Key3: SLOT_3\n      Key4: SLOT_4\n      Key5: SLOT_5\n      Key6: SLOT_6\n      Key7: SLOT_7\n      Key8: SLOT_8\n      Key9: SLOT_9\n      LControl: MOVE_MOD_FAST\n      LShift: MOVE_MOD_SLOW_DESC\n      S: MOVE_BACKWARD\n      Space: MOVE_JUMP\n      Tab: FLY_TOGGLE\n      W: MOVE_FORWARD\n    MouseButtons: \n      Left: BREAK\n      Middle: PICK_BLOCK\n      Right: PLACE\n    MouseMove: {}\n  initial_cursor_grab: true\n  sensitivity: 1.0\nvideo: \n  msaa_samples: 4\n  show_interface: true\n  vsync: true\n  window_mode: Windowed\n```\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDefault key-bindings\u003c/summary\u003e\n  \n| Action                               | Binding                                              | Note                              |\n|--------------------------------------|------------------------------------------------------|-----------------------------------|\n| Movement                             | \u003ckbd\u003eW\u003c/kbd\u003e/\u003ckbd\u003eA\u003c/kbd\u003e/\u003ckbd\u003e S\u003c/kbd\u003e/\u003ckbd\u003eD\u003c/kbd\u003e |                                   |\n| Jump/Ascend                          | \u003ckbd\u003eSpace\u003c/kbd\u003e                                     | Alternative action only in flight |\n| Sneak/Descend                        | \u003ckbd\u003eL-Shift\u003c/kbd\u003e                                   | Alternative action only in flight |\n| Sprint                               | \u003ckbd\u003eL-Control\u003c/kbd\u003e                                 |                                   |\n| Toggle fly                           | \u003ckbd\u003eTab\u003c/kbd\u003e                                       | Creative-mode only                |\n| Pause                                | \u003ckbd\u003eESC\u003c/kbd\u003e                                       |                                   |\n| Place block                          | \u003ckbd\u003eRight Mouse Button\u003c/kbd\u003e                        |                                   |\n| Break block                          | \u003ckbd\u003eLeft Mouse Button\u003c/kbd\u003e                         |                                   |\n| Pick block to inventory              | \u003ckbd\u003eMiddle Mouse Button\u003c/kbd\u003e                       | Creative-mode only                |\n| Switch active toolbar/inventory slot | \u003ckbd\u003e1\u003c/kbd\u003e - \u003ckbd\u003e9\u003c/kbd\u003e                          |                                   |\n\u003c/details\u003e\n\nCobble should run on most platforms, including WASM, but might require optimizations and adjustments to be usable on non-x86/x64 platforms or without keyboard- and mouse-input.\n\n## License\n\nLicensed under MIT, see [LICENSE](./LICENSE).\nThe licenses of the utilized code and assets are located under [LICENSES](./LICENSES).\n\n## References \n1. [Minecraft](https://www.minecraft.net/)\n2. [Bevy](https://bevyengine.org/) game engine\n3. [bevy_flycam](https://github.com/sburris0/bevy_flycam)\n4. [bevy_prototype_character_controller](https://github.com/superdump/bevy_prototype_character_controller/)\n5. [bevy_mod_picking](https://github.com/aevyrie/bevy_mod_picking/)\n6. [Majercik, A., Crassin, C., Shirley, P. and McGuire, M., 2018. _A ray-box intersection algorithm and efficient dynamic voxel rendering_. Journal of Computer Graphics Techniques Vol, 7(3).](http://jcgt.org/published/0007/03/04/)\n7. [bevy_prototype_inline_assets](https://github.com/emosenkis/bevy_prototype_inline_assets)\n8. [Rapier](https://rapier.rs/) physics engine \n9. [Noise](https://github.com/razaekel/noise-rs)\n10. [Filament](https://github.com/google/filament)\n11. [Building-blocks](https://github.com/bonsairobo/building-blocks)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foffdroid%2Fcobble","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foffdroid%2Fcobble","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foffdroid%2Fcobble/lists"}