The topics covered in this example are:
- A game loop with variable time steps.
- Game objects.
- Keyboard controls.
- Collision detection and 'faked physics'.
- A simple AI to control the opponent paddle.
- Multiple screens and switching between them.
- Sound effects.
- Scaling the screen while respecting the aspect ratio, using letter- and pillarboxing.
The source code is available on GitHub.