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 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.
A nice summary of some of the most common scenarios in videogames and the basic physics behind them. It was interesting for me as I understand the physics but I had never spent much time thinking about the difficulties of implementing it in a videogame. The code examples make the discussion more concrete and are good for curiosity even though presumably you wouldn't code these things yourself with modern engines (and definitely not in C++).
David M. Bourg, Physics for Game Developers (O'Reilly, 2002)
It seems to me that when you're confronted with a book title like Physics for Game Developers, you see an undercurrent of “rocks for jocks” in that. It implies that this is physics for folks who never glommed onto physics. As someone who never got above a C in any science class after Biology I in tenth grade, then, it would seem to be right up my alley. Not so. The first five chapters of the book will kill you if you're not familiar with various forms of scientific notation. (Know your Greek letters!) It doesn't help that Bourg has overloaded a few common operators for his own means (for example, he uses * for dot product and ^ for conjunction, when coders will be used to seeing those to symbols used for multiplication and exponentiation respectively). That said, however, once you get past the first five “refresher” chapters, the book picks up a good deal. There's code! And once Bourg is describing what code does, rather than attempting to impart more abstract (well, okay, “abstract” is not the right word, but hopefully you know what I'm getting at), his language becomes a great deal clearer, at least to those of us who think in code rather than physics. Worth picking up if you're in the market for this sort of book, but you might want to pick up a copy of Physics for Dummies to help you through the first part. ***
wtf lol. you don't need me to tell you "physics for game developers" is going to make your sphincter tighten in fear. O'Reilly's just screwing with us now.
I think I stole this from someone to save them a bunch of head-scratching that'd have done them no good in the end. They're a successful fleshpeddler in Tunis the last time I checked, just spinnin' pies and oglin' thighs. Good for them.