RRR - Rust Rust Revolution
rrr is an aspirational rewrite of Flash Flash Revolution for desktop and browser.
SN 01 - Function over Form
https://github.com/Zageron/ffrust
Project
We would like to create a rough draft of an FFR remake in Rust for desktop (linux, mac, and windows) and future browsers (wasm / webgpu).
Constraints
Technical Constraints
- WebGPU is not yet supported in general availability browsers.
- No GUI or TUI will be implemented.
- No game engine will be used.
Design Constraints
- User input will be restricted to the spacebar.
- There is no audio or music.
- "Charts" are a simple ASCII file with no metadata.
- "Notes" are represented as a list of ms timings.
- Single lane gameplay.
(Simplified Taiko No Tatsujin.)
- Notes spawn at the end of the lane, on screen.
- Notes move at linear pace up the lane.
- Notes despawn at the top of the lane.
- Notes may despawn when interacted with during the "receptor" stage.
- Score is tallied in two buckets
- Hit
- Miss
- No state, the game begins immediately on loading application.
- Likewise, the chart does not repeat once finished.
Implementation Constraints
- Notes are rendered though a simple shape shader.
- No texture loading.
- Note position/existence is determined by an absolute ms tick.
- Notes follow a single path along a "lane".
- Notes are not free to be positioned, but instead have a progress on a lane.
- Lane representation which notes may move along.
Completion Requirements
- Shader for representing the notes.
- Lane implementation.
- Note lifetime (spawning and despawning)
- Note implementation.
- "Chart" interpreter.
- Chart format and exmaple file.
- Keyboard event for spacebar.
- Hit timing mechanism for determining whether a note was hit or not.
- Native application rendering and input.
- WASM application rendering and input.
SN 01 - Function over Form
https://github.com/Zageron/ffrust
Project
We would like to expand the initial rough draft to include a few additional features, making the prototype playable by a user.