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.