The use of physics
in video games is not something new. Many of us lovingly remember
Lunar Lander
and Marble Madness.
The gameplay in such games fully consisted in interacting with
gravity. Today it's new technical solutions that enable an advanced
management of physics in mass-market games that is the novelty.

Physics management is quite demanding in terms of computing power.
Thanks to the increased sales of multicore CPUs and the availability
of dedicated physics cards (such as that developed by Ageia),
a much more intense use of physics in games may now be considered.

The real question in
such cases is what we are to do with this new resource. Until now,
the use of physics in action games was most often limited to cosmetic
effects. These are important for the gamer's immersion in the world
but don't really change the gameplay.

The question is now to know
what the possible applications in terms of gameplay are. How are we
going to provide the gamer with new experiences?

The purpose of this
article is to offer some answers and share my experience which I
gained while designing the CTF-Tornado
multiplayer map, one of the maps available in an Unreal
Tournament 3 mod designed to take
advantage of the processor developed by Ageia.
The map was developed by the talented Gameco
Graphics studio.

Part
One: Introduction

Definitions

Let's
start with a few definitions. The scope of physics is not limited to
gravity simulation and collisions between objects. Physics also
includes the following applications:

Fluid dynamics,
either liquid or gaseous

Distortion of
soft objects such as fabric or of hard objects such as metal plate
or even solid hollow objects

Simulation of
friction and viscosities

Changes in the state
of matter such as the passage of water from the liquid state to the
solid state

Breaking of materials

Thus
physics covers a wide scope of issues, some of which have never been
used in games. The potential is huge but the issues faced by the
developers are equally challenging.

Challenges arising from
the use of physics in games

There are several
challenges:

The
requirements in terms of computing capacity

The challenge
in multiplayer games

The incompatibility between the scripted dimension of certain games
and the chaotic nature of physics

Let's take a closer
look at each of them.

The requirements in
terms of computing capacity

Physics management
requires a huge computing capacity. It is
not by accident that physics has not been widely used in games so
far, despite the fact that good software physics engines like Havok
have been available for several years.

In the current
games, only a very small portion of the CPU power is allotted to
physics, between 10 and 25% of a single core. Yet, physics requires
considerable resources. Let's consider the simplest case, that of
collision management.

The movement of each dynamic object is managed
by many parameters (direction of movement, speed, rotation on
multiple axes) which must be recalculated for each image. Then,
interactions among dynamic objects must be calculated. Ten dynamic
objects that are packed against each other require far more
calculations than if they did not touch each other. Two technical
solutions are available:

The arrival of
multi-core CPUs will provide a massive
amount of CPU power. Dual-cores are still too weak but quad-cores
will begin to bring the power needed for massive applications of
physics. Will it be enough? We don't know for sure. Quad-cores will
provide much more power than we currently have, but game engine
requirements will increase accordingly and there is no guarantee
that there will be enough extra power left for physics applications.
Furthermore, programming multiple cores is more complex and
generates its own overhead. We might have to wait for eight--core
processors.

The second
solution is the use of dedicated physics cards such as the one
manufactured by Ageia. Like any new hardware, it will pick up when
enough exciting applications will be available, which in turn will
be developed if the installed base is large enough.