Voxel engine written in Rust (backup/mirror)
Go to file
2023-06-04 15:29:53 +02:00
.cargo oops, avx2 is not as widely available as i thought 2023-05-27 18:54:00 +02:00
.github/workflows use mold as linker on linux 2023-05-28 23:46:14 +02:00
.readme fix builds with nightly, update readme 2023-05-16 13:42:55 +02:00
.vscode disable lint 2023-03-08 01:47:46 +01:00
assets/blocks improve worldgen 2023-02-18 00:37:17 +01:00
kubi change orientation 2023-06-04 15:29:53 +02:00
kubi-logging initial android support (fails on textures) 2023-05-21 03:14:04 +02:00
kubi-server add raw-evt feature, fix clippy warnings 2023-06-04 15:16:25 +02:00
kubi-shared add raw-evt feature, fix clippy warnings 2023-06-04 15:16:25 +02:00
.gitignore add generate_visualizer_data feature 2023-03-09 00:56:46 +01:00
Cargo.lock add ndk to deps, disable srgb by default 2023-05-21 12:03:41 +02:00
Cargo.toml player position sync, refactor some stuff 2023-05-20 02:32:32 +02:00
README.md update info around nightly in readme 2023-06-04 15:19:33 +02:00
Server.toml Finish upgrading server to uflow 2023-03-09 03:30:37 +01:00

Kubi

Voxel engine written in Rust

features

  • multithreaded procedural world generation
  • procedural structures
  • multithreaded mesh generation
  • cubic chunks (32x32x32)
  • low-level OpenGL renderer, targetting OpenGL ES 3.0
  • frustum culling
  • work-in-progress multiplayer support
  • block placement system
  • partial gamepad input support
  • (experimental) android support

download

Latest nightly release

building

build/run

cargo build --bin kubi
cargo run --bin kubi

build in release mode, with nightly optimizations

cargo +nightly build --bin kubi --features nightly --release

build for android

please note that android support is purely experimental! gamepad, keyboard and mouse input is currently borked, and touch controls are not available. srgb and blending are broken too, which leads to many rendering issues

prerequisites: Android SDK, NDK, platform-tools, latest JDK (all should be in $PATH)

Setup:

cargo install cargo-apk
cargo target add aarch64-linux-android

Build: --no-default-features is required for keyboard input!

cargo apk build -p kubi --no-default-features
# or, in release mode, with nighly optimizations:
cargo +nightly apk build -p kubi --no-default-features --features nightly --release

Run:

cargo apk run -p kubi --features nightly
# or, in release mode, with nighly optimizations:
cargo +nightly apk run -p kubi --no-default-features --features nightly --release

mutiplayer

to join a multiplayer server, just pass the ip address as an 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
~ uwu