- 35 hours on-demand video content
- Lifetime access
- Downloadable resources and exercises
- Certificate on completion
- Access on mobile and desktop
- Secure checkout via Credit Card or PayPal
- 14-day money back guarantee
- Last updated February 2022
This course is a gentle introduction into the world of 2D game physics! We'll review all the beautiful math that provides the foundation for most physics engines, starting with a strong review of vectors, matrices, basic trigonometry, rigid-body collision, and touching a little bit of calculus as well.
The lectures are designed to teach all concepts from first principles. In our journey, we'll review several topics from physics, like velocity, acceleration, integration, mass, forces, gravity, drag, friction, rigid body dynamics, collision detection, constraints, etc.
We'll also put theory into practice by coding a very simple 2D physics engine from scratch using the C++ programming language.
We'll start by writing a simulation of particle physics, which is a good start for us to address concepts like movement, forces, displacement, and integration.
We'll then proceed to work with rigid bodies by adding shapes to our objects, like circles, rectangles, and polygons. We'll also learn how to code the collision detection and collision resolution between these rigid bodies.
We'll conclude our C++ implementation by adding constraints to our physics engine, which will help us add different types of objects to our engine, like joints and ragdolls. Ultimately, constraints will help us improve the stability of our engine, and they are a great opportunity for us to discuss some interesting ideas from calculus.
All you really need is a simple code editor and a C++ compiler. We'll use a cross-platform library called SDL to display our graphics, and since we can find a C++ compiler for virtually any operating system, you can follow along on either Windows, macOS, or Linux!
Also, make sure you have pen and paper ready for the lectures. This course will probably be a little bit different than other programming courses you took before. We will take our sweet time and make sure we understand every formula we find along the way!
This is a self-contained course with no formal prerequisites. However, you will probably get the most out of it if you already know the basics of coding (if-else, loops, functions).
We will explore some very interesting math along the way, but all you really need is to know some simple algebra. If you know how to solve the equation below for x, then you should be able to follow along and have fun like everyone else!
Gustavo Pezzi is a university lecturer in London, UK. He has won multiple education awards as a teacher and is also the founder of pikuma.com.
Gustavo teaches fundamentals of computer science and mathematics; his academic path includes institutions such as Pittsburg State University, City University of London, and University of Oxford.
This course is not just a simple tutorial on how to use a physics engine like Box2D or Bullet. This course focus on the foundation of what makes physics engines tick, including a comprehensive review of the beautiful math that comes with it.
While you can find other resources on game physics out there, most of them are either too theoretical or overwhelmingly complex. This course is a beginner-friendly introduction to the world of game physics, providing a mix between the theory we'll see in the lectures with the practical examples we'll write using C++.
So, if you ever wanted to understand what happens under the hood of a physics engine, then get ready and buckle up! This is going to be a 35-hour journey of pure nerd fun.
"Fantastic course! I'm about half way through this course. Unbelievable value for money. Not only do you get a course on 2D physics, but it doubles as a massive C++ project so that (for me anyway). I can brush up on and get more confident with the syntax (and memory management).
Course is well presented and explained, with clear diagrams and animations. I wish I had more time (jumping between this one and a few others from same Instructor). Brings together all the stuff I have learnt over the years (since my high school days a few decades ago).
"This is an excellent course and a great entry level to understanding and creating a Physics Engine.
I have bought numerous books and videos on video game physics but never got anywhere because the math and C++ code was to difficult to understand. I am impressed that I was able to understand the calculus in this course as I barely have any experience in calculus. Not only that I also have little experience in C++. The instructor simply knows how to simplify difficult topics and makes it possible for anyone with a high school degree to learn video game physics given they touch up what they do not know on Khan Academy."
"Great content and great explanations!
You are a genious at explaining hard concepts, Gustazo.
It is amazing how you make hard things fun :)"
"Best course on game physics! I've always been curious on how physics were implemented in games. And truth is that physics was not my best subject on school. But Gustavo really explains all the math behind a physics engine is a very clear manner. You can code along, build your own physics engine and understand everything behind the scenes! Very satisfying! Looking forward to the 3D physics engine course."