Limitations of the project
The shoot-em-up game we're writing is going to be very minimal, feature-wise. In particular, here are the constraints:
The whole motivational part (winning and game over conditions) is omitted for the sake of clarity. It should be easy to implement once you're happy with the gameplay.
There's just one enemy type in our version of the game, and one simple movement pattern.
Many opportunities for optimization were purposefully missed to make the code more concise and readable.
These are left as an exercise for the reader, if you're willing to do a bit more work. But first, let's review how texture maps work in Kivy—we'll rely on them later in the particle system code.