The project we are working on is a racing game, and most races are structured in stages. The following is a shortlist of typical racing stages:
- Countdown: At this stage, the bike is stopped behind the start line while a countdown timer is running down.
- Race start: Once the clock hits zero, the green light signal is turned on, and the bike moves forward on the track.
- Race finish: The moment the player crosses the finish line, the race is over.
In between the start and finish of the race, certain events can be triggered that could change the current state of the race:
- Race pause: The player could pause the game while still racing.
- Race quit: The player could quit the race at any time.
- Race stop: The race could stop suddenly if the player is involved in a fatal crash.
So we want to broadcast a notification that signals the occurrence of each stage of the race and any other important event in between that will change the overall state of the race. This...