A stupid little Minecraft clone written in Rust, powered by the Bevy engine.
- Procedual world generation using 3D Perlin noise
- Custom terrain mesher based on face culling
- Custom Client / Server architecture using Renet
- Data serialization using bincode serde
- World update synchronization between game clients
- World physics using rapier
- World updates using primitive ray casting
- Modular architecture using ECS
Just run the cargo command to install the dependencies and start the game:
cargo run --bin server
cargo run --bin client
Release Builds (for better performance):
cargo run --bin server --release
cargo run --bin client --release
Dynamic Linking (to reduce compile times):
cargo run --bin server --features dynamic_linking
cargo run --bin client --features dynamic_linking
Automatic Reloading (with cargo watch):
cargo watch -x 'run --bin server'
cargo watch -x 'run --bin client'
Nix shell can be used to run the code using the given Nix Shell Config File. This will automatically install rust and the bevy dependencies. Strongly inspired by the Bevy NixOS installation guide
nix-shell --run "cargo run --bin server"
nix-shell --run "cargo run --bin client"