A disclosed gaming machine is designed to execute a modular gaming software architecture.
A plurality of gaming software modules may be loaded into RAM on the gaming machine
and executed to play a game of chance. Many of the gaming software modules are
designed to communicate via application program interfaces so that the logic in
many of the gaming software modules may be designed independently of each other.
In particular, the modular gaming software architecture allows presentation state
logic to be decoupled from implementations of presentation components, such as
graphical, audio and gaming device components, used in a presentation of the game
of chance on a gaming machine.