The game loop
What is a game loop anyway? Almost every game has a game loop. Even games you might suspect do not, such as turn-based games, still need to synchronize player input with drawing and processing AI while following the rules of the underlying operating system.
There is a constant need to update the objects in a game, perhaps by moving them, rotating them, and so on. And then everything must be drawn in its new position, all the while responding to user input. A visual might help:

Figure 9.2 – Visualizing the game loop
Our game loop comprises three main phases:
- Update all game objects by moving them, detecting collisions, and processing AI if used.
- Based on the just-updated data, draw the objects (current frame of animation) in their latest state.
- Respond to screen touches from the player.
We already have a draw
method for handling that part of the loop. This suggests that we will have a method to do all the...