You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.1 KiB
2.1 KiB
bevy-bloxel-classic
This project, written in Rust and using Bevy, aims to re-create the functionality of Minecraft "Classic" from 2009, for the sake of creating a game that could be considered finished (because I've been struggling with that), while developing code and experience that can be used in future projects that have greater ambitions.
Goals
- ☐ Creative mode building
- ☐ Basic player physics
- ☐ Limited world size (configurable)
- ☐ Block definitions loaded at startup
- ☐ Custom block models (and textures)
- ☐ Simple cellular automaton interactions
- ☑ Multiplayer (server-authoritative)
- ☐ Dedicated (headless) server
- ☑ Runs in browser
Non-goals
- Non-player entities (animals, falling blocks, block entities)
- Modding API (other than loading block definitions)
- Infinite, streaming terrain (possible, but currently out of scope)
- Sensible liquid handling (waterlogging, partial liquid blocks, flow mechanics)
How to Launch
Since the game is still way too early in development, there are no releases yet.
Native
To compile and run it yourself, just set up Rust like usual, through rustup for example.
# Run the game locally.
cargo run
cargo run -- local # same as above
cargo run --release -- local # with release optimizations
# Host a server for the game and play on it.
# When starting up, will print the "certificate digest".
cargo run -- host [PORT]
# Connect to an existing server.
cargo run -- connect <ADDRESS[:PORT]> <DIGEST>
Browser
To easily build and test the game on the web, I recommend using Bevy CLI.
# Run a local webserver to serve the game.
# Automatically opens the page in your browser.
bevy run --release web --open
- To connect to a server, add
?connect=<ADDRESS[:PORT]>&digest=<DIGEST>to the URL. - Due to a limitation, hostnames like
localhostwon't work here – use an IP instead. - Note that I had no luck getting WebTransport working in Firefox so far.
For multiplayer, you may want to use a Chromium-based browser.