kubi/README.md

100 lines
2.3 KiB
Markdown
Raw Normal View History

2023-01-20 02:28:08 +00:00
<h1 align="center">Kubi</h1>
2023-05-16 11:42:55 +00:00
<p align="center">
2023-05-17 10:58:05 +00:00
Voxel engine written in Rust
2023-05-16 11:42:55 +00:00
</p>
<div align="center">
<img src=".readme/game.gif" width="512">
</div>
2023-05-18 03:09:19 +00:00
2023-05-16 11:42:55 +00:00
<h2>features</h2>
2023-05-18 03:09:19 +00:00
2023-05-16 11:42:55 +00:00
<p>
<ul>
<li>multithreaded procedural world generation</li>
<li>procedural structures</li>
<li>multithreaded mesh generation</li>
<li>cubic chunks (32x32x32)</li>
<li>low-level OpenGL renderer, targetting OpenGL ES 3.0</li>
<li>frustum culling</li>
<li>work-in-progress multiplayer support</li>
<li>block placement system</li>
<li>partial gamepad input support</li>
2023-05-21 04:53:47 +00:00
<li>(experimental) android support</li>
2023-05-16 11:42:55 +00:00
</ul>
</p>
2023-05-18 03:09:19 +00:00
<h2>download</h2>
<a href="https://github.com/griffi-gh/kubi/releases/tag/nightly">Latest nightly release</a>
2023-05-16 11:42:55 +00:00
<h2>building</h2>
build/run
2023-05-21 04:53:47 +00:00
```bash
cargo build --bin kubi
cargo run --bin kubi
2023-05-16 11:42:55 +00:00
```
2023-06-04 13:19:33 +00:00
build in release mode, with nightly optimizations
2023-05-16 11:42:55 +00:00
2023-05-21 04:53:47 +00:00
```bash
2023-06-04 13:19:33 +00:00
cargo +nightly build --bin kubi --features nightly --release
2023-05-21 04:53:47 +00:00
```
build for android
2023-05-21 04:53:47 +00:00
please note that android support is purely experimental!
gamepad, keyboard and mouse input is currently borked, and touch controls are not available.
2023-05-21 10:41:09 +00:00
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)
2023-05-21 04:53:47 +00:00
Setup:
```bash
cargo install cargo-apk
cargo target add aarch64-linux-android
```
Build:
`--no-default-features` is required for keyboard input!
```bash
cargo apk build -p kubi --no-default-features
2023-06-04 13:19:33 +00:00
# or, in release mode, with nighly optimizations:
cargo +nightly apk build -p kubi --no-default-features --features nightly --release
```
Run:
2023-05-21 04:53:47 +00:00
```bash
cargo apk run -p kubi --features nightly
2023-06-04 13:19:33 +00:00
# or, in release mode, with nighly optimizations:
cargo +nightly apk run -p kubi --no-default-features --features nightly --release
2023-05-16 11:42:55 +00:00
```
<h2>mutiplayer</h2>
to join a multiplayer server, just pass the ip address as an argument
```sh
cargo run -p kubi -- 127.0.0.1:1234
```
<h2>server configuration</h2>
```
[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
```
2023-02-12 21:18:11 +00:00
<h6 align="right"><i>~ uwu</i></h6>