{"id":22366569,"url":"https://github.com/c2i-junia/rustcraft","last_synced_at":"2025-07-30T17:32:08.527Z","repository":{"id":258269593,"uuid":"859213828","full_name":"c2i-junia/rustcraft","owner":"c2i-junia","description":"minecraft game clone built in rust.","archived":false,"fork":false,"pushed_at":"2024-12-03T22:56:47.000Z","size":104533,"stargazers_count":17,"open_issues_count":30,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-12-03T23:29:33.251Z","etag":null,"topics":["bevy","bevy-engine","game","minecraft-clone","rust-lang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/c2i-junia.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.txt","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}},"created_at":"2024-09-18T09:29:01.000Z","updated_at":"2024-12-03T22:56:50.000Z","dependencies_parsed_at":"2024-11-13T20:27:22.066Z","dependency_job_id":"020d1f14-90cd-4e55-8fda-ad59d99bf43f","html_url":"https://github.com/c2i-junia/rustcraft","commit_stats":null,"previous_names":["c2i-junia/minecraft-rust","c2i-junia/rustcraft"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c2i-junia%2Frustcraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c2i-junia%2Frustcraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c2i-junia%2Frustcraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c2i-junia%2Frustcraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/c2i-junia","download_url":"https://codeload.github.com/c2i-junia/rustcraft/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228164535,"owners_count":17879085,"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-clone","rust-lang"],"created_at":"2024-12-04T18:14:09.380Z","updated_at":"2024-12-04T18:14:10.249Z","avatar_url":"https://github.com/c2i-junia.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# rustcraft\n\nMinecraft game clone written in Rust, using the Bevy game engine.\n\n![image](./docs/preview.png)\n\n\u003cbr\u003e\n\n# Table of contents\n\n- [Features](#features)\n- [Download](#download)\n- [Controls](#controls)\n- [How to Build](#how-to-build)\n    - [Prerequisites](#prerequisites)\n    - [Running the Project](#running-the-project)\n- [Contributing](#contributing)\n    - [Guidelines](#guidelines)\n\n# Features\n- Procedurally generated worlds with biomes (Plains, Forest, Mountains, Desert, Ice Plain), trees and flowers.\n- Multiplayer functionality.\n- Dynamic day/night cycle\n- Block breaking and placing mehanics.\n- Inventory system with a functional hotbar.\n- World saving and loading.\n- Customizable keybindings and dynamic render distance adjustment.\n\n# Download\n\nYou can download the game for **Windows** and **Linux** from the [Releases page](https://github.com/c2i-junia/rustcraft/releases) of the GitHub repository.\n\nOnce downloaded, extract the archive for your operating system. The executable will be located in the `/bin` folder of the extracted directory.\n\n# Controls\n\n```\nMovement\n- Jump:             Space\n- Strafe Left:      A / Arrow Left\n- Strafe Right:     D / Arrow Right\n- Walk Backward:    S / Arrow Down\n- Walk Forward:     W / Arrow Up\n- Toggle Fly Mode:  F\n- Fly Up:           Space\n- Fly Down:         Left Shift\n\nGameplay\n- Destroy Block:  Left Mouse Button\n- Place Block:    Right Mouse Button\n\nInventory\n- Open/Close Inventory:   E\n- Pick up stack:          Left Click\n- Pick up half of stack:  Right Click (with empty mouse)\n- Deposit 1 item:         Right Click (over valid stack)\n- Deposit MAX items:      Left Click (over valid stack)\n- Exchange stacks:        Left Click (over a different stack or full valid stack)\n\n\u003e A \"valid stack\" refers to a stack in the inventory that is either empty or contains the same items as the mouse cursor.\n\nMiscellaneous\n- Toggle FPS Display:        F3\n- Toggle Perspective:        F5\n- Toggle Chunk Debug:        F4\n- Toggle Block Debug:        F6\n- Decrease Render Distance:  O\n- Increase Render Distance:  P\n- Exit Game:                 Escape\n```\n\n# How to Build\n\n## Prerequisites\n\nTo build and run this project, you need the following tools and dependencies installed:\n\n### 1. **Rust**\n- Install Rust using [Rustup](https://rustup.rs)\n- After installation, add the **Nightly toolchain** with the Cranelift backend:\n  ```bash\n  rustup install nightly\n  rustup default nightly\n  rustup component add rustc-codegen-cranelift-preview --toolchain nightly\n  ```\n\n### 2. **Just**\n- **Just** is used in this project to manage build. Install it using Cargo:\n  ```bash\n  cargo install just\n  ```\n\u003e Note: You can also install Just using your system's package manager.\n\n### 3. **Dependencies**\n\nInstall the required dependencies based on your operating system:\n\n#### Arch Linux\n```bash\nsudo pacman -S base-devel mold clang vulkan-radeon vulkan-tools\n```\n- Replace `vulkan-radeon` with:   \n  - `vulkan-intel` for Intel GPUs.   \n  - `nvidia-utils` for NVIDIA GPUs.   \n\n#### Ubuntu/Debian\n```bash\nsudo apt update \u0026\u0026 sudo apt install -y \\\n    build-essential mold clang mesa-vulkan-drivers vulkan-tools\n```\n- For NVIDIA GPUs, also install:\n    ```shell\n    sudo apt install -y nvidia-driver nvidia-vulkan-icd\n    ```\n\n#### Windows\n- **Git Bash** is required to ensure the commands in the `Justfile` and scripts run correctly. Download and install [Git Bash](https://git-scm.com/).\n- After installation, make sure Git Bash is added to your system's `PATH`. You can verify it by running:\n  ```bash\n  bash --version\n  ```\n\n## Running the Project\n\nTo compile and run the game locally, use the following commands:\n\nNote: the first compilation will be slow depending on your hardware, next compilations will be incremental and thus faster.\n\n```sh\n# Clone the repository\ngit clone https://github.com/c2i-junia/rustcraft\n\n# Navigate to the project directory\ncd rustcraft\n```\n\nDebug mode:\n```sh\n./run-server.sh  # this will compile the project and run the server\n./run1.sh        # this will compile the project and run the client \n```\n\nRelease mode:\n```sh\n# Build the project in debug or release mode\njust generate-release-folder\n\n# Run the executable\n./release/bin/rustcraft         # run the client\n./release/bin/rustcraft-server  # run the server\n```\n\n# Contributing\n\nFeel free to submit issues or open pull requests. If you want to know where to help, refer to the existing issues.\n\n## Guidelines \n\n### Format\nRun `cargo fmt` before committing.\n\n### Commit messages:\n\nWe follow the [Conventional Commit specification](https://www.conventionalcommits.org/en/v1.0.0/).\n```\n\u003ctype\u003e[optional scope]: \u003cdescription\u003e\n\n[optional body]\n\n[optional footer(s)]\n```\n\nOur commit types are inspired by the [Karma specification](http://karma-runner.github.io/6.4/dev/git-commit-msg.html)\n\nAllowed \u003ctype\u003e values: \n- **feat** for a new feature for the user, not a new feature for build script. Such commit will trigger a release bumping a MINOR version.\n- **fix** for a bug fix for the user, not a fix to a build script. Such commit will trigger a release bumping a PATCH version.\n- **perf** for performance improvements. Such commit will trigger a release bumping a PATCH version.\n- **docs** for changes to the documentation.\n- **style** for formatting changes, missing semicolons, etc.\n- **refactor** for refactoring production code, e.g. renaming a variable.\n- **test** for adding missing tests, refactoring tests; no production code change.\n- **build** for updating build configuration, development tools or other changes irrelevant to the user.\n\nWrite commit messages in the present tense (e.g., \"Add feature X\" instead of \"Added feature X\").\n\nIf a commit is co-authored by multiple people, do not hesitate to add a `Co-authored-by` field. See [GitHub documentation](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors). For example: \n```sh\n$ git commit -m \"Refactor usability tests.\n\u003e\n\u003e\nCo-authored-by: NAME \u003cNAME@EXAMPLE.COM\u003e\nCo-authored-by: ANOTHER-NAME \u003cANOTHER-NAME@EXAMPLE.COM\u003e\"\n```\n\n### Branches\n- Use the naming convention `\u003ctype\u003e/\u003cname\u003e` for branches introducing new features. Only use lowercase letters, numbers, and dashes.\n- The `main` branch should always compile successfully and be free of warnings. Use `cargo check`.\n- Experimental branches are allowed to include code that does not build successfully.\n- Prefer rebasing over merging.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc2i-junia%2Frustcraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fc2i-junia%2Frustcraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc2i-junia%2Frustcraft/lists"}