Game Development Reference
In-Depth Information
energy of the bullet that blows apart the thing you hit, but some secondary explosion.
In the case of a tank hitting another tank, the molten slag from the impact is usually
peppered all over the inside of the tank, causing the fuel or ammunition to explode.
That is where you get the big booms—it's the conversion of chemical energy to heat,
light, and pressure!
The most common method of quantifying the chemical energy in weapons is called
TNT equivalency . This is how much TNT it would take to cause the same explosion
regardless of what you are actually exploding. Now, explosion modeling of, say, gasoline
and air is pretty complex, so let's stick with TNT. A kilogram of TNT contains 4.184
Mega joules of energy; a 9 mm round has 400 J. You can see from that comparison why
it is hard to blow something up by shooting at it, but easy to do with a block of TNT.
For the purposes of this discussion, let's say you have an open box (five polygon sides)
into which your player just tossed a 1 kg block of TNT. When the TNT is detonated,
you can give each polygon side an initial velocity (translational and angular) and let the
kinematic equations take over. Those velocities can be based on two simple rules.
• The velocity vector can be defined by two points: the center of the block of TNT
and the center of area of the polygon.
• The sum of all the kinetic energy must be less than the available chemical energy
in the TNT. This can be prorated by the square of the distance from the polygon to
the block of TNT.
The use of the center of area in our first rule will impart some rotation into our polygon,
as it will cause a moment about the center of gravity unless the two coincide. If this is
the case, as it would be for our box, aerodynamic drag and unevenness of the explosion
will still cause rotation, so you should either model these explicitly or impart some
rotational velocity manually.
Now that we have a velocity direction, we need to define its magnitude. The force on
objects near an explosion is caused by the rapid expansion of gasses due to the heat
generated by the detonation of the explosive. However, not all the chemical energy is
transferred to the objects—a lot of it is converted into heat, light, and sound. Typically,
only one-third of the available chemical energy is converted in the initial detonation.
Let's call this the efficiency of the explosion, which we'll denote by ζ. Therefore, we can
write the relationship between velocities of the polygons as follows:
3 1
ζE chemical = i =0
2 ( m i v i 2 + I i w i 2 )
Here, we can tune ζ to give the polygons realistic velocities in the event of an explosion
(i.e., not sending them off at the speed of light). If the energy from the explosion is