Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Quiet-Wolfe/Rustic-Engine/llms.txt
Use this file to discover all available pages before exploring further.
Requirements
- Rust stable toolchain via rustup
- git
wgpu handles GPU adapter selection at runtime, and kira bundles its audio backend.
Build commands
Debug build
A debug build includes full debug symbols and no optimizations. This is the default for development.target/debug/rustic-app.
Release build
A release build enables compiler optimizations. Use this for performance testing or distribution.target/release/rustic-app.
Run directly
--release to run the optimized build:
Tests
Run all tests across every crate in the workspace:rustic-core is the most unit-testable crate because it has no rendering or audio dependencies — it contains only data types and parsing logic.
Linting
Workspace structure
TheCargo.toml at the repository root defines the workspace. All crates are under the crates/ directory.
Cargo.toml. Shared dependency versions are declared once in [workspace.dependencies] and referenced from individual crates using { workspace = true }.
Crate summary
| Crate | Type | Description |
|---|---|---|
rustic-core | Library | Data types, parsing, scoring math — no rendering or audio |
rustic-audio | Library | Audio playback and conductor via kira |
rustic-render | Library | All GPU rendering via wgpu |
rustic-gameplay | Library | Game logic, input, hit detection, PlayState |
rustic-scripting | Library | Lua VM and Psych Engine API surface |
rustic-app | Binary | Entry point, window creation, state machine |
rustanimate | Library | Adobe Animate atlas parser and playback (renderer-agnostic) |
Key dependencies
These are the primary workspace-level dependencies declared in the rootCargo.toml:
| Crate | Version | Purpose |
|---|---|---|
wgpu | 28 | GPU rendering backend (Metal, Vulkan, DX12, WebGPU) |
naga | 28 | Shader translation (GLSL input → WGSL output) |
winit | 0.30 | Cross-platform window creation and event loop |
glyphon | 0.10 | GPU text rendering |
kira | 0.9 | Audio engine with OGG support |
image | 0.25 | PNG texture loading |
bytemuck | 1 | Safe casting of data to GPU buffer bytes |
pollster | 0.4 | Minimal async executor (used to block on wgpu init) |
serde / serde_json | 1 | JSON deserialization for charts, characters, and stages |
quick-xml | 0.37 | Sparrow XML atlas parsing |
glam | 0.29 | 2D/3D math (vectors, matrices, transforms) |
thiserror | 2 | Ergonomic error type derivation |
log / env_logger | 0.4 / 0.11 | Logging; set RUST_LOG=debug at runtime for verbose output |
Notes
The .intentionally-empty-file.o file
The repository root contains a file named .intentionally-empty-file.o. This file is a placeholder and is not compiled into the engine. Its presence is intentional — do not delete it.
First build time
The firstcargo build will compile all dependencies from source. Expect this to take several minutes depending on your hardware. Subsequent builds are incremental and much faster.
Logging
Rustic Engine usesenv_logger for runtime logging. To enable debug output, set the RUST_LOG environment variable before running: