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.
63 lines
2.1 KiB
63 lines
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. |
|
|
|
[Bevy]: https://bevy.org/ |
|
|
|
## 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. |
|
|
|
```sh |
|
# 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]. |
|
|
|
```sh |
|
# 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 `localhost` won'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. |
|
|
|
[Bevy CLI]: https://github.com/TheBevyFlock/bevy_cli
|
|
|