Mending a boat by holding one button, and rowing at 11 m/s
· 4 min read · game-design, game-dev, cozy-game, three.js
The old boat of Sailor Tito is the piece that closes the first chapter of Lantern Valley. It is also where the crafts of the valley meet: fishing, the campfire, the animals and the garden each give a part of the boat, and the boat is what takes the player to the rest of the archipelago.
It is a short quest and a good example of a rule I applied to the whole game: things can be slow, but they cannot fail.

Three favors, three crafts, any order #
The boat needs 6 planks, 2 ropes and 1 sail cloth. The three favors open at the same time and can be done in any order, and each one uses a craft the player has already learned:
- Pinha gives the planks for 2 grilled fish. The campfire and fishing meet again.
- Old Knot, who mends nets on the beach, gives the rope for 2 fish of any kind. The game takes the most common fish first, so a rare one never leaves the bag by mistake.
- Aunt Wool, the weaver of the Golden Mill, lends her shears. The player shears 3 sheep, hands in the wool, sleeps, because her loom only works at night, and picks up the sail cloth.
So the boat is a proof that the valley works together. The only new verbs are the shears and the hammer.
Shearing #
The sheep shrinks and turns pink, because the wool on its body recedes and shows the skin, and the wool grows back in a day and a half of game time, 36 hours, a little at a time. A sheep that is your friend, with two hearts, gives two wools instead of one. Shearing also counts as petting, one point of friendship per day.
It is the same system as the animal care. A new verb added one new rule and did not need a new system.
The repair: hold E #
The repair is done by holding E on the boat, in three jobs that never fail:
| Job | Material | What you do |
|---|---|---|
| Hull | 6 planks | 7 hammer blows, each faster than the last, from 0.66 s down to 0.3 s |
| Rigging | 2 ropes | 4 pulls, and the rope snaps taut at the end of each |
| Sail | 1 sail cloth | 3 pulls on the halyard, and the sail goes up with a pennant on the mast |
Releasing only pauses. The material leaves the bag when the job is finished, so there is nothing to lose by stopping. If you are still holding E and have material for the next job, it carries on by itself. The boat shows what has been done, from a gray, cracked hull to a white sail.
The hammer that speeds up is the part I care about. It is a small reward for staying with the action: the first blows are slow and heavy, and then it finds its rhythm.
The name #
When the boat is whole, a naming panel opens, and the world waits. It offers eight ideas, Seagull, Mullet, Firefly, Cloud, Tina, Bubble, Tide and Mermaid, or whatever the player types, up to 14 letters. Enter names it, and Esc leaves it for later. The name goes on a small plaque on the stern and it is what the boat's prompt says from then on.
Launching and rowing #
To launch, hold E behind the hull to push it across the sand, and when the bow touches the water the boat slides in by itself, with a big splash.
Rowing goes where the stick points, relative to the camera. It turns slowly when stopped and faster when moving, loses speed in wide turns and slides a little after you let go. The pier and the shallows hold the boat, and it slides along the edge instead of getting stuck. At the edge of the valley's waters, the mist returns the boat with a message.
Speed was a design decision #
My first rowing speed was 4.8 m/s, and it was slower than the character's run, 7 m/s. It felt wrong, and the number explained why: from the bay to the pier of the Atoll is about 250 meters, and that was about 53 seconds of rowing.
Now it is 11 m/s at full oar, so the same trip takes about 25 seconds. The slide at the end, about 5 meters, and the turn rate, 2.4 radians per second, grew together, so the player can still stop at a pier and make the turn of the channel. Everything is in a tuning table in steer.js.
The lesson I keep: a boat is a transport, and a transport that is slower than walking is a punishment.
The buoy #
About 50 meters from the beach there is a red and white buoy. When the boat gets there, the bell rings, the quest closes and the Oar enters the tool wheel. The boat stays where it was left, and goes back on board at the same place after you reload.
The boat also shows up on the map, as a small orange hull with its name, and clicking on it takes the character to its side.
You can try it at lanternvalley.vercel.app.
Related projects
- Lantern Valley — Cozy adventure game for the browser