Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
rsaber: Beat Saber clone written in Rust
State
We are really at the beginning. At least, the colored notes are already moving and there is a basic collision detection logic :). As there are no built-in levels, they are fetched from https://beatsaver.com/.
Screenshots
Supported Devices
Actually, any headset with OpenXR support + Vulkan API is supposed to work.
Supported Audio Backends
| OS | Backend |
|---|---|
| Android | AAudio |
| Linux | PipeWire |
| Windows | Wasapi |
Build From Source
If you prefer, you can compile rsaber from sources. First of all, you need to have rust toolchain installed.
android
Prerequisite:
-
Install Android Studio, then go to SDK Manager and install:
- SDK Platforms -> API level: see ANDROID_SDK_LEVEL below
- SDK Tools -> NDK
-
Setup rust toolchain, replace username as needed:
rustup target add aarch64-linux-android cargo install cargo-ndk set JAVA_HOME=c:\Program Files\Android\Android Studio\jbr set ANDROID_HOME=c:\Users\<username>\AppData\Local\Android\Sdk set ANDROID_SDK_LEVEL=34
Clone repo, connect Quest to PC, then build in debug mode & run:
git clone https://github.com/bandipapa/rsaber.git
cd rsaber\android\build
gradlew runDebug
Building in release mode can be done by setting ANDROID_KEYSTORE, ANDROID_KEYSTORE_PW, ANDROID_KEYALIAS, ANDROID_KEYALIAS_PW environment variables, and execute:
gradlew runRelease
pc
Build & run:
cargo install rsaber_pc
rsaber_pc
pcvr
Prerequisite:
- cmake is needed to build OpenXR loader, go to https://cmake.org/, and install it.
Build & run:
cargo install rsaber_pcvr
rsaber_pcvr
Suggested Reading
- Essence of linear algebra (excellent stuff, highly recommended)
- Learn OpenGL (still relevant, even we use WebGPU)
- WebGPU Fundamentals
- Learn Wgpu
- rust wgpu
- Normal Transformation
TODO
- Have the option to dump/read assets from local files (this is for modders who don't want to recompile)