Game Development Reference
where f is the weight, m is the mass, and g is the acceleration due to gravity. This
means that on different planets, the same object will have different weights (but the
same mass) because g changes.
On earth, we assume g
10 m/s 2 , so an object with a weight of 1 kg will have a
weight of 1
10 kN. The kN unit is a unit of weight: kilograms, kg, are not a
unit of weight, despite what your bathroom scales might say! This causes scientists
who work on space prejects various problems: because g is different, they can no
longer convert English units such as pounds to kilograms using the conversion factors
found in science reference books. Pounds are a measure of weight, and kilograms are
a measure of mass.
So, back to buoyancy. Our block in the first part of figure 6.3 has a buoyancy force
of 10 kN. In the second part of the figure only half is submerged, so using the same
calculations, it has a buoyancy force of 5 kN.
Although we don't need to use it for our force generator, it is instructive to look
at the weight of the object too. In both cases the weight of the block is the same:
5 kN (a mass of 0.5 kg multiplied by the same value of g ). So in the first part of
the figure, the buoyancy force will push the block upward; in the second part of the
figure the weight is exactly the same as the buoyancy, so the object will stay at the
Calculating the exact buoyancy force for an object involves knowing exactly how
it is shaped because the shape affects the volume of water displaced, which is used to
calculate the force. Unless you are designing a physics engine specifically to model the
behavior of different-shaped boat hulls, it is unlikely that you will need this level of
Instead we can use a springlike calculation as an approximation. When the object
is near to the surface, we use a spring force to give it buoyancy. The force is pro-
portional to the depth of the object, just as the spring force is proportional to the
extension or compression of the spring. As we saw in figure 6.3, this will be accurate
for a rectangular block that is not completely submerged. For any other object it will
be slightly inaccurate, but not enough to be noticeable.
When the block is completely submerged, it behaves in a slightly different way.
Pushing it deeper into the water will not displace any more water, so as long as we
assume water has the same density, the force will be the same. The point-masses we
are dealing with in this part of the topic have no size, so we can't tell how big they
are to determine whether they are fully submerged. We can simply use a fixed depth
instead: when we create the buoyancy force, we give a depth at which the object is
considered to be fully submerged. At this point the buoyancy force will not increase
for deeper submersion.
By contrast, when the object is lifted out of the water, some part of it will still be
submerged until it reaches its maximum submersion depth above the surface. At this
point the last part of the object will have left the water. In this case there will be no
buoyancy force at all, no matter how high we lift the object: it simply is displacing no