remove notics abt multitouch

This commit is contained in:
griffi-gh 2024-02-13 11:52:50 +01:00
parent 4948d85e05
commit c162893fd0

268
README.md
View file

@ -1,136 +1,132 @@
<h1 align="center">Kubi</h1> <h1 align="center">Kubi</h1>
<p align="center"> <p align="center">
Voxel engine written in Rust Voxel engine written in Rust
</p> </p>
<div align="center"> <div align="center">
<img src=".readme/game.gif" width="512"> <img src=".readme/game.gif" width="512">
</div> </div>
<h2>features</h2> <h2>features</h2>
<p> <p>
<ul> <ul>
<li>multithreaded procedural world generation</li> <li>multithreaded procedural world generation</li>
<li>procedural structures</li> <li>procedural structures</li>
<li>multithreaded mesh generation</li> <li>multithreaded mesh generation</li>
<li>cubic chunks (32x32x32)</li> <li>cubic chunks (32x32x32)</li>
<li>low-level OpenGL renderer, targetting OpenGL ES 3.0</li> <li>low-level OpenGL renderer, targetting OpenGL ES 3.0</li>
<li>frustum culling</li> <li>frustum culling</li>
<li>multiplayer support <sup><code>[1]</code></sup></li> <li>multiplayer support <sup><code>[1]</code></sup></li>
<li>block placement system</li> <li>block placement system</li>
<li>basic gui<sup><code>[5]</code></sup></li> <li>basic gui<sup><code>[5]</code></sup></li>
<li>cross platform: windows, linux, osx <sup><code>[2]</code></sup>, android <sup><code>[3]</code></sup></li> <li>cross platform: windows, linux, osx <sup><code>[2]</code></sup>, android <sup><code>[3]</code></sup></li>
<li>universal input system: supports keyboard, mouse, gamepad and touch input <sup><code>[4]</code></sup></li> <li>universal input system: supports keyboard, mouse, gamepad and touch input <sup><code>[4]</code></sup></li>
</ul> </ul>
<h6> <h6>
<code>[1]</code> - multiplayer is work-in-progress<br> <code>[1]</code> - multiplayer is work-in-progress<br>
<code>[2]</code> - not tested on macos<br> <code>[2]</code> - not tested on macos<br>
<code>[3]</code> - android support is experimental<br> <code>[3]</code> - android support is experimental<br>
<code>[4]</code> - mouse/gamepad input is not supported on android<br> <code>[4]</code> - mouse/gamepad input is not supported on android<br>
<code>[5]</code> - currently only used on the loading screen <code>[5]</code> - currently only used on the loading screen
</h6> </h6>
</p> </p>
<h2>download</h2> <h2>download</h2>
<a href="https://github.com/griffi-gh/kubi/releases/tag/nightly">Latest nightly release</a> <a href="https://github.com/griffi-gh/kubi/releases/tag/nightly">Latest nightly release</a>
<h2>build for windows/linux</h2> <h2>build for windows/linux</h2>
**build/run** **build/run**
```bash ```bash
cargo build --bin kubi cargo build --bin kubi
cargo run --bin kubi cargo run --bin kubi
``` ```
**build in release mode, with nightly optimizations** **build in release mode, with nightly optimizations**
```bash ```bash
cargo +nightly build --bin kubi --features nightly --release cargo +nightly build --bin kubi --features nightly --release
``` ```
<h2>build for android</h2> <h2>build for android</h2>
warn: multitouch got broken after switching to `android-activity`, I'm still looking for a fix. please note that android support is highly experimental!\
gamepad, mouse input is currently borked, and proper touch controls are not available.\
please note that android support is highly experimental!\ srgb and blending are broken too, which leads to many rendering issues
gamepad, mouse input is currently borked, and proper touch controls are not available.\
srgb and blending are broken too, which leads to many rendering issues 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)
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:**
**Setup:** latest unpublished (git) version of cargo-apk is required
latest unpublished (git) version of cargo-apk is required ```bash
cargo install --git https://github.com/rust-mobile/cargo-apk cargo-apk
```bash rustup target add aarch64-linux-android
cargo install --git https://github.com/rust-mobile/cargo-apk cargo-apk ```
rustup target add aarch64-linux-android
``` **Build:**
**Build:** `--no-default-features` is required for keyboard input!\
(`prefer-raw-events` feature *must* be disabled on android)\
`--no-default-features` is required for keyboard input!\ Mouse input is not implemented, touch only!
(`prefer-raw-events` feature *must* be disabled on android)\
Mouse input is not implemented, touch only! ```bash
cargo apk build -p kubi --lib --no-default-features
```bash ```
cargo apk build -p kubi --lib --no-default-features
``` **Run on device (using adb):**
**Run on device (using adb):** ```bash
cargo apk run -p kubi --lib --no-default-features
```bash ```
cargo apk run -p kubi --lib --no-default-features
``` <h2>touch controls</h2>
<h2>touch controls</h2> <img src=".readme/touch_controls.png" alt="touch control scheme" width="300">
warn: multitouch got broken after switching to `android-activity`, I'm still looking for a fix. - Left side: **Movement**
- Rigth side: **Camera controls**
<img src=".readme/touch_controls.png" alt="touch control scheme" width="300"> - Bottom right corner:
- **B** (e.g. place blocks)
- Left side: **Movement** - **A** (e.g. break, attack)
- Rigth side: **Camera controls**
- Bottom right corner: <h2>mutiplayer</h2>
- **B** (e.g. place blocks)
- **A** (e.g. break, attack) to join a multiplayer server, just pass the ip address as an argument
<h2>mutiplayer</h2> ```sh
cargo run -p kubi -- 127.0.0.1:1234
to join a multiplayer server, just pass the ip address as an argument ```
```sh <h2>server configuration</h2>
cargo run -p kubi -- 127.0.0.1:1234
``` ```toml
[server]
<h2>server configuration</h2> address = "0.0.0.0:12345" # ip address to bind to
max_clients = 32 # max amount of connected clients
```toml timeout_ms = 10000 # client timeout in ms
[server]
address = "0.0.0.0:12345" # ip address to bind to [world]
max_clients = 32 # max amount of connected clients seed = 0xfeb_face_dead_cafe # worldgen seed to use
timeout_ms = 10000 # client timeout in ms
[query]
[world] name = "Kubi Server" # server name
seed = 0xfeb_face_dead_cafe # worldgen seed to use ```
[query] <h2>"In-house" libraries</h2>
name = "Kubi Server" # server name
``` - [`kubi-ui`](kubi-ui): semi-imm.mode backend-agnostic ui system\
mostly ready to use, it has already replaced the Kubi legacy ui
<h2>"In-house" libraries</h2> - [`kubi-ui-glium`](kubi-ui-glium) Glium-based backend for `kubi-ui`
- [`kubi-pool`](kubi-pool): very early work-in-progress work-stealing threadpool system\
- [`kubi-ui`](kubi-ui): semi-imm.mode backend-agnostic ui system\ aiming to replace `rayon` threadpool that's currently used inside the kubi client (for more control over task priority)
mostly ready to use, it has already replaced the Kubi legacy ui - [`kubi-logging`](kubi-logging) fancy-ass custom formatter for `env-logger`
- [`kubi-ui-glium`](kubi-ui-glium) Glium-based backend for `kubi-ui`
- [`kubi-pool`](kubi-pool): very early work-in-progress work-stealing threadpool system\ deprecated:
aiming to replace `rayon` threadpool that's currently used inside the kubi client (for more control over task priority)
- [`kubi-logging`](kubi-logging) fancy-ass custom formatter for `env-logger` ~~`kubi-udp`~~ was a huge pita to work with and eventually got replaced by `uflow` (https://github.com/lowquark/uflow) in #5
deprecated: <h6 align="right"><i>~ uwu</i></h6>
~~`kubi-udp`~~ was a huge pita to work with and eventually got replaced by `uflow` (https://github.com/lowquark/uflow) in #5
<h6 align="right"><i>~ uwu</i></h6>