Aimed at the game developer or student/hobbyist interested in physics, Physics for Game Developers
reviews all the math for creating realistic motion and collisions for cars, airplanes, boats, projectiles, and other objects along with C/C++ code for Windows. While this authoritative guide isn't for the math-averse, the author's clear presentation and obvious enthusiasm for his subject help make this book a compelling choice for anyone faced with adding realistic motion to computer games or simulations.
It's the clear, mathematical presentation here that makes this title a winner. Starting with the basics of Newtonian mechanics, the author covers all the basic equations needed to understand velocity, acceleration, kinematics, and kinetics, among other concepts. A knowledge of college math (including calculus) is assumed. (Appendices review the basics of matrix and quaternion mathematics for those needing a refresher.)
Central to this book is its presentation of modeling projectiles, airplanes, ships, and cars. The author first presents essential mathematical concepts for each kind of object (for instance, pitch, yaw and roll, and lift for airplanes; modeling fluid drag for ships; and braking behavior for cars). For many chapters, Bourg then presents Windows-based DirectX programs in C++ to illustrate key concepts. For example, you can experiment with different parameters to view a cannonball's path. (On their own, these programs make this book a great companion text to any advanced high school or college physics course since students can see the effect of each variable on the behavior of each body in motion for a variety of equations.)
Modeling collisions is a central concern here (a necessity, of course, for action games). To this end, the author provides collision detection and the mathematics of 3-D rigid bodies for simulating when bodies collide. As the sample programs get more involved, the author discusses techniques of tuning parameters for performance. A standout chapter here models a fluttering flag using particle systems.
In all, this text proves that physics and computers are a perfect match. The author's patient and clear mathematical investigations of common formulas and concepts can add realistic motion to any computer game, as well as help teach essential concepts to any student or hobbyist who's interested in physics and doesn't mind a little college-level math. --Richard Dragan
Topics covered: Mathematical formulas and sample C/C++ code for physics for simulations and games, basic concepts in physics, Newton's Laws of Motion, coordinate systems and vectors; mass, center of mass and moment of inertia; kinematics (velocity and acceleration), constant and nonconstant acceleration, 2-D and 3-D particle kinematics, rigid body kinematics, angular velocity and acceleration, force (force fields and friction, fluid dynamic drag, buoyancy, springs and dampers, torque), 2-D, 3-D, and rigid body kinetics; collisions (impulse-momentum, impact, linear, and angular impulse), projectiles (simple trajectories, drag, the Magnus Effect, variable mass), simulating aircraft (geometry, lift and drag, controls), simulating ships (flotation, volume, resistance, and virtual mass), simulating hovercraft and cars (including stopping distance and banking during turns), basic real-time simulations (integrating equations of motion, including Euler's Method), 2-D rigid body simulator, implementing collision response (including angular effects), rigid body rotation (rotation matrices and quaternions), 3-D rigid body simulator for an airplane (including flight controls and rendering), multiple bodies in 3-D (including implementing collisions), particle systems, reference tutorials for vector, matrix, and quaternion mathematical operations.
By applying the laws of physics, you can realistically model nearly everything in games that bounces around, flies, rolls, slides, or isn't sitting still, to create compelling, believable content for computer games, simulations, and animation. This book serves as the starting point for those who want to enrich games with physics-based realism. Part one is a mechanics primer that reviews basic concepts and addresses aspects of rigid body dynamics, including kinematics, force, and kinetics. Part two applies these concepts to specific real-world problems, such as projectiles, boats, airplanes, and cars. Part three introduces real-time simulations and shows how they apply to computer games. Many specific game elements stand to benefit from the use of real physics, including: the trajectory of rockets and missiles, including the effects of fuel burn off; the collision of objects such as billiard balls; the stability of cars racing around tight curves; the dynamics of boats and other waterborne vehicles; the flight path of a baseball after being struck by a bat; and the flight characteristics of aeroplanes.
You don't need to be a physics expert to learn from "Physics for Game Developers", but the author does assume you know basic college-level classical physics. You should also be proficient in trigonometry, vector and matrix maths (reference formulae and identities are included in the appendices), and college-level calculus, including integration and differentiation of explicit functions.