Caleta Salobre: a fishing village with a walkable pier in Godot 4
The town on Gotic's east coast has a pier, moored boats and fish-drying racks. That pier ended up hosting the fishing, rowing boat and regatta mods.

A road heads east from Brumacosta's arch. After 304 m you reach Caleta Salobre: blue and ochre bunting on the arch, the name in turquoise letters, hens wandering around, Nel running the post office on the right and, at the end of the street, the sea. Sela, the fisherwoman, is on the pier. Bruno, the skipper, tells you that on clear days you can see the tower of Altomira from there, up on the plateau.
It's the easiest road on the island, with a maximum slope of 0.05. The interesting part of this town isn't getting there, it's what's waiting at the end of the street.
How it's built
Caleta uses the same builder as every other town (game/village.gd). What makes it different is its landmark: "landmark": "pier". Its site came out of a survey of the terrain: flat, dry and 60 m from the sea, with the houses 3.3 m above the water.
The pier is a 22 m deck one metre above sea level. It has posts every 3.5 m driven half a metre into the seabed, two boats moored alongside and two fish-drying racks on the shore. It has collision, so you can walk all the way to the end. The tests check that it starts on land and ends over the sea, and that a ray cast down at the far end finds a floor.
At first it was just scenery. Later on it became a stage:
- Fishing: Abel, the old fisherman, waits where the pier begins. From the tip, the float lands in deep water (1.9 m).
- Boat: the rowing boat is moored at the tip, with 1.6 m of water underneath.
- Regatta: eleven buoy gates around the lagoon and the islet.
To decide where each fish can be caught, I measured the depth out from the pier. In the first 100 m it never gets past 2.2 m (there's a sandy islet 80–150 m to the east), and it goes beyond 15 m at around 200 m. That's why the open sea and its three species can only be reached by boat.
What went wrong
For a whole round, the pier had a hole nobody saw. Village._pier drew the deck's top, bottom and sides, but not its two ends. From land you couldn't tell. When the boat arrived, a screenshot taken at water level showed a hollow tip. I fixed it by closing both ends on both faces, just like the sides:
# The deck's two ends (from the boat, at water level, it looked hollow), on both faces like the sides.
var down := Vector3(0, -0.22, 0)
for end in [a, c]:
b.quad(end - side, end + side, end + side + down, end - side + down, WorldArt.WOOD.darkened(0.1))
b.quad(end - side + down, end + side + down, end + side, end - side, WorldArt.WOOD.darkened(0.1))
The test looks through the mesh for triangles facing along the pier right at its tip and requires at least four. I watched it fail without the fix before accepting it. It's another take on a lesson I'd already written down: a good-looking screenshot doesn't prove a piece is right. Someone has to look at it from the angle nobody had tried yet.
Still unverified
The towns round finished with 672 passing checks. The APK was installed on the phone, but the screen was off and locked, so FPS with the new towns has not been measured. This screenshot cost 426 draw calls and about 103,000 triangles on PC. I also haven't heard the waves in the ambient sound yet.