Game Loop
A game, fundamentally, is an infinite loop, like a while(true). During every iteration of that loop, weβre repeatedly performing the following set of steps:
- First, weβre processing input. That is to say, weβre constantly checking: has the user pressed a key on the keyboard, moved the joystick, moved/clicked the mouse, etc.?
- Second, we need to respond to that input from the previous step by updating anything in the game that depends on that input (i.e., tracking movement, detecting collisions, etc.).
- Third, we need to re-render anything that was updated in the previous step, so that the user can see visually on the screen that the game has changed and feel a sense of interactivity.

Image from Game Programming Patterns, where you can read more about game loops.