Many programmers frequently have limited backgrounds in the mathematics and physics needed for game development or other complex applications. Sooner or later, all programmers run into coding issues that will require an understanding of mathematics or physics concepts like collision detection, 3D vectors, transformations, game theory, or basic calculus. This book provides a simple but thorough grounding in the mathematics and physics topics that programmers need to write these algorithms and programs, using a non-language-specific approach. Applications and examples from game programming are included throughout, and exercise sets follow each chapter for additional practice of the techniques. The CD-ROM provides simulations of the mathematical and physical principles discussed in the book along with the source code.