There are already some cursory ship movement mechanics in various places (Labyrinth Lord and the DMG, for example), but if your campaign is conducted largely on the water you might want something more interesting. I should also say that the following rules are a work in progress. I'd appreciate feedback.
I don't want to get too crazily simulationist here. There are well known real-world formulas for all of this stuff, but they're a little complicated for use in play. I asked myself: what sorts of sailing situations do I want the rules to highlight?
- Longer ships tend to have a higher speed.
- Wind is a big factor.
- Ships with higher displacement tend to be slower (like encumbrance).
- Being able to carry a larger sail area means more speed, but only to the point where there's enough wind to fill those sails.
- A racing yacht or warship will be faster than a cargo ship of the same length.
- In light winds, a smaller ship may be able to out-sail a larger ship carrying lots of cargo.
This is what I came up with. A ship has three attributes: Length, Sail, and Displacement. To determine the current velocity of a ship, you take those attributes and combine them with Wind.
V = W ( S + L - D )
This looks like a lot of variables for use on the fly, but S+L-D isn't going to change much once the ship is under way, unless the crew starts throwing cargo overboard. And that could be fun.
This only works if Sail is less than or equal to Wind, so the full formula would be (feel free to correct my probably nonsensical math notation) something like V = W (S + L - D), S ∈ [0,W]. A ship flying too much sail wouldn't gain any speed, would handle poorly, and might even capsize.
I haven't yet worked-out the range of these numbers, or how they translate into feet and knots and tons and so forth. They might have a range of perhaps 0-12, so a ship with a Length of 3 would be 30' long. I'll think more about that tomorrow.