Skip to content
This repository was archived by the owner on Jan 10, 2023. It is now read-only.
This repository was 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

@Zageron

Description

@Zageron

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.

Metadata

Metadata

Assignees

Labels

audioAudio processingdataData and metadata related changesfeature requestNew feature or request, remove when acceptedgameplayGameplay related changesparsingfile format featuresprototypeProposal proofingrustPull requests that update Rust code

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions