Thursday, January 24, 2013

Morgan - Wind Waves

New wind waves on the upper left.  There are no waves in the harbor where the ship is.
I now have wind waves working. They build in the open sea (which I approximate by depth) and refract and reflect correctly near shores.  I mostly performed tuning to the sailing, wind, and wave models so that the constants are all reasonable and basic sailing maneuvers work correctly.  I've never sailed a square-rigged boat, so I have no idea if the model actually feels right...but it feels kind of like a Bermuda rig with the jib down to me, which is a reasonable modern approximation.

Total list of changes tonight:

- Fixed G3D controller stick spin detection to always go the short way around the circle
- Exponentially weighted moving average to smooth spinning controller sticks at high frame rates
- Add extra drag for extreme rudder
- Made water height conventions consistent throughout the program
- Make ships turn to weather
- Made sailing backwards extremely slow
- Set wind speed consistent with the rest of the simulation
- Implement and tune wind waves
- Tuned boat physics to make tacking just-possible for the square rigged ship
- Increased steering at low speed
- Drop shadow behind compass

My plan for tomorrow's 1.5 hour window is to make this into an actual game by adding a goal and winning condition:

- Model the world
   - Islands
   - Add buildings for scale and texture
- Make race game:
    Place gates
    Running aground
    Time limit

This won't be a very mechanically aggressive game, but it will be A GAME, which greatly reduces my risk of failing the jam.  If I succeed at that then I can spend my weekend time allotment making a GOOD game.

On my wish list are:

- Firing cannons at shore targets
- AI ship-to-ship battles
- Wind shadows
- Different ship designs
- Full sailing mechanics: sweeps, sea anchors, changing sail plan, shooting out masts, manning the pumps, towing, tides, current, weather changes...

Here's my first video of sailing in action.  The tack in a square-rigger is a nail-biting exercise.


  1. Have you thought about having the camera reflect the inertia a little bit .. give it the feel of the man behind the wheel?

    1. That's a good idea! It currently moves to the left or right, to represent the side of the boat that you'd be on due to heel. It would be nice to move it farther back or to tilt up towards the horizon at "high" speeds.

    2. And perhaps at a high angular velocity ... have it lag behind the turn a bit ... I'm not sure if that'd actually feel better though ... camera tricks behind moving objects can be well tricky :)

  2. That is pretty astoundingly cool.

    I'd love to see the mini-map shown in the style of olde tyme nautical chart - black ink on parchment, with perhaps a faded blue for the water.

    1. That's what I originally did. But it didn't look right to me with the lo-fi sci-fi look of everything else, so I switched the colors to match the actual world (this leaves it looking more like a radar display, unfortunately). I think that shades of blue as a monochrome map would work for a popup, but might be too distracting to have on the minimap. Right now the minimap is not a huge success for actual navigation--I use it more for debugging to verify that the ship is where the system things it is over the terrain.