Game Development Reference
A DDING G ENERAL
looked at the mathematics of forces in chapter 3, which let us simulate any force
we like by calculating the resulting acceleration.
In this chapter we will extend our physics engine so it can cope with multiple
different forces acting at the same time. We will assume that gravity is one force,
although this can be removed or set to zero if required. We will also look at force
generators: code that can calculate forces based on the current state of the game world.
In part I we built a particle physics engine that included the force of gravity. We
D'A LEMBERT ' S P RINCIPLE
Although we have equations for the behavior of an object when a force is acting on
it, we haven't considered what happens when more than one force is acting. Clearly
the behavior is going to be different than if either force acts alone: one force could
be acting in the opposite direction to another, or reinforcing it in parallel. We need a
mechanism to work out the overall behavior as a result of all forces.
D'Alembert's principle comes to the rescue here. The principle itself is more com-
plex and far-reaching than we'll need to consider here. It relates quantities in a dif-
ferent formulation of the equations of motion. But it has two important implications
that we'll make use of in this topic. The first applies here; the second will arise in