Ticks - smudge202/clean-living GitHub Wiki

Traditional engines used for game development use a mechanism we refer to as ticks. That is, the engine will fire an event or method (tick) so many times a second, and the developers code is nested from within these methods and events. There are two tick models, static and dynamic. The static is when the fine is configured to tick x many times per second, which the engine will try to adhere to when not under too much load. The dynamic model requests that the engine tick as often as it can, usually invoking a new tick as soon as the previous ticks complete.

Although these mechanisms appear to work fine for games, we believe that running the game constantly every x MS, whether static or dynamic, is unnecessary. Instead, we will allow components to subscribe to the game engine and request game times at which they wish to be invoked in order to perform an action. The engine, as with the traditional mechanisms will try it's upmost to notify the component in a timely manner, but components must respect that they may be informed slightly early or potentially very late if the engine is running slowly.