Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Tutorials and Resources Sticky

A topic by xenobrain created Apr 04, 2023 Views: 781 Replies: 2
Viewing posts 1 to 3
Jam HostSubmitted (8 edits)

Below are links to tutorials that take a deep dive into making things boingy. They are sorted from simple to complex so be prepared for some heavy duty math as you get near the bottom. If you want help with maths stuff, come see us on the DragonRuby Discord and head for the #math-physics channel.

Tutorials

Build a simple 2D physics engine for JavaScript games https://developer.ibm.com/tutorials/wa-build2dphysicsengine/

Collision Detection and Response https://www.metanetsoftware.com/technique/tutorialA.html

Newcastle University Game Engineering - Physics https://research.ncl.ac.uk/game/mastersdegree/gametechnologies/physicstutorials/

Rigid Body Dynamics http://www.chrishecker.com/Rigid_Body_Dynamics

Game Physics Series https://allenchou.net/game-physics-series/

References

These are the resources that almost everyone builds on. They can be tougher to learn from but it’s the most definitive information

Dirk Gregorius. March 2013. “The Separating Axis Test Between Convex Polyhedra.” Game Developers Conference. http://media.steampowered.com/apps/valve/2013/DGregorius_GDC2013.zip

Dirk Gregorius. March 2015. “Robust Contact Creation for Physics Simulations.” Game Developers Conference. http://media.steampowered.com/apps/valve/2015/DirkGregorius_Contacts.pdf

Erin Catto. GDC 2005. “Iterative Dynamics” https://box2d.org/files/ErinCatto_IterativeDynamicsSlides_GDC2005.pdf

Erin Catto. GDC 2006. “Fast and Simple Physics using Sequential Impulses” https://box2d.org/files/ErinCatto_SequentialImpulses_GDC2006.pdf

cool

Jam HostSubmitted

I also wrote some samples using the impulse-based approach

Simple: Boingy

More advanced, with rotation and better solver Boingy2

The second one is a little messy still because I’ve been busy with other projects and haven’t cleaned it up, but it should still be helpful