Skip to content
This repository has been archived by the owner on Jan 10, 2023. It is now read-only.

Refactor core and head to better reflect the encapsulation of functionality #230

Open
Zageron opened this issue Sep 26, 2022 · 0 comments
Open
Assignees
Labels
audio Audio processing data Data and metadata related changes feature request New feature or request, remove when accepted gameplay Gameplay related changes parsing file format features prototype Proposal proofing rust Pull requests that update Rust code
Milestone

Comments

@Zageron
Copy link
Member

Zageron commented Sep 26, 2022

Libraries

  • Fetcher Library
    • Responsible for streaming http and disk resources.
    • Caching layer (Local storage)
    • Not sure how the typing will work here.
  • Data Library
    • Responsible for populated Playlist, Song, Player, and Leaderboard data. (etc...)
  • Chart Simulator
    • Iterated with a ms delta to simulate a view into a chart. (Record, Turntable, etc...)
  • Renderer
    • Blitting or wgpu rendering library, takes note metadata and a noteskin and renders it to a render target.
  • Audio Library
    • Iterated with a ms delta to play back an audio file. (Essentially dependency isolation.)

Heads

  • Web Library
    • Exposes each of the above libraries to typescript, so the UI can interface with each of them as it sees fit.
    • I believe for simplicity we may want to have the Typescript code orchestrate the game loop. Since the majority of the "game" is in the UI, it makes sense for that component to be in the web. (As many functionalities as possible can be migrated to WASM so that native versions can be created with as little duplicated code as possible.)
  • UI Library (Native optional)
  • RRR Executable (Native optional)
    • Integrates all of the libraries and runs the loop.
@Zageron Zageron added feature request New feature or request, remove when accepted parsing file format features gameplay Gameplay related changes data Data and metadata related changes audio Audio processing prototype Proposal proofing rust Pull requests that update Rust code labels Sep 26, 2022
@Zageron Zageron added this to the MVP milestone Sep 26, 2022
@Zageron Zageron self-assigned this Sep 26, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
audio Audio processing data Data and metadata related changes feature request New feature or request, remove when accepted gameplay Gameplay related changes parsing file format features prototype Proposal proofing rust Pull requests that update Rust code
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant