docs.rs failed to build rsaber_android-0.1.0
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.
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 :).
Supported Devices
| Subdirectory | Tested devices |
|---|---|
| android | Meta Quest 2 |
| pc | Windows (runs in a window, useful for debugging) |
| pcvr | OpenXR (SteamVR): Sony PlayStation VR2 (see https://www.playstation.com/en-us/support/hardware/pc-prepare-ps-vr2/) |
Actually, any headset with OpenXR support + Vulkan API is supposed to work.
First of all:
- You need to have rust toolchain installed.
- Clone this repo:
git clone https://github.com/bandipapa/rsaber.git
The built-in demo song can be replaced by downloading songs from https://beatsaver.com/, and overwrite asset/song/demo.
android
Prerequisite:
-
Install Android Studio, then go to SDK Manager and install:
- SDK Platforms -> Android 12L (API level 32)
- SDK Tools -> NDK
-
OpenXR Loader
- Go to https://mvnrepository.com/artifact/org.khronos.openxr/openxr_loader_for_android
- Download latest aar (which is actually a zip file), and extract jni/arm64-v8a/libopenxr_loader.so into android/lib/arm64-v8a/libopenxr_loader.so
-
Setup rust toolchain, replace username and version as needed:
rustup target add aarch64-linux-android cargo install cargo-apk set ANDROID_HOME=c:\Users\<username>\AppData\Local\Android\Sdk set ANDROID_NDK_ROOT=c:\Users\<username>\AppData\Local\Android\Sdk\ndk\<version> set PATH=%PATH%;c:\Program Files\Android\Android Studio\jbr\bin
Connect Quest to PC, then build:
cd android
cargo apk run
pc
Build:
cd pc
cargo run
You can use keys w-a-s-d to move, z-x to change elevation, r to reset view and arrow keys to rotate camera.
pcvr
Prerequisite:
- cmake is needed to build OpenXR loader, go to https://cmake.org/, and install it.
Build:
cd pcvr
cargo run
Credits
- Demo song: Geoxor - Only Now
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
- Saber<->note collision detection
- UI/menu system
- Linux port
- Put all assets into binary, but have the option to dump/read it from local file (this is for modders who don't want to recompile)
- Package crates properly, so they can be used with "cargo install"