Defines a generic programming model based on the state design pattern and a decoupled game loop.