To start, we have made great strides in the engine (we are
using CryEngine) as far as understanding the structure of the entities and how
we can utilize the system to make for realist buoyancy for vessels. We have
gone through at least 40 different iterations of vessels and physical proxies
to get to the final version that allows us to make the vessel not only buoyant,
but also stable (or unstable) based on the bounding box of the object in
addition to its mass. What that leaves us with is a very easy to utilize system
with mass objects that are movable to simulate the mass of the vessel, any
cargo it might take on, and also any damage it receives. With these base
objects we can make a vessel move in a realistic way with the utmost of simplicity
for the program to handle.
This works by letting the objects each independently move to affect the buoyancy. As soon as the class is finished it will allow for vessels to be imported through XML files so that modders can set their own parameters as to how many and how much can be created for each mass object. This will allow them to put a maximum load that vessels can carry through each location, say if they want to have 2 cargo holds, each with a maximum weight they can carry. The engine will allow the player to put cargo into different holds so that (a smart captain) would put the heaviest objects the lowest to improve stability. But things like cannonballs have to be kept close to the gun decks to improve speed of reloading. Loading cargo can make your ship more powerful in combat or more stable in storms!
In addition to the mass objects, any object connected to the ship that has mass will be physicalized and its mass will also be accounted for as part of the vessel. Adding larger masts, more rigging, and more hull decorations will have a real impact on buoyancy and stability. Oversized sails might look cool, but they will likely capsize your boat! You also might want to rethink those heavy decorations attached to your vessel if you plan to carry a lot of cargo. Any weight saved can help your stability!
We are always looking for more ways to improve the system so head over to www.PiratesAhoy.net to submit your suggestions.