Python Game Development II: Intermediate Game Dev
Physics, tile worlds, AI, juice and shipping
About this course
Take your pygame-ce games from prototype to product: sprites at scale, easing and particles, forces and collisions, scenes and saves, tile-based platformers, procedural terrain, UI and editors, NPC AI and A*, juice and audio, genre studies, a tower-defense capstone, and shipping executables.
Who it is for: You finished Game Dev I (or can already build a small pygame-ce game with sprites, collisions and sound).
Before you start
This course assumes:
New Python features are taught where they are first needed, in short “Python sidebar” boxes:
- Enum (L09)
- @dataclass and asdict (L10)
- heapq (L20)
- Recursion refresher (L23)
- copy.deepcopy (L18, inline)
Setup: install Python 3.10 or newer, then run pip install pygame-ce in a terminal. Lesson 1 walks through it.
Modules
Each module is one three-hour session: instruction, guided practice and a lab you can finish at home. Teaching it in a classroom? See the 14-session instructor-led syllabus (PDF).
-
Module 1: Sprites at Scale (3.25 h)
Manage many sprites with Groups, layers and masks, then keep big scenes fast with spatial hashing and object pools.
-
Module 2: Smooth Motion & Particles (3.5 h)
Build the course's single easing library with frame-rate-independent smoothing, then use it to drive particle effects.
- Lesson 3: Interpolation & Easing 1 h 45 min
- Lesson 4: Particle Effects 1 h 45 min
-
Module 3: Forces & Gravity (3.25 h)
Model velocity, acceleration and forces with semi-implicit Euler and a fixed timestep, then add platformer gravity and variable jumps.
- Lesson 5: Velocity, Acceleration & Timesteps 1 h 45 min
- Lesson 6: Gravity & Jumping 1 h 30 min
-
Module 4: Bounces & Impacts (3 h)
Add restitution and friction, then resolve circle-circle collisions with impulses and mass.
- Lesson 7: Bounce & Friction 1 h 45 min
- Lesson 8: Impulse Collisions (Circles) 1 h 15 min
-
Module 5: States, Scenes & Saves (3.5 h)
Organize a game into scenes with a push/pop stack and transitions, then save and load progress safely with versioned data.
- Lesson 9: Game States & Scenes 2 h
- Lesson 10: Saving & Loading 1 h 30 min
-
Module 6: Tile Worlds (3.5 h)
Build tile maps with collision and JSON levels, then follow the player with smooth, clamped cameras.
- Lesson 11: Tile Maps 2 h
- Lesson 12: Cameras 1 h 30 min
-
Module 7: Platformer Feel (3 h)
Write a complete character controller with coyote time and jump buffering, then add depth with parallax layers.
-
Module 8: Chance & Generated Worlds (3.25 h)
Use seeded randomness for loot, spawns and fair luck, then generate terrain and biomes from noise.
- Lesson 15: Randomness for Games 1 h 30 min
- Lesson 16: Noise Terrain & Biomes 1 h 45 min
-
Module 9: UI & Tools (3.5 h)
Build an anchored HUD, minimap and dialog box, then a level editor with undo and validation.
- Lesson 17: UI & HUD 1 h 45 min
- Lesson 18: Building a Level Editor 1 h 45 min
-
Module 10: NPC AI (3.5 h)
Give NPCs believable behavior with finite state machines, then find paths through tile worlds with A*.
- Lesson 19: NPC State Machines 1 h 30 min
- Lesson 20: A* Pathfinding 2 h
-
Module 11: Juice & Audio (3.25 h)
Make every hit feel good with trauma shake, hit stop, flashes and tweens, then mix audio with buses, panning and crossfades.
-
Module 12: Genre Studio (3.5 h)
Study two genres end to end: match-3 and sliding puzzles, then RPG stats, inventory, dialogue, quests and saves.
- Lesson 23: Puzzle Games 1 h 45 min
- Lesson 24: RPG Systems 1 h 45 min
-
Module 13: Capstone (3 h)
Build a complete tower-defense game that pulls together particles, UI, waves, cooldowns and pathing.
-
Module 14: Ship It (3.25 h)
Freeze your game into desktop executables with PyInstaller, then launch on itch.io and plan updates.
- Lesson 26: Building Executables 1 h 45 min
- Lesson 27: Launch & Live Ops 1 h 30 min