- Notifications
You must be signed in to change notification settings - Fork2
Multithreaded voxel engine with multiplayer networking based on wgpu (a.k.a another attempt at ripping off Minecraft)
License
griffi-gh/kubi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Heavily multithreaded voxel engine with multiplayer networking.
Written in Rust usingwgpu
- 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-treehere since 2024
[2]
- android support is experimental
[3]
- mouse and gamepad input is not supported on android
[4]
- work in progress, may cause issues
cargo build -p kubicargo run -p kubi#or, build with release mode optimizations:cargo run -p kubi --release
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 yourPATH
,ANDROID_HOME
andANDROID_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-apkrustup target add aarch64-linux-android
Build:
--no-default-features
is required for keyboard input!
(prefer-raw-events
featuremust 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
- Left side:Movement
- Rigth side:Camera controls
- Bottom right corner:
- B (e.g. place blocks)
- A (e.g. break, attack)
to join a multiplayer server, just pass the ip address as the first argument
cargo run -p kubi -- 127.0.0.1:1234
[server]address ="0.0.0.0:12345"# ip address to bind tomax_clients =32# max amount of connected clientstimeout_ms =10000# client timeout in ms[world]seed =0xfeb_face_dead_cafe# worldgen seed to use[query]name ="Kubi Server"# server name
hui
,hui-glium
,hui-winit
: semi-imm.mode backend-agnostic ui system\kubi-logging
fancy custom formatter forenv-logger
deprecated:
eventually got replaced bykubi-udp
uflow
(https://github.com/lowquark/uflow) in #5decided there's no need to replace rayon for nowkubi-pool
About
Multithreaded voxel engine with multiplayer networking based on wgpu (a.k.a another attempt at ripping off Minecraft)
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.