Skip to content Skip to sidebar Skip to footer

Widget HTML #1

Learn Python Properly—Build a 2D Game (teens/young learners)

Learn Python Properly—Build a 2D Game (teens/young learners)

This course introduces the basics of Python coding using hands-on projects designed specifically for a younger audience by leading Python ...

Enroll Now

Python is an excellent programming language for beginners due to its simplicity and readability. It's widely used in various fields, from web development to data science, and even game development. If you're a teen or a young learner interested in coding, creating a 2D game is a fun and engaging way to learn Python.

In this guide, we’ll take you through the basics of Python and guide you step-by-step to build a simple 2D game. By the end of this tutorial, you’ll have a solid foundation in Python and a cool game to show off to your friends!

Setting Up Your Environment

Before we start coding, you need to set up your environment:

  1. Install Python: Download and install Python from Make sure to add Python to your PATH during installation.
  2. Install Pygame: Pygame is a set of Python modules designed for writing video games. Open your command prompt or terminal and run:
    pip install pygame

Understanding Basic Python Concepts

Variables and Data Types

Variables are used to store data. Python supports various data types, including integers, floats, strings, and lists.

# Integer score = 0 # Float speed = 5.5 # String player_name = "Hero" # List enemies = ["Goblin", "Troll", "Dragon"]


Functions are blocks of code that perform a specific task. They help in organizing your code and make it reusable.

def greet_player(name): print(f"Welcome, {name}!") greet_player(player_name)

Loops and Conditionals

Loops allow you to repeat a block of code, and conditionals help you make decisions in your code.

# Loop for enemy in enemies: print(f"Watch out for the {enemy}!") # Conditional if score > 10: print("You leveled up!") else: print("Keep trying!")

Building Your First 2D Game

Step 1: Setting Up the Game Window

First, we need to create a window for our game. This is where all the action will happen.

import pygame import sys # Initialize Pygame pygame.init() # Set up display width, height = 800, 600 screen = pygame.display.set_mode((width, height)) pygame.display.set_caption("2D Game") # Main game loop running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Fill the screen with a color screen.fill((0, 0, 255)) # Blue background pygame.display.flip() pygame.quit() sys.exit()

Step 2: Adding a Player Character

Next, we’ll add a player character that can move around. We'll use an image for our player sprite.

  1. Load the player image:
# Load player image player = pygame.image.load("player.png") player_rect = player.get_rect() player_rect.topleft = (100, 100)
  1. Handle player movement:
# Add to the main game loop player_speed = 5 while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Get key presses keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: player_rect.x -= player_speed if keys[pygame.K_RIGHT]: player_rect.x += player_speed if keys[pygame.K_UP]: player_rect.y -= player_speed if keys[pygame.K_DOWN]: player_rect.y += player_speed # Fill the screen with a color screen.fill((0, 0, 255)) # Blue background # Draw the player on the screen screen.blit(player, player_rect) pygame.display.flip()

Step 3: Adding Enemies

Now, let's add some enemies that the player needs to avoid.

  1. Create enemy sprites:
# Load enemy image enemy = pygame.image.load("enemy.png") enemy_rect = enemy.get_rect() enemy_rect.topleft = (300, 300)
  1. Move enemies towards the player:
enemy_speed = 3 # Inside the main game loop if enemy_rect.x < player_rect.x: enemy_rect.x += enemy_speed if enemy_rect.x > player_rect.x: enemy_rect.x -= enemy_speed if enemy_rect.y < player_rect.y: enemy_rect.y += enemy_speed if enemy_rect.y > player_rect.y: enemy_rect.y -= enemy_speed # Draw the enemy on the screen screen.blit(enemy, enemy_rect)

Step 4: Detecting Collisions

To make the game more interactive, we need to detect collisions between the player and enemies.

# Inside the main game loop if player_rect.colliderect(enemy_rect): print("Collision detected!") running = False # End the game

Step 5: Adding a Score

Finally, let’s add a score that increases over time or when the player achieves certain goals.

score = 0 font = pygame.font.Font(None, 74) # Inside the main game loop score += 1 score_text = font.render(str(score), True, (255, 255, 255)) screen.blit(score_text, (10, 10))

Enhancing Your Game

Congratulations! You’ve built a basic 2D game using Python and Pygame. Here are a few ideas to enhance your game:

  1. Add More Enemies: Introduce different types of enemies with varying speeds and behaviors.
  2. Power-ups: Add items that give the player special abilities or extra points.
  3. Levels: Create multiple levels with increasing difficulty.
  4. Sound Effects: Use Pygame’s sound module to add background music and sound effects.
  5. Graphics and Animation: Enhance your game with better graphics and animations for smoother gameplay.


Building a 2D game is a fantastic way to learn Python. It teaches you important programming concepts like variables, loops, conditionals, and functions while making the process fun and interactive. As you continue to develop your game, you’ll learn more about game design and improve your coding skills.

Remember, the key to becoming a proficient programmer is practice and experimentation. Don’t be afraid to try new things, make mistakes, and learn from them. Happy coding, and enjoy your journey into game development with Python!