← Pygame program
Advaslearning Hub · Curriculum reference

Pygame — Full Lesson Plan

Two 48-lesson modules for coders who have the Python basics and want to build graphical games — sprites, sound, collisions, physics, scenes and a shipped capstone — plus an eight-lesson project that builds one platformer from an empty window.Ages 11–16. No certification: this one is for the portfolio.

All modulesModule 1 · Pygame ZeroModule 2 · PygameModule 3 · Platformer Project
56
Lessons written
3
Modules
48
Lessons planned
28
Projects & games
🎮 Game🧩 Challenge🛠️ Project
Module 1 · Pygame Zero

Visual Game Builder

48 lessons · 48 hoursNo cert · Portfolio module🗺️ Syllabus↗ Open lessons
CodeLessonTypeMilestone
01What Is Pygame Zero? Install & First WindowInstall pgzero, run an empty window, save the file.
02The Game Loop: draw() & update()How a game ticks — 60 times per second.
03Coordinates: Screen Origin & y-Axisx, y and why y goes downwards in graphics.
04Drawing Shapes: Rect, Circle, LineFilled and outlined primitives.
05Colours & BackgroundsRGB tuples, named colours, gradient hacks.
06Mini-Game: Doodle PadDraw with the mouse, clear with space.🎮 Game
07Actors: Your First SpriteLoad an image, place it on the canvas.
08Moving Actors: actor.x += 1The simplest way to push a sprite around.
09Velocity & Time-Based MovementWhy frame-rate-independent movement matters.
10Multiple Actors: Lists of SpritesSpawn many; update them all in a loop.
11Mini-Game: Cat ParadeTen cats walking in a line, each at its own speed.🎮 Game
12Challenge: 100 Sprites at 60 FPSSpawn 100 actors and keep the frame rate locked.🧩 Challenge
13Keyboard Input: Arrow KeysThe keyboard object — held vs pressed.
14Keyboard Input: Multiple Keys at OnceDiagonal movement, run + jump combos.
15Mouse Input: Click & Dragon_mouse_down, on_mouse_move, on_mouse_up.
16Mini-Game: Sky PainterPaint trails on the screen with the arrow keys.🎮 Game
17Mini-Game: Bug SquasherClick moving bugs before they escape.🎮 Game
18Mini-Game: Cat & Mouse ChaseWASD to dodge, score for survival time.🎮 Game
19Collision Detection: colliderectHave two rectangles overlapped this frame?
20Collision: collidepoint (Mouse on Actor)Did the user click on the right sprite?
21Collision Reactions: Bounce, Destroy, ScoreWhat to do when things touch.
22Mini-Game: Pong LiteTwo paddles, one ball, infinite rally.🎮 Game
23Mini-Game: Brick BreakerSmash a wall of bricks with a bouncing ball.🎮 Game
24Sprite Animation: Cycle FramesSwap costumes every few frames — a walking animation.
25Sprite Animation: Direction-Based FramesFace left, face right, face up — without flipping by hand.
26Sound Effects: sounds.boom.play()One-shot sounds that fire on event.
27Background Music with music.playLoop a track; fade in / fade out.
28Mini-Game: Falling Stars with SoundCatch the stars; chime on hit, thud on miss.🎮 Game
29Mini-Game: Drum MachineClick pads, schedule beats, play a loop.🎮 Game
30Score, Lives & Health BarsThe numbers every arcade game shows.
31Game States: Start → Play → Game OverA single state variable, branching draw and update.
32Saving High Scores to a FileTop 5 scores survive between sessions.
33Mini-Game: Asteroids Lite — Part 1 (Movement)Rotate, thrust, wrap around the screen.🎮 Game
34Mini-Game: Asteroids Lite — Part 2 (Game States)Start screen, play, game-over — and a hi-score table.🎮 Game
35Simple Physics: Gravity & JumpConstant downward acceleration; an impulse up.
36Bouncing & FrictionEnergy loss on each bounce; sliding to a stop.
37Mini-Game: Gravity CatcherCatch falling objects in a basket.🎮 Game
38Mini-Game: Endless Runner — Part 1 (Movement)Player runs; world scrolls; jump on spacebar.🎮 Game
39Mini-Game: Endless Runner — Part 2 (Obstacles)Procedurally spawn rocks and pits; score for distance.🎮 Game
40Tile-Based BackgroundsBuild a level out of 16×16 tiles.
41Scrolling BackgroundsParallax layers — clouds, hills, foreground.
42Multiple Levels & Difficulty CurvesProgressive challenge — speed and spawn rates.
43Particles: Explosions & TrailsSmall sprites with short lives — fireworks made of code.
44Screen Shake & Hit FlashesThe two tricks that make every hit feel solid.
45Title, Pause & Game Over ScreensThree more states; clean transitions; clear instructions.
46Challenge: Make Your Game Feel "Juicy"Take a working game; add shake, particles, sound polish.🧩 Challenge
47Capstone Part 1: Plan & Build Your Arcade GameChoose a genre, sketch the design, build the prototype.🛠️ Project
48Capstone Part 2: Polish & ShareAdd sound, score, juicy polish, and show it to your class.🛠️ Project
Module 2 · Pygame

Game Engineering

48 lessons · 48 hoursNo cert · Portfolio module🗺️ Syllabus↗ Open lessons
CodeLessonTypeMilestone
01Pygame vs Pygame ZeroWhy go deeper, and what Pygame Zero hid from you.⏳ Planned
02Setting Up: pygame.init() & the Main LoopThe classic while running: pattern.⏳ Planned
03The Event System: Queue & PollingKeyboard, mouse, quit — all through one queue.⏳ Planned
04Display Surface & Drawing PrimitivesSurfaces, blits, and what actually gets drawn.⏳ Planned
05Coordinates & the Rect ObjectThe Swiss-army knife of Pygame geometry.⏳ Planned
06Loading & Drawing Imagesconvert_alpha, blit and image performance.⏳ Planned
07Sprites as Classes: Your First PlayerOOP applied — every entity is a class.⏳ Planned
08Sprite Class: Image, Rect & update()The three things every sprite must have.⏳ Planned
09Movement & Velocity VectorsSmooth movement using x/y velocity components.⏳ Planned
10Diagonal Speed NormalisationWhy diagonal moves shouldn't feel faster.⏳ Planned
11Sprite Groups: Many Objects, One UpdateGroup.update() and Group.draw().⏳ Planned
12Sprite Group Performance: Why Groups MatterSpawn 1,000 sprites; keep 60 FPS.⏳ Planned
13Collision: colliderectRectangle-vs-rectangle, the fast default.⏳ Planned
14Collision: spritecollide & groupcollideOne sprite vs a group; group vs group.⏳ Planned
15Collision: Pixel-Perfect MasksWhen rectangles aren't accurate enough.⏳ Planned
16Mini-Game: Top-Down Shooter — Part 1 (Player)Player class, movement, shooting bullets.⏳ Planned🎮 Game
17Mini-Game: Top-Down Shooter — Part 2 (Enemies & Bullets)Enemy spawner, sprite groups, collision resolution.⏳ Planned🎮 Game
18Mini-Game: Top-Down Shooter — Part 3 (Score & Game Over)HUD, hi-score table, restart loop.⏳ Planned🎮 Game
19Sprite Sheets: Slicing FramesOne PNG, many frames — load once, blit cheap.⏳ Planned
20Animation: Frame Timing with Delta-TimeAnimations that run at the same speed on every machine.⏳ Planned
21Animation: State Machine (Idle, Run, Attack)Pick the right animation for the current action.⏳ Planned
22Mini-Game: Animated Boss FightMulti-phase boss with sprite-sheet animations.⏳ Planned🎮 Game
23Tile Maps: Loading Levels from CSVA 2D grid of numbers → a 2D world of tiles.⏳ Planned
24Tile Maps: Loading from Tiled .tmxUse the Tiled editor; load the file in Python.⏳ Planned
25Camera & Scrolling: Follow the PlayerWhen the world is bigger than the window.⏳ Planned
26Camera: Smooth Lerp & Dead ZonesCameras that don't snap or jitter.⏳ Planned
27Parallax BackgroundsLayers that scroll at different speeds — instant depth.⏳ Planned
28Mini-Game: Side-Scroller — Part 1 (Movement & Camera)Player + tile map + smooth-follow camera.⏳ Planned🎮 Game
292D Physics: Gravity, Walking, JumpingVelocity, gravity, ground detection.⏳ Planned
302D Physics: Platform Collision ResolutionHow to stop the player from falling through floors.⏳ Planned
312D Physics: Wall Slides & Coyote JumpTwo tricks that make platformers feel right.⏳ Planned
32Mini-Game: Side-Scroller — Part 2 (Physics & Polish)Add gravity, jumps, collectibles and a goal.⏳ Planned🎮 Game
33Particle Systems: Basic Particle ClassA short-lived sprite with velocity and a fade-out.⏳ Planned
34Particle Systems: Emitters & Object PoolsSpawn thousands without allocating thousands.⏳ Planned
35Mini-Game: Particle Showcase (Fireworks)Click to launch; explode in colour.⏳ Planned🎮 Game
36Scene Management: Stack-Based State MachinePush a pause scene; pop it back to the game.⏳ Planned
37HUD: Score, Health, Mini-MapDrawing on top of the world.⏳ Planned
38UI: Buttons & Menus from ScratchClick areas, hover states, keyboard navigation.⏳ Planned
39Title → Game → Pause → Game Over FlowFour scenes, clean transitions, no leaks.⏳ Planned
40Settings Screen: Volume & ControlsKeybinds the player can change at runtime.⏳ Planned
41Sound Mixer: Music + SFX ChannelsBackground music, layered effects, master volume.⏳ Planned
42Sound Mixer: Channel ManagementReserve channels so important sounds aren't cut off.⏳ Planned
43Saving Progress: JSON + PygameHigh scores, settings, and a continue button.⏳ Planned
44Save Slots: Multiple Save FilesThree saves; load, overwrite, delete.⏳ Planned
45Performance: FPS Counter & ProfilingMeasure before you optimise; show FPS in the HUD.⏳ Planned
46Performance: Dirty-Rect Drawing & Surface Re-UseTwo tricks that double the frame rate on slow machines.⏳ Planned
47Capstone Part 1: Design & BuildChoose a genre, plan the game, ship a playable prototype.⏳ Planned🛠️ Project
48Capstone Part 2: Polish, Test & ShipParticles, sound, save system, and a public release.⏳ Planned🛠️ Project
Module 3 · Platformer Project

Build a Platformer, Step by Step

8 lessons · 8 hoursNo cert · Project module🗺️ Syllabus↗ Open lessons
CodeLessonTypeMilestone
01Project Setup & the Player on ScreenThe folder Pygame Zero insists on, a blue window, and subrect — why the rectangle is not the drawing.
02Walk and Fall — Velocity & GravityStore movement in vx, make gravity accelerate, and cap the fall so nothing tunnels.
03Build the Level and Land on ItA level as data, and the move-then-repair trick that turns falling into standing.
04Jump, Walls and FacingOne shove upward, a second collision pass for walls, and a sprite that faces the way it walks.
05The Pit, Respawn and the HUDWindow edges, falling out of the world, one respawn() for every fresh life, and the controls on screen.
06Skeletons on PatrolSomething that moves without you pressing a key — and a one-point probe that keeps it off the ledge.
07Health, Mercy and the Bar100 hit points, a one-second mercy window measured with dt, and a bar that blinks.
08Capstone — Make the Platformer YoursCoins, stomping and coyote time, then playtest it on somebody else and ship it.🛠️ Project
No lessons match your search.