Kubi

Heavily multithreaded voxel engine with multiplayer networking.
Written in Rust using wgpu

features

[1] - developed out-of-tree here since 2024
[2] - android support is experimental
[3] - mouse and gamepad input is not supported on android
[4] - work in progress, may cause issues

download

Latest nightly release

build for windows/linux

```bash cargo build -p kubi cargo run -p kubi #or, build with release mode optimizations: cargo run -p kubi --release ```

build for android

please note that android support is highly experimental!\ gamepad and mouse input is currently not supported prerequisites: Android SDK, NDK, command line tools, platform-tools, latest JDK\ (make sure that your `PATH`, `ANDROID_HOME` and `ANDROID_NDK_ROOT` variables are configured properly) **Setup:** latest unpublished (git) version of cargo-apk is required ```bash cargo install --git https://github.com/rust-mobile/cargo-apk cargo-apk rustup target add aarch64-linux-android ``` **Build:** `--no-default-features` is required for keyboard input!\ (`prefer-raw-events` feature *must* be disabled on android)\ Mouse input is not implemented, touch only! ```bash cargo apk build -p kubi --lib --no-default-features ``` **Run on device (using adb):** ```bash cargo apk run -p kubi --lib --no-default-features ```

touch controls

touch control scheme - Left side: **Movement** - Rigth side: **Camera controls** - Bottom right corner: - **B** (e.g. place blocks) - **A** (e.g. break, attack)

mutiplayer

to join a multiplayer server, just pass the ip address as the first argument ```sh cargo run -p kubi -- 127.0.0.1:1234 ```

server configuration

```toml [server] address = "0.0.0.0:12345" # ip address to bind to max_clients = 32 # max amount of connected clients timeout_ms = 10000 # client timeout in ms [world] seed = 0xfeb_face_dead_cafe # worldgen seed to use [query] name = "Kubi Server" # server name ```

"In-house" libraries

- [`hui`, `hui-glium`, `hui-winit`](https://github.com/griffi-gh/hui): semi-imm.mode backend-agnostic ui system\ - [`kubi-logging`](kubi-logging) fancy custom formatter for `env-logger` deprecated: - ~~`kubi-udp`~~ eventually got replaced by `uflow` (https://github.com/lowquark/uflow) in #5 - ~~`kubi-pool`~~ decided there's no need to replace rayon for now
~ uwu