Wednesday, June 08, 2011

How to control the boat

As I watch people play my game (friends and family), I've noticed that everybody tries to control the paper boat as if it were a real boat in the water.  They start with their finger on the boat, then drag it where they want it to go.  With real water, I see two ways of making the boat move without touching the boat, and without blowing.

One, you can put your hand behind the boat and make a wave that moves the boat.  Two, you can put your hand in front of the boat, then push water away from the boat to make a sort of slipstream.  People seem to use a combination of both, especially with the new control scheme which acts like blowing the boat.  So for really intuitive control, I need to make a sort of slipstream control.

Here's what I have in mind: when the user is just touching (not dragging), make a repulsion force at the touch point.  When the user is dragging, make a time-decaying slipstream.  Time-decaying means it's strong when they first make it, but over time it weakens and goes away completely.  I envision the slipstream only lasting maybe 3 seconds total, but only really giving a good push for 1 second.  If you drag along right in front of the boat and kind of lead it along, it will follow your finger, and if you make a quick curvy swipe it will follow the path for about 2 seconds and then continue with its own inertia.

One thing I like about this idea is it's a small-scale "fire and forget" type interaction, where you tell the boat (or leaves) where to move in the near future, and then you can do something else while they're moving.  Of course, you only get a few seconds in between each move, but that's good for a game.

I'll code this up soon and let you know how it goes.

No comments: