2D Game Physics Programming by Gustavo Pezzi
Actual Duration:35h 10m
Release date:2022, February
Publisher:Pikuma
Skill level:Intermediate
Language:English
Exercise files:Yes
Software:C++, SDL
Course URL:https://pikuma.com/courses/game-physics-engine-programming
This course is a hands-on introduction to 2D game physics. You’ll learn the math behind rigid-body dynamics and code a simple physics engine in C++. No black boxes, no magic—just clear theory and practical implementation.
🎯 What you’ll learn
- Build a 2D rigid-body physics engine from scratch
- Understand vectors, matrices, and basic calculus for physics
- Implement collision detection and resolution for circles, rectangles, and polygons
- Add constraints like joints and ragdolls to your engine
- Write a particle physics simulation as a foundation
✅ Requirements
- Skills: Basic programming knowledge (if-else, loops, functions). Simple algebra.
- Tools: A code editor and C++ compiler. Pen and paper for math lectures.
- Hardware: Any computer capable of running a C++ compiler (Windows, macOS, or Linux).
📝 Description
This course takes a first-principles approach to game physics. You won’t just copy-paste code—you’ll understand why each formula works. We start with vectors and matrices, then move to rigid-body dynamics, covering velocity, acceleration, mass, forces, gravity, drag, and friction.
The real fun begins when we code a particle physics simulation, then upgrade it to handle circles, rectangles, and polygons. You’ll learn how to detect collisions between these shapes and resolve them using impulses. Finally, we add constraints—joints and ragdolls—to make the engine more stable and versatile.
All code is written in C++ using the SDL library for graphics. The course is cross-platform, so you can follow along on Windows, macOS, or Linux. Expect to spend time with pen and paper working through the math—this is a course for people who want to truly understand physics engines, not just use them.
🧑🎓 Who this course is for
- Game developers who want to build their own physics engine
- Programmers curious about the math behind collision detection and rigid-body dynamics
- Students transitioning from other languages (Java, Python, JavaScript) to C++
🧑🏫 About the Author
Gustavo Pezzi is a university lecturer in London, UK, with multiple education awards. He teaches computer science and mathematics fundamentals, and his academic background includes Pittsburg State University, City University of London, and the University of Oxford. He is also the founder of pikuma.com.
🏁 Final Result
- A fully functional 2D rigid-body physics engine written in C++
- A simulation demonstrating collision detection and resolution for circles, rectangles, and polygons
- A working constraint system with joints and ragdolls

Channel