Hi, all:
This is my last semester at DigiPen Institute of Technology, so I decided to give a lecture to my fellow schoolmates on constraint-based physics to pass down a few things I know about implementing game physics.
Here are the slides I used:
http://allenchou.net/slides-constraint-based-physics/
Below are the main points I went over in this lecture:
- The flow chart of a typical physics engine.
- How to derive velocity constraints.
- Contact constraints, including normal and tangential resolutions.
- Solving multiple constraints simultaneously (block-solving).
You don't really need to implement a full-blown physics engine with narrow phase, broad phase, and other fancy stability features like contact caching and warm starting, just in order to get something cool. In the end, I presented a simple constraint, the mouse constraint, as an exercise homework.
I encourage anyone who hasn't done any physics-related stuff to try implementing mouse constraints with a simple semi-implicit Euler integrator; you will end up with something you can drag around, reacting and looking physically "correct".
If you are not familiar with motion dynamics, I also wrote two posts on its fundamentals and implementation examples, please do check them out:
http://allenchou.net/2013/12/game-physics-motion-dynamics-fundamentals/
http://allenchou.net/2013/12/game-physics-motion-dynamics-implementations/
Lastly, here's a full list of the posts I have written on game physics:
http://allenchou.net/game-physics-series/
As always, please tell me if you think I've got something wrong. Thanks