Do you want to create your own computer games but like Python too much to abandon it for a career as a game developer? There’s a solution for that! With the Pygame module, you can use your amazing Python skills to create games, from the basic to the very complex. Below, you’ll learn how to use Pygame by making a clone of the Asteroids game!

In this tutorial, you’ll learn how to build a complete game, including:

  • Loading images and displaying them on the screen
  • Handling user input in order to control the game
  • Moving objects according to the game logic
  • Detecting collisions between object
  • Displaying text on the screen
  • Playing sounds

Click the link below to download the code for this project and follow along as you build your game:

Get the Source Code: Click here to get the source code you’ll use to build an Asteroids game in Python with Pygame in this tutorial.

Let’s get started!

Demo: Asteroids Game in Python

The game you’ll be making is a clone of the classic arcade game Asteroids. In it, you control a spaceship and shoot asteroids. If your spaceship collides with an asteroid, you lose. If you shoot down all asteroids, you win!

Project Overview

Your Asteroids game in Python will feature a single spaceship. The spaceship can rotate left and right as well as accelerate forward. When it’s not accelerating, it will continue moving with the velocity it had. The spaceship can also shoot bullets.

The game will use the following key mappings:

Key Action
Right Rotate the spaceship right
Left Rotate the spaceship left
Up Accelerate the spaceship forward
Space Shoot
Esc Exit the game

There will also be six big asteroids in the game. When a bullet hits a big asteroid, it will split into two medium ones. When a bullet hits a medium asteroid, it will split into two small ones. A small asteroid won’t split but will be destroyed by a bullet.

When an asteroid collides with the spaceship, the spaceship will be destroyed, and the game will end in a defeat. When all asteroids are gone, the game will end in a victory!

The project will be broken into ten steps:

  1. Setting up Pygame for a Python project
  2. Handing input in the game
  3. Loading images and showing them on the screen
  4. Creating game objects with an image, a position, and some logic
  5. Moving the spaceship
  6. Moving the asteroids and detecting collisions with the spaceship
  7. Shooting bullets and destroying asteroids
  8. Splitting asteroids into smaller ones
  9. Playing sounds
  10. Handling the end of the game

Each step will provide links to all necessary resources.


To build your Asteroids game, you’ll need some more advanced elements of Python. You should already be comfortable with the language itself as well as with concepts like classes, inheritance, and callbacks. If you need to refresh your knowledge on these topics, then check our Object-Oriented Programming (OOP) in Python 3.

The game will also use vectors to represent positions and directions, as well as some vector operations to move the elements on the screen. Pygame will take care of most of the math, and all the necessary concepts will be explained in this tutorial. However, if you want to know more, then you can check out Vector Addition.

The Pygame documentation can be useful if you want to understand some concepts in depth, but you’ll find everything you need to know in this tutorial.

Step 1: Pygame Setup

At the end of this step, you’ll have a small Python project that uses Pygame. It will display a window with a caption, filled with a blue color. This will be first step toward your Asteroids game. You won’t need any specific game development tools. Your favorite text editor and the command line will be enough.

Python Project

Read the full article at »

[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]