Space-Truckers: The State Machine
People who have some familiarity with game development may be familiar with the idea of a game being structured around a series of loops. An Update loop runs the simulation and physics, moving objects and applying effects according to the latest update. A render loop is when the scene is actually drawn to the screen. We’ve seen examples of this previously, such as when we add event observers for the scene.onBeforeRenderObservable, but that’s at a lower level than what we’re looking at currently. Our application is going to be a host for multiple different BJS scenes and it will therefore need a way to periodically update the application’s state as well as tell the active scene to render. Finally, it must be able to manage to transition between different scenes.
An application of the kind we’re building has some implicit requirements when it comes to how it responds to input and evolves its internal state over...