Architecture - HearthSim/Joust GitHub Wiki

Joust is built in a modular fashion, intended for developers to easily implement new data sources.

Backend

The backend is the part of Joust concerned with:

  • receiving game data from some source
  • transforming the data into the Joust structures
  • keeping track of a history of game states
  • replaying the history
  • outputting the latest or current game state for the frontend
  • optionally returning commands to the data source in an interactive session

Frontend

The frontend is the user-facing part of Joust and all about the interface:

  • receives a single game state to visualize
  • displays the players and all their entities: hand, field, hero, hero power...
  • offers an interactive scrubber with timeline to control the backend history playback

Launcher

Joust's Launcher sets the data source, initializes and plugs the various backend components together and finally instructs React to render the frontend.