Bemuse

Bemuse

  • Play
  • Docs
  • Community FAQ
  • Contribute
  • Discord
  • GitHub

›Developers

Users

  • User Guide
  • Scoring and Judgment
  • FAQ

Creators

  • Preparing Song for Online Play [NEW]
  • Previewer [NEW]
  • Legacy Music Server
  • BMS Support
  • BMS Extensions
  • .bemuse File Format

Developers

  • Developer Guide
  • Architecture
  • The Game Loop
  • Skinning
  • Options
  • Colors
  • Workflows

The Game Loop

At each iteration of the game loop, each game component takes turn and update itself. Each game component involved in this game loop should have a update(...) method, which takes care of updating itself. This is the only time the component will be mutable. Outside of the update method, a component should behave like an immutable object. This allows us to have some sense of immutability without having to create new objects. See the case for immutability.

At each cycle, the following happens:

  • the Clock is updated to get the high-accuracy time
  • the Timer is updated to get the in-game time
  • the Input is updated to get button presses
  • the State is updated to react to button presses -- judging notes and updating scores
  • the Audio is updated to emit sound based on the updated state
  • the Display is updated to render the game display based on the updated state
← ArchitectureSkinning →
Bemuse
Docs
User DocumentationDeveloper Documentation
Community
Discord CommunityCommunity FAQGitHub Project
Social
Twitter @bemusegame
Copyright © 2022 Bemuse Team