G2Instructor-Led Course Syllabus
Python Game Development II: Intermediate
Take your pygame-ce games from prototype to product: sprites at scale, smooth motion and particles, physics you can tune, scenes and safe saves, tile-based platformers, generated worlds, UI and tools, NPC AI, juice and sound, two genre studies, a tower defense capstone, and a build anyone can download.
Fourteen three-hour sessions, one module each. Every session has the same shape: a warm-up that starts from last session's programs, two lessons (Session 13 is one capstone lesson), a break, and a wrap-up with an exit ticket. Each lesson runs frame → live-code → guided build → check: the instructor frames the idea and live-codes the lesson's examples, then the room builds the Practice Exercise together up to a named step.
The lessons hold more than a room can do: each module is 3 to 3.5 hours of content for a learner working alone, against about 2.5 hours of lesson time in the room. So the room does the framing, the demos and a guided build, and the remaining exercise steps, the Going Further challenges and the learning journal finish at home. Each session's schedule below names what the room covers; plan on 1 to 2 hours of homework a week.
Every lesson lives on the free course site, with the complete example solution, a quick quiz and a journal prompt, so a missed session can be caught up at home. The course ends with a capstone: a tower defense game built in Session 13, extended with a feature of your own, and shipped as a download after Session 14.
Weekly: 14 weeks, one session a week; the best fit for the homework load
Twice weekly: 7 weeks; ask for the at-home steps before the next session
Two terms: Sessions 1–7 (motion, physics, structure, platformers), then 8–14 (systems, genres, capstone, shipping)
Motion & Physics Sessions 1–4 Game Structure 5–7 Game Systems 8–11 Studio 12–14
Times assume a 9:00 start. Shift the whole block to fit your schedule (an afternoon or evening run works the same way). Lesson titles link to the lesson pages on the course site. A PDF edition is available for printing.
Session 1
Sprites at Scale
Motion & Physics
By end of session: organize hundreds of sprites with groups, draw layers and pixel-perfect masks, then keep a big scene fast with a spatial hash and object pools, measured rather than guessed.
Deliverable: Wave Defender (layers, masks, hit flash) and Swarm (spatial hash, spark pool)
PART 1Module 1 · Sprites at Scale (I)9:00–10:47
9:00—Welcome, orientation & pygame-ce checkIntroductions, the course path, then everyone confirms pygame-ce 2.5+ and opens a window.
9:20L01Groups, Layers & MasksLive-code the rain, layers, callback and mask programs; guided build of Wave Defender TODOs 1–5.
10:35—Break
PART 2Module 1 · Sprites at Scale (II)10:47–12:00
11:50—Wrap-up & exit ticketTwo Swarm HUDs on screen, recap, homework, what to bring to Session 2.
Session 2
Smooth Motion & Particles
Motion & Physics
By end of session: build the course's easing library with frame-rate-independent smoothing and angle and color blending, then drive a pooled particle system with gravity, drag, fades and additive glow.
Deliverable: Easing Playground and a Fireworks Fountain, plus one particle recipe of your own
PART 1Module 2 · Smooth Motion & Particles (I)9:00–10:37
9:00—Warm-up & reviewSwarm and Wave Defender from home: one HUD on screen, three quick questions, easing.py copied into place.
9:15L03Interpolation & EasingLerp, curves, easing.py, tweens, damp(), lerp_angle; guided build of Easing Playground TODOs 1–4.
10:25—Break
PART 2Module 2 · Smooth Motion & Particles (II)10:37–12:00
10:37L04Particle EffectsBurst, colors, emitters, pool, glow; guided build of Fireworks Fountain TODOs 1–3.
11:50—Wrap-up & exit ticketTwo fountains side by side, recap, homework, what to bring to Session 3.
Session 3
Forces & Gravity
Motion & Physics
By end of session: move objects with forces, mass and semi-implicit Euler on a fixed timestep that behaves the same at any frame rate, and design platformer jumps from a height and a time.
Deliverable: Thruster Drift and Moon Jumper (with a world of your own design)
PART 1Module 3 · Forces & Gravity (I)9:00–10:42
9:00—Warm-up & reviewFireworks and recipes from home: one fountain on screen, three quick questions, the Module 3 starters copied.
10:30—Break
PART 2Module 3 · Forces & Gravity (II)10:42–12:00
10:42L06Gravity & JumpingGravity, terminal velocity, designed jumps, short hops, landing; guided build of Moon Jumper TODOs 2–5.
11:50—Wrap-up & exit ticketTwo jumpers at different frame rates, recap, homework, what to bring to Session 4.
Session 4
Bounces & Impacts
Motion & Physics
By end of session: bounce with restitution, slide to a real stop with Coulomb friction, roll on slopes, and resolve circle collisions with impulses where mass decides who goes where.
Deliverable: Material Tester and Pool Break
PART 1Module 4 · Bounces & Impacts (I)9:00–10:45
9:00—Warm-up & reviewJumpers and worlds from home: one on screen, three quick questions, the Module 4 starters copied.
9:15L07Bounce & FrictionRestitution, materials, friction, slopes, spin; guided build of Material Tester TODOs 2–6 and a prediction round.
10:33—Break
PART 2Module 4 · Bounces & Impacts (II)10:45–12:00
11:50—Wrap-up & exit ticketThe heavy-cue break on the projector, recap, homework, what to bring to Session 5.
Session 5
States, Scenes & Saves
Game Structure
By end of session: replace piles of flags with Enum states, scene classes and a push/pop stack with fades, then save progress with dataclasses, validation, version migration and atomic writes.
Deliverable: Coin Dash (menu, play, pause and game-over scenes) and Save Slots
PART 1Module 5 · States, Scenes & Saves (I)9:00–10:37
9:00—Warm-up & reviewTwo Pool Break runs on the projector; "where does a menu go in this program?" sets up the session.
9:15L09Game States & ScenesFSM + Enum demo, scenes, the stack, fades, the asset cache. Guided build: Coin Dash TODOs 2–4.
10:25—Break
PART 2Module 5 · States, Scenes & Saves (II)10:37–12:00
10:37L10Saving & LoadingJSON surprises, @dataclass round trip, atomic writes, validation, migrations. Guided build: Save Slots TODOs 2–5.
11:50—Wrap-up & exit ticketBreak a save file live and watch the game shrug it off; homework; bring list for Session 6.
Session 6
Tile Worlds
Game Structure
By end of session: build levels from tile grids with culled drawing, per-axis collision and JSON level files, then follow the player with smooth, clamped cameras (deadzone, look-ahead, zoom).
Deliverable: Coin Cave and Camera Modes
PART 1Module 6 · Tile Worlds (I)9:00–10:37
9:00—Warm-up & reviewCoin Dash and Save Slots on the projector; the string-keys surprise as the bridge into Tile Maps.
9:15L11Tile MapsRows of ids, floor division, culling, per-axis collision, the 1 px probe, levels as JSON. Guided build: Coin Cave TODOs 1–4.
10:25—Break
PART 2Module 6 · Tile Worlds (II)10:37–12:00
10:37L12CamerasWorld vs screen space, locked vs smooth (1 - exp(-k·dt)), deadzone, look-ahead, clamping, zoom.
11:50—Wrap-up & exit ticketFour modes side by side on one volunteer's machine; homework; bring list for Session 7.
Session 7
Platformer Feel
Game Structure
By end of session: write a character controller with acceleration, air control, coyote time, a jump buffer and a jump cut, then add depth with looping parallax layers.
Deliverable: Forgiving Jump and Parallax Walk
PART 1Module 7 · Platformer Feel (I)9:00–10:55
9:00—Warm-up & reviewCoin Cave and Camera Modes on the projector; "which lines of Coin Cave would a great platformer keep?" as the bridge.
9:15L13Character ControllersAcceleration and friction with approach(), the skeleton, coyote time and the buffer, the jump cut, State and Animator.
10:43—Break
PART 2Module 7 · Platformer Feel (II)10:55–12:00
10:55L14Parallax ScrollingScroll factors, tiling with modulo, back-to-front drawing, SRCALPHA haze.
11:50—Wrap-up & exit ticketBoth builds side by side; homework; bring list for Session 8.
Session 8
Chance & Generated Worlds
Game Systems
By end of session: use seeded generators, weighted tables, shuffle bags and pity timers so luck feels fair and can be replayed, then grow islands and biomes from fractal value noise.
Deliverable: Loot Drops and Island Biomes
PART 1Module 8 · Chance & Generated Worlds (I)9:00–10:32
9:00—Warm-up & reviewTwo Forgiving Jump / Parallax Walk demos from Session 7, a three-question recall, the dice hook.
9:15L15Randomness for GamesSeeds and own generators, weighted choices, shapes of chance, fair luck, spawn timers.
10:20—Break
PART 2Module 8 · Chance & Generated Worlds (II)10:32–12:00
10:32L16Noise Terrain & BiomesWhite vs value noise, 2D lattice, octaves, biomes, build once. Guided build: island_biomes_starter.py TODOs 2–6.
11:50—Wrap-up & exit ticketIslands on screen by seed, recap, homework, preview Session 9.
Session 9
UI & Tools
Game Systems
By end of session: anchor a HUD over a scrolling camera with a smooth health bar, minimap and dialog box, then build a level editor with brushes, undo and redo, validation and safe saves.
Deliverable: HUD Overlay and a Level Editor (with a teach, test, twist level)
PART 1Module 9 · UI & Tools (I)9:00–10:39
9:00—Warm-up & reviewSeeds on screen from Session 8, recall, the "dashboard" hook.
9:15L17UI & HUDWorld vs screen space, anchors, text caching, a smooth health bar, a local-coordinate minimap, a dialog box.
10:27—Break
PART 2Module 9 · UI & Tools (II)10:39–12:00
10:39L18Building a Level EditorPacing, grid data, stroke painting, snapshot undo/redo, validation, atomic save, constant-speed paths.
11:50—Wrap-up & exit ticketOne learner's level saved and reloaded live, recap, homework, preview Session 10.
Session 10
NPC AI
Game Systems
By end of session: give a guard believable behavior with a state machine (patrol, chase, attack, search, investigate, flee), then move units through tile worlds with A* and path smoothing.
Deliverable: Guard NPC and Click to Move
PART 1Module 10 · NPC AI (I)9:00–10:32
9:00—Warm-up & reviewA level from the Session 9 editor, recall, the "museum guard" hook.
9:15L19NPC State MachinesEnum + state classes + a checking machine, perception, safe movement, dt timers, hysteresis, any-state flee, debug drawing.
10:20—Break
PART 2Module 10 · NPC AI (II)10:32–12:00
10:32L20A* PathfindingMaps as graphs, BFS, Dijkstra with heapq, A* and heuristics, the corner rule, following and smoothing.
11:50—Wrap-up & exit ticketA replan on the projector, recap, homework, preview Session 11.
Session 11
Juice & Audio
Game Systems
By end of session: make hits feel good with trauma-based screen shake, hit stop, flashes and tweens (with a reduce-motion option), then mix sound with volume buses, spatial panning and crossfades.
Deliverable: Juicy Hit and Spatial Sound
PART 1Module 11 · Juice & Audio (I)9:00–10:47
9:00—Warm-up & reviewGuard and click-to-move demos from Session 10, recall, sound check, the pinball hook.
10:35—Break
PART 2Module 11 · Juice & Audio (II)10:47–12:00
11:50—Wrap-up & exit ticketJuice off vs on, recap, homework, preview Session 12.
Session 12
Genre Studio
Studio
By end of session: study two genres end to end: match-3 matching, cascades and reshuffles and an always-solvable sliding puzzle, then RPG stats, XP, equipment, a quest that pays once, and saves.
Deliverable: Gem Swap and Village Quest
PART 1Module 12 · Genre Studio (I)9:00–10:37
9:00—Warm-up & reviewTwo Module 11 demos, the Enum-typo predict, both starters open and running.
9:15L23Puzzle GamesMatches, swaps, gravity, cascades; sliding-puzzle parity demo. Guided build: Gem Swap TODOs 1–4 (TODO 5 if time).
10:25—Break
PART 2Module 12 · Genre Studio (II)10:37–12:00
10:37L24RPG SystemsStats, items, dialogue graph, quest, JSON with Enums. Guided build: Village Quest TODOs 1–3 plus equipping; TODO 4 previewed.
11:50—Wrap-up & exit ticketRecap, homework (Gem Swap TODO 5 + a full game, Village Quest TODO 4), capstone preview, bring list.
Session 13
Capstone
Studio
By end of session: finish a complete tower defense game one system at a time: waves, waypoints, targeting and cooldowns, three kinds of shots, one scaled dt for pause and x2, juice and tests that run without a window.
Deliverable: Tower Defense (six waves, four towers, upgrades, CC0 art), finished at home
Also: the final assessment is launched: make the game your own and ship it after Session 14.
PART 1Module 13 · Capstone (I)9:00–10:52
9:00—Warm-up & setupThe "state vs. event" exit tickets from Session 12; starter + assets open and running.
9:10L25Tower Defense: the systemsPlay the browser demo; data first; waypoints; targets and cooldowns; three kinds of shots; waves and phases; juice, art and tests.
10:00L25Build block 1TODO 1 spawner, TODO 2 waypoint walk, TODO 3 target + cooldown. The game becomes a game.
10:40—Break
PART 2Module 13 · Capstone (II)10:52–12:00
10:52L25Build block 2TODO 4 wave bonus once, TODOs 5–6 splash and frost, TODO 7 particles and shake.
11:47L25Playtest & balanceSwap seats and play a neighbor's game; change one balance number; one sentence each.
11:55—Wrap-up & exit ticketHomework, the final assessment brief, bring list for Session 14 (the build session), exit ticket.
Session 14
Ship It
Studio
By end of session: freeze a game into a folder that runs without Python, find assets and save data correctly in a frozen build, zip a release, and plan a launch with version numbers, patch notes and live events.
Deliverable: A frozen, zipped Star Catcher build and Release Day; then the capstone, shipped
PART 1Module 14 · Ship It (I)9:00–10:42
9:00—Warm-up: capstone show-and-tellFour or five 2-minute demos of Tower Defense; PyInstaller check on every machine.
9:15L26Building ExecutablesPath bug demo, data folder, atomic save. Guided build: Star Catcher TODOs 1–3, then a freeze with build_game.py.
10:30—Break
PART 2Module 14 · Ship It (II)10:42–12:00
10:42L27Launch & Live Opsitch.io vs. Steam, butler, store page, funnel, launch week, semver, live events. Guided build: Release Day TODOs 1–4.
11:45—Course closeThe 14-session arc, course reflection, what's next (Game Dev III), exit ticket.
What You'll Be Able to Do
By the end of the course you can take a pygame-ce game from prototype to a finished, shippable product:
Manage hundreds of sprites with layers, masks, spatial hashing and pools
Animate with easing and particles that look the same at any frame rate
Simulate forces, jumps, bounces, friction and collisions on a fixed timestep
Structure a game with scenes, and save progress that survives damage and old versions
Build tile-based platformers with cameras, tight controls and parallax
Generate fair loot and whole worlds from a seed, and build HUDs and level editors
Write NPC state machines and A* pathfinding, and add juice and spatial sound
Finish a complete game and ship it as a download with versions and patch notes