griffi-gh / kubi

Multithreaded voxel engine made with wgpu, a.k.a another attempt at ripping off Minecraft (with multiplayer networking)
MIT License
18 stars 1 forks source link
ecs glium glium-crate minecraft multiplayer networking opengl opengl3 rust shipyard voxel-engine

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

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, mouse input is currently borked, as well as srgb, which leads to dark textures.

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

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!

cargo apk build -p kubi --lib --no-default-features

Run on device (using adb):

cargo apk run -p kubi --lib --no-default-features

touch controls

touch control scheme

mutiplayer

to join a multiplayer server, just pass the ip address as the first argument

cargo run -p kubi -- 127.0.0.1:1234

server configuration

[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

deprecated:

~ uwu