Voxel engine written in Rust (backup/mirror)
Go to file
2024-09-11 14:22:21 +02:00
.cargo change stuff :3 (will break android builds) 2023-11-20 23:21:50 +01:00
.github/workflows fix ci, hopefully 2023-11-25 16:22:44 +01:00
.readme Add touch controls, switch to tinymap for keyboard input 2023-06-04 18:39:55 +02:00
.vscode add vscode setting 2024-09-11 12:43:44 +02:00
assets players :3 2024-05-08 15:02:16 +02:00
assets-src players :3 2024-05-08 15:02:16 +02:00
kubi fix some warnings 2024-09-11 14:22:21 +02:00
kubi-logging stop calloop from spamming the logs 2024-09-01 17:10:53 +02:00
kubi-server implement more item functions 2024-09-11 14:18:44 +02:00
kubi-shared implement more item functions 2024-09-11 14:18:44 +02:00
.envrc add nix stuff and update stuff 2024-09-01 12:14:57 +02:00
.gitignore initial impl 2024-09-01 23:37:49 +02:00
Cargo.lock update lock 2024-09-11 11:37:00 +02:00
Cargo.toml use latest hui 2024-05-08 03:22:41 +02:00
egg-kubi-server.json oops, works now 2024-07-19 18:17:02 +02:00
flake.lock add nix stuff and update stuff 2024-09-01 12:14:57 +02:00
flake.nix add gdb to flake 2024-09-11 12:46:20 +02:00
LICENSE Create LICENSE 2024-04-21 19:31:29 +02:00
README.md update readme 2024-05-14 00:00:20 +02:00
rust-toolchain.toml change stuff :3 (will break android builds) 2023-11-20 23:21:50 +01:00
Server.toml Initial server save file integration (NO SAVING YET, ONLY LOADING) 2024-09-03 15:47:04 +02:00

Kubi

Voxel engine written in Rust

features

  • multithreaded procedural world generation
  • procedural structures and block queue
  • multithreaded mesh generation
  • cubic chunks (32x32x32)
  • low-level wgpu renderer (gles3 before the major rewrite)
  • frustum culling
  • multiplayer networking
  • immediate ui system [1]
  • cross platform: windows, linux, osx, android [2]
  • universal input system: supports keyboard, mouse, gamepad and touch input [3]
  • support for semi-transparet blocks[4]
[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
  • 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

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