Press Start Logo

Pygame ‘Press Start’ Tour

Setting the stage for your Game Dev journey even if you never coded before

April 25th, 2025

Once you level up your code you can wield your creativity
Once you level up your code you can wield your creativity

🕹️ Welcome to the Pygame ‘Press Start’ Tour

The Pygame Press Start Tour teaches game development through hands-on projects.

You Don’t Need to Know Everything

Believe it or not, Absolute beginners are allowed to code. Even if you’ve never written a line of code in your life, that’s okay.

A project-based learning approach teaches you what you need as you go. If something matters, you’ll see it again until it clicks.

So don’t worry about knowing everything upfront. And if you ever feel curious about how code works behind the scenes, we’d love for you to check out our beginner-friendly series: Starter Town.

Building our Studio

Our Toolbox

For this Tour, our tools will be Python as our language, PyCharm to write the code, and Pygame to stitch our game together.

Python download
First stop on the tour: downloading the language your game will speak.

Installing Python

  1. Download the latest version of Python 3 here.
  2. On Windows, check the box "Add Python to PATH"
  3. Click ‘Install Now’

"PATH" is like an address book letting the PC know where Python lives.

Install Python
You’ll have to scroll a bit, but it’s there (I promise!)

Setting up PyCharm

  1. Download Community Edition (It’s free)
  2. Launch PyCharm and select ‘New Project’.
  3. Ensure your Interpreter is 'Custom environment' and click ‘Create’

Installing PyGame

  1. Open the Terminal tab in PyCharm (bottom panel)
  2. Type pip install pygame and hit enter
Installing pygame
You’ll see some text — that’s the magic downloading

The spark of every project - main.py

  1. Right-click your project folder → New > Python File
  2. Name it: main
PyCharm layout
PyCharm is capable of a lot. We’ll go through features as we go

Getting started with Pygame

We’ll prep our game in three phases: The Setup, The Game Loop, and The End.

The Setup (Initialization)

Gathering our tools

import pygame
import sys

Starting our engine

pygame.init()

We interrupt this program with:

POOPs - Principles of Object-Oriented Programming

  • Class is a blueprint
  • Method is a function attached to an instance
  • Instance is a live object from that blueprint
POOPs diagram
POOPs is a way of modeling code as ‘things’ with traits and actions

Setting up our window

WIDTH, HEIGHT = 600, 400
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Name your game here :D")

The Game Loop

Game loop diagram
Every moment is decided in code one frame at a time

The heartbeat of our game:

clock = pygame.time.Clock()
running = True

while running:
    clock.tick(60)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((135, 206, 250))
    pygame.display.flip()

The End

pygame.quit()
sys.exit()
You're ready to start
It may look like nothing… But it’s the start of our next adventure 💛

And just like that we:

  • ✅ Installed Python + PyCharm + Pygame
  • ✅ Created a window with Pygame
  • ✅ Wrote your first game loop
  • ✅ Learned how your game starts, updates, and ends

Next Steps

Congratulations. You’ve literally opened a window to a whole new place. Right now, it’s just sky. But soon, it will be a world that you create.

More adventures to come
Taming the snake is no small feat but we’re only getting started

Coming soon:

  • Endless Runner
  • Pet Simulator
  • Turn-based RPG

If you want to learn more fundamentals, check out Starter Town.

Complete ‘Getting Started’ Script

# Grab the toolbox
import pygame
import sys
# Wake up Pygame
pygame.init()
# Setup window
WIDTH, HEIGHT = 600, 400
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Game Window Name")
# Setup Game Loop
clock = pygame.time.Clock()
running = True
# Game Loop
while running:
    clock.tick(60)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    screen.fill((135, 206, 250))
    pygame.display.flip()
# Pull the plug
pygame.quit()
sys.exit()

How did we get here 😵‍

If you’re wondering how we even knew what to write, it’s all in the Pygame docs.

There are no secrets. Only curiosity and the willingness to try.

The hardest part is to start — and today, you did just that.

© 2025 Blackcat School of Interactive Arts. All rights reserved.