Physics for Game Programmers: Understanding Constraints