{"id":21289099,"url":"https://github.com/shapur1234/rezcraft","last_synced_at":"2025-07-11T14:31:52.378Z","repository":{"id":190858694,"uuid":"683490401","full_name":"Shapur1234/Rezcraft","owner":"Shapur1234","description":"Voxel engine written in rust using wgpu, supporting both native and wasm","archived":false,"fork":false,"pushed_at":"2024-08-11T16:03:10.000Z","size":13869,"stargazers_count":13,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-07T14:16:21.176Z","etag":null,"topics":["engine","freesoftware","minecraft","nix-flake","parallel-computing","procedural-generation","rust","rust-lang","voxel","voxel-engine","voxel-game","voxels","wasm","webgpu","wgpu"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shapur1234.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2023-08-26T18:29:29.000Z","updated_at":"2025-05-13T01:00:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"899af0a7-1f87-4300-b0e6-5db76f088226","html_url":"https://github.com/Shapur1234/Rezcraft","commit_stats":{"total_commits":66,"total_committers":2,"mean_commits":33.0,"dds":"0.18181818181818177","last_synced_commit":"aa1b4bf2f1afa916734b196d74f0a09d2b48df85"},"previous_names":["shapur1234/rezcraft"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Shapur1234/Rezcraft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shapur1234%2FRezcraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shapur1234%2FRezcraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shapur1234%2FRezcraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shapur1234%2FRezcraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shapur1234","download_url":"https://codeload.github.com/Shapur1234/Rezcraft/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shapur1234%2FRezcraft/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264090353,"owners_count":23555887,"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":["engine","freesoftware","minecraft","nix-flake","parallel-computing","procedural-generation","rust","rust-lang","voxel","voxel-engine","voxel-game","voxels","wasm","webgpu","wgpu"],"created_at":"2024-11-21T12:34:18.364Z","updated_at":"2025-07-11T14:31:49.803Z","avatar_url":"https://github.com/Shapur1234.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Rezcraft](https://shapur1234.github.io/Rezcraft-Demo/ \"Link to web version (mobile controls not supported)\")\n\n- Voxel engine written in rust using wgpu\n- Supports both native targets and [wasm](https://en.wikipedia.org/wiki/WebAssembly)\n\n## Screenshots\n\n![Sunlight](./screenshot/2.png?raw=true \"Sunlight\")\n![Lighting](./screenshot/3.png?raw=true \"Lighting\")\n![UI](./screenshot/4.png?raw=true \"UI\")\n\n## Features\n\n- Parallelised world and mesh generation\n- Efficient meshes using [greedy meshing](https://0fps.net/2012/06/30/meshing-in-a-minecraft-game/)\n- Easily add custom textures and blocks, modify blocktypes at runtime\n- Colored lighting system, sunlight\n- Configurable through in-app settings\n- Transparency (native only)\n- Savegame system (native only)\n\n## How to\n\n### Installation\n\n- Run the [web version](https://shapur1234.github.io/Rezcraft-Demo/ \"Link to web version (mobile controls not supported)\") without installing anything\n- Precompiled binaries can be found under [releases](https://github.com/Shapur1234/Rezcraft/releases), these binaries have all assets baked into themselves, so you need no resource directory\n- You can also use the included nix developement shell and packages\n- To host the web version locally, use the [script](./script/run_wasm.sh) (inside a nix dev shell)\n\n- Alternatively, if you compile `rezcraft` without the `portable` feature enabled, setup your file structure like this:\n  - Have the binary `rezcraft` (or `rezcraft.exe` on windows) and the `res` directory are in the same directory\n  - Your directory tree should look like this:\n\n```\n├── res\n│   ├── block\n│   │   └── ...\n│   ├── icon.png\n│   ├── shader\n│   │   └── ...\n│   └── texture\n│       └── ...\n└── rezcraft (rezcraft.exe on windows)\n```\n\n- - The location of the save and resource directories (defaults are `./saves` and `./res`) can be change by setting the `SAVES_PATH` and `RESOURCE_PATH` enviromental variable\n\n### Adding custom textures and blocks\n\n#### Textures\n\n- Add a `.png` image to `./res/texture/`, it will be loaded after programm restart\n- All texture must be square and all textures must have the same resolution\n\n#### Blocks\n\n- Add a `.yaml` block describing file to `./res/block/`, use one of the exisitng files as a tempalte\n- Blocks and their textures, light souces, and properties such as transparency and solidness can also be edited at runtime (`Edit block` menu while paused)\n\n### Controls\n\n| Key             | Action                           |\n| --------------- | -------------------------------- |\n| Mouse motion    | Rotate camera                    |\n| W / ArrowUp     | Move forward                     |\n| S / ArrowDown   | Move back                        |\n| A / ArrowLeft   | Move left                        |\n| D / ArrowRight  | Move right                       |\n| Space / K       | Move up                          |\n| LShift / J      | Move down                        |\n| X / MouseRight  | Delete block                     |\n| C / MouseLeft   | Place block                      |\n| V / MouseMiddle | Pick block                       |\n| M               | Reload chunk at players position |\n| F5              | Save                             |\n| F9              | Load                             |\n| F11             | Toggle fullscreen                |\n| F12             | Reload settings from config file |\n| Tab             | Pause / Resume                   |\n| Escape          | Exit                             |\n\n## Building using cargo\n\n- Have [rust](https://www.rust-lang.org/tools/install) installed, or optionally use the included dev shelle: `nix develop`\n- Pick feautres\n\n| Feature     | Description                                                                                     | Notes                                     |\n| ----------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------- |\n| portable    | Doesn't read resources (textures, shaders...) from disk, but instead bakes them into the binary | Must be enabled when compiling for `wasm` |\n| save_system | Allow for saving and olding of the world                                                        | Doesn't work with `wasm`                  |\n| rayon       | Extra pararelism for loading terrain and saving                                                 | Doesn't work with `wasm`                  |\n\n- Manually\n  - To build - `cargo build --no-default-features --release --features \"Feature1 Feature2\"`\n  - To run - `cargo run --no-default-features --release --features \"Feature1 Feature2\"`\n  - To build for wasm - `wasm-pack build --release --no-default-features --features portable --target web --features wasm_thread/es_modules`\n- Using the build script\n  - To build for native targets - [run_native.sh](./script/run_native.sh)\n  - To build for wasm - [run_wasm.sh](./script/run_wasm.sh)\n\n## Links\n\n- Source repo - [https://github.com/Shapur1234/Rezcraft](https://github.com/Shapur1234/Rezcraft)\n- Crate.io - [https://crates.io/crates/rezcraft](https://crates.io/crates/rezcraft)\n\n## Possible plans for future updates\n\n- Improved worldgen\n- Editable controls\n- Physics, improved collision detection\n- Optionally bake assets into the binary\n- Fancy shader effects\n- Multiplayer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshapur1234%2Frezcraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshapur1234%2Frezcraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshapur1234%2Frezcraft/lists"}