Book a lesson
HomeArcadeGame Design
Arcade ยท Game Design

Game Design

Build real playable games โ€” catch games, platform games, and puzzle games โ€” in Scratch and Python. Game design is one of the most effective ways to learn programming because you care about the result.

Book a sessionAll resources

What this guide covers

How game mechanics work โ€” movement, collision, scoring, lives, levels
Step-by-step: building a catch game from scratch
Game design in Python with Pygame โ€” a proper introduction
Why game design teaches programming faster than exercises
What Miss ICT Arcade Live game design sessions look like

The game loop โ€” how every game works

This loop runs 30โ€“60 times per second. Every game โ€” from Pac-Man to Minecraft โ€” uses this exact structure.

How a game loop works โ€” every frameCheck player inputKeyboard / mouse โ€” which keys are pressed?Update positionsMove player ยท Move enemies ยท Update bulletsCheck collisionsDid anything touch anything else?Update score / livesAdd points ยท Remove a life if hitDraw the screenRender all sprites in their new positions
key termSpriteAny moving character or object in the game
key termCollisionWhen two sprites touch each other
key termVariableStores score, lives, speed, level
key termIterationThe game loop โ€” repeating every frame
key termEventKey pressed, mouse clicked, timer fires

The game loop โ€” how every game works

This loop runs 30โ€“60 times per second in every game ever made.

Game loop โ€” runs every frameCheck player inputKeyboard ยท mouse ยท touch โ€” what is pressed?Update positionsMove player ยท enemies ยท bulletsCheck collisionsDid anything touch anything else?Update score / livesAdd points ยท remove a life if hitDraw the screenRender all sprites in new positions
key termSpriteMoving character or object
key termCollisionTwo sprites touching
key termVariableStores score / lives / speed
key termIterationGame loop โ€” runs every frame
key termEventKey press, timer, mouse click

What is game design?

Game design is the process of creating the rules, mechanics, characters, levels, and experiences that make a game work and feel good to play. In Miss ICT Arcade, game design means building real playable games โ€” in Scratch for beginners and Python for more advanced learners.

It is one of the most powerful ways to learn programming because every feature you want in your game requires you to solve a real problem. You care about fixing the bug because it is your game.

Why game design teaches programming

Building a game naturally introduces every core programming concept:

Player movement requires variables and conditions. Scoring requires variables and events. Multiple levels require loops and lists. Enemies require more complex conditions and timing.

None of this feels like homework because the goal is a working game, not a worksheet.

What you can build in Arcade sessions

Miss ICT Arcade sessions guide learners through game projects matched to their level. Beginners start with simple catch games and quizzes. More experienced learners build platform games, maze puzzles, and multi-level projects with scoring systems and lives.

Core game mechanics โ€” how games work

All games โ€” from Tetris to Fortnite โ€” are built from the same mechanical building blocks.

MechanicWhat it doesHow it works in Scratch/Python
Player inputRespond to keyboard or mouseWhen key pressed blocks / keyboard.is_pressed()
MovementMove the player character on screenChange x/y by amount / sprite.x += speed
Collision detectionDetect when objects touchTouching sprite? / sprite.colliderect()
ScoringTrack and display pointsVariable increases when event happens
Lives/healthLimit how many mistakes are allowedVariable decreases on collision
Game statesStart screen, playing, game overif game_state == "playing": etc.
LevelsProgress to harder challengesVariable tracks level; conditions change difficulty

Building a simple catch game โ€” step by step

A catch game is the perfect first project: a player-controlled paddle catches falling objects. Here is how it breaks down:

1
Create the paddle
A sprite at the bottom of the screen. Move it left/right with arrow keys.
2
Create the falling object
A sprite that starts at the top and moves down. When it reaches the bottom, go back to the top.
3
Add collision detection
If the falling object touches the paddle, increase score by 1 and send the object back to the top.
4
Add a miss condition
If the falling object reaches the bottom without touching the paddle, decrease lives.
5
Add game over
When lives reach 0, stop all scripts and show the final score.
6
Add difficulty
Make the falling object gradually speed up as score increases.

Game design in Python with Pygame

Older or more advanced learners can move from Scratch to Python using a library called Pygame. Pygame gives you a window, drawing tools, keyboard input, and collision detection โ€” all the tools needed for 2D games.

A basic Pygame structure

import pygame
pygame.init()

screen = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock()
running = True

while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    
    screen.fill((0, 0, 0))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

What each part does

pygame.init() โ€” starts all Pygame systems.

display.set_mode() โ€” creates the game window.

The game loop โ€” runs 60 times per second, checking for events and redrawing the screen.

screen.fill() โ€” clears the screen each frame (without this, images leave trails).

Art direction

Good games need visual clarity. Colour choices, sprite size, and screen layout all affect how playable a game feels โ€” even in simple projects.

Sound design

Pygame supports sound effects and music. Adding a beep when scoring points, a crunch when losing a life, and background music makes games feel much more polished.

Playtesting

The only way to know if a game is fun is to play it โ€” and watch someone else play it. Most problems become obvious in the first five seconds of playtesting.

Build games in Arcade Live

Miss ICT Arcade Live sessions are Monday and Thursday, 12:30โ€“1:00pm. Maximum 3 learners. Build real games with guided support โ€” Scratch for beginners, Python for more advanced learners.

Book Arcade LiveView full Arcade page

Frequently asked questions

Do I need any experience to start game design sessions?

No. Sessions are matched to your level. Complete beginners start with the most basic projects and build up gradually.

Can we use Pygame in school for GCSE?

Pygame is Python and can be used for the OCR GCSE programming project (NEA substitute or coursework component). It is a legitimate choice for A Level NEA projects too.

Is game design relevant to Computer Science qualifications?

Yes. Designing and building games exercises the same skills tested in GCSE and A Level Computer Science โ€” decomposition, abstraction, variables, conditions, loops, functions, and testing. It is arguably the most motivating way to develop those skills.

Related

Arcade

Learn Scratch

Start with visual coding โ€” the ideal foundation for game design

Projects

Game Design Projects

Specific game projects with step-by-step guidance

Challenges

Creative Coding Challenges

Short design missions to build your skills between sessions

Miss ICT Arcade

Full Arcade Page

Live sessions, home packs, and the Arcade Circle community

๐ŸŽฎ Try Arcade โ†’
Free taster ยท No commitment