Uploaded July 2020 | Updated September 2026, 3 weeks ago
Join the Discord: discord.gg/4tHeAkxNg7
In this tutorial, I explain how we can use some dot products and vector math to implement the separating axis theorem (en.wikipedia.org/wiki/Hyperplane_separation_theorem). The separating axis theorem is a popular introductory game physics technique for detecting collisions. Although it is not the most efficient (check out GJK algorithm for a more efficient algorithm en.wikipedia.org/wiki/Gilbert%E2%80%93Johnson%E2%80%93Keerthi_distance_algorithm), it gets the job done and is easy to intuitively understand. Once we look at how to solve this problem mathematically, we implement it in the code base, and create a function for detecting whether an AABB is colliding with another AABB, or with a Box2D (OBB).
Source Code: github.com/codingminecraft/MarioYoutube/tree/265780291acc7693816ff2723c227ae89a171466
0:00 Intro
1:03 SAT Math
10:35 Coding the SAT
---------------------------------------------------------------------
Website: ambrosiogabe.github.io
Github: github.com/ambrosiogabe
Here are some books I recommend if you want to learn about game engine development more thoroughly. I do not profit off any of these sales, these are just some books that have helped me out :)
My Recommended Game Engine Books:
Game Engine Architecture: gameenginebook.com
Game Physics Cookbook (Read this before the next physics book): amazon.com/Game-Physics-Cookbook-Gabor-Szauer/dp/1787123669
Game Physics (Ian Millington): amazon.com/Game-Physics-Engine-Development-Commercial-Grade/dp/0123819768
Game Programming Patterns (Free): gameprogrammingpatterns.com
My Recommended Beginning Game Programming Books:
JavaScript Game Design: apress.com/gp/book/9781430247166
My Recommended Java Books:
Data Structures/Algorithms: amazon.com/Data-Structures-Algorithms-Java-6th-ebook/dp/B00JDRQF8C
LWJGL (Free, but I haven't read this thoroughly): lwjglgamedev.gitbooks.io/3d-game-development-with-lwjgl/content
Outro Music: bensound.com/royalty-free-music
Join the Discord: discord.gg/4tHeAkxNg7
In this tutorial, I explain how we can use some dot products and vector math to implement the separating axis theorem (en.wikipedia.org/wiki/Hyperplane_separation_theorem). The separating axis theorem is a popular introductory game physics technique for detecting collisions. Although it is not the most efficient (check out GJK algorithm for a more efficient algorithm en.wikipedia.org/wiki/Gilbert%E2%80%93Johnson%E2%80%93Keerthi_distance_algorithm), it gets the job done and is easy to intuitively understand. Once we look at how to solve this problem mathematically, we implement it in the code base, and create a function for detecting whether an AABB is colliding with another AABB, or with a Box2D (OBB).
Source Code: github.com/codingminecraft/MarioYoutube/tree/265780291acc7693816ff2723c227ae89a171466
0:00 Intro
1:03 SAT Math
10:35 Coding the SAT
---------------------------------------------------------------------
Website: ambrosiogabe.github.io
Github: github.com/ambrosiogabe
Here are some books I recommend if you want to learn about game engine development more thoroughly. I do not profit off any of these sales, these are just some books that have helped me out :)
My Recommended Game Engine Books:
Game Engine Architecture: gameenginebook.com
Game Physics Cookbook (Read this before the next physics book): amazon.com/Game-Physics-Cookbook-Gabor-Szauer/dp/1787123669
Game Physics (Ian Millington): amazon.com/Game-Physics-Engine-Development-Commercial-Grade/dp/0123819768
Game Programming Patterns (Free): gameprogrammingpatterns.com
My Recommended Beginning Game Programming Books:
JavaScript Game Design: apress.com/gp/book/9781430247166
My Recommended Java Books:
Data Structures/Algorithms: amazon.com/Data-Structures-Algorithms-Java-6th-ebook/dp/B00JDRQF8C
LWJGL (Free, but I haven't read this thoroughly): lwjglgamedev.gitbooks.io/3d-game-development-with-lwjgl/content
Outro Music: bensound.com/royalty-free-music










