Have one to sell? Sell yours here
Tell the Publisher!
Id like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Physics for Game Developers [Paperback]

David M Bourg
2.6 out of 5 stars  See all reviews (11 customer reviews)

Available from these sellers.


‹  Return to Product Overview

Product Description

Amazon Review

Aimed at the game developer or student/hobbyist interested in physics, Physics for Game Developers reviews all the maths 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 "mathphobe", the author's clear presentation and obvious enthusiasm for his subject help makes 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 equations needed to understand velocity, acceleration, kinematics and kinetics, among other concepts. A knowledge of college maths (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 modelling 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, modelling fluid drag for ships and braking behaviour 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 behaviour of each body in motion for a variety of equations.)

Modelling 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 maths. --Richard Dragan

Review

"....If you are a game designer who wants to improve the fundamental physics underpinning your virtual world, this book is for you." -- Keith-Schengili-Roberts, Computer Paper

"....While it is definitely not for the math averse (the first integral sign appears on page 6), PGD is clear, concise, and beautifully produced." -- Gregory V. Wilson, Dr Dobbs Journal, June 2002

An excellent book…After reading this book, you won’t think about classical mechanics or translating a model into executable code as a dry subject. -- Bill Schweber, EDN Magazine, April 18, 2002

Clear, concise, and beautifully produced -- Gregory V. Wilson, Dr Dobbs Journal, June 2002

Do not let the basic calculus and vector algebra scare you away the explanations are clear and down to earth. -- Brian D Foy, The Perl Review, April 2002

For the experienced game developer who is looking to learn about physical simulation... -- Jeff Lander, Game Developer, March 2001

It's really good seeing all this stuff put together in
one relatively concise volume, and I think that Bourg
has done a bang-up job with it. -- Martin Heller, Byte.com, March 11, 2002

Teachers in secondary school physics courses should finds it a useful resource for the way it explains and presents mechanics and physics. -- Major Kerry, Book News, March 2002

This book is highly recommended to both game programmers and physics teachers. -- Computer Shopper, April 2002

From the Publisher

Colliding billiard balls. Missile trajectories. Cornering dynamics in speeding cars. 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. Physics for Game Developers serves as the starting point for enriching games with physics-based realism.

About the Author

As a naval architect and marine engineer, David M. Bourg performs computer simulations and develops analysis tools that measure such things as hovercraft performance and the effect of waves on the motion of ships and boats. He teaches at the college level in the areas of ship design, construction and analysis. On occasion, David also lectures at high schools on topics such as naval architecture and software development. In addition to David's practical engineering background, he's professionally involved in computer game development and consulting through his company, Crescent Vision Interactive. Current projects include a massively multiplayer online role-playing game, several Java-based multiplayer games, and the porting of Hasbro's "Breakout" to the Macintosh.

Excerpt. © Reprinted by permission. All rights reserved.

CHAPTER 6 – Projectiles

This chapter is the first in a series of chapters that discuss specific real-world phenomena and systems,such as projectile motion and airplanes,with the idea of giving you a solid understanding of their real-life behavior.This understanding will helpyou to model these or similar systems accurately in your games.Instead of relying on purely idealized formulas,I 'll present a wide variety of practical formulas and data that you can use.I 've chosen the examples in this and the next several chapters to illustrate common forces and phenomena that exists in many systems,not just the ones I 'll be discussing here.For example,while Chapter 8 on ships discusses buoyancy in detail, buoyancy is not limited to ships;any object immersed in a fluid experiences buoyant forces.The same applies for the topics discussed in this chapter and Chapters 7,9, and 10.

Once you understand what 's supposed to happen with these and similar systems,you 'll be in a better position to interpret your simulation results to determine whether they make sense,that is,whether they are realistic enough.You 'll also be better educated on what factors are most important for a given system such that you can make appropriate simplifying assumptions to help ease your effort.Basically,when designing and optimizing your code,you 'll know where to cut things out without sacrificing realism. This gets into the subject of parameter tuning . Over the next few chapters I want to give you enough of an understanding of certain physical phenomena that you can tune your models for the desired behavior.If you are modeling several similar objects in your simulation but want each one to behave slightly differently,then you have to tune the forces that get applied to each object to achieve the varying behavior.Since forces govern the behavior of objects in your simulations,I 'll be focusing on force calculations with the intent of showing you how and why certain forces are what they are instead of simply using the idealized formulas that I showed you in Chapter 3.Parameter tuning isn 't just limited to tuning your model 's behavior;it also involves dealing with numerical issues,such as numerical stability in your integration algorithms.I 'll discuss these issues more when I show you several simulation examples in Chapters 12 through 17. I 've devoted this entire chapter to projectile motion because so many physical problems that may find their way into your games fall into this category.Further,the forces governing projectile motion affect many other systems that aren 't necessarily projectiles;for example,the drag force experienced by projectiles is similar to that experienced by airplanes,cars,or any other object moving through a fluid such as air or water.

A projectile is an object that is placed in motion by a force acting over a very short period of time,which you know from Chapter 5 is also called an impulse.After the projectile is set in motion by the initial impulse,during the launching phase,the projectile enters into the projectile motion phase,in which there is no longer a thrust or propulsive force acting on it.As you know already from the examples presented in Chapters 2 and 4, there are other forces that act on projectiles.(For the moment I 'm not talking about self-propelled "projectiles "such as rockets,since,owing to their propulsive force,they don 't follow what I 'll refer to as classical projectile motion until after they 've expended their fuel.).

In the simplest case,neglecting aerodynamic effects,the only force acting on a projectile other than the initial impulsive force is gravitation.For situations in which the projectile is near the earth 's surface,the problem reduces to a constant acceleration problem.Assuming that the earth 's surface is flat,that is,that its curvature is large in comparison to the range of the projectile,the following statements describe projectile motion:
_
The trajectory is parabolic.
_
The maximum range,for a given launch velocity,occurs when the launch angle is 45 ..
_
The velocity at impact is equal to the launch velocity when the launch point and impact point are at the same level.
_
The vertical component of velocity is zero at the apex of the trajectory.
_
The time required to reach the apex is equal to the time required to descend from the apex to the point of impact,assuming that the launch point and impact point are at the same level.
_
The time required to descend from the apex to the point of impact equals the time required for an object to fall the same vertical distance when dropped straight down from a height equal to the height of the apex.

‹  Return to Product Overview