Birdoggydog's Builds

Moving the game onto the half-width island in Godot

The test island became the real world. How the way down, the town, the sea and old saves were fitted to the smaller ground.

The half-width island I tried yesterday is now the game’s world. The game opens a half-size version of the island built by the new world generator, which is 5,120 meters across. The town, the way down and the sea are fitted to it, and saves made on the old island are moved onto it.

50 seconds: out of the exit lift, down the way down with its three hairpins, along the town street, then up until the whole island shows.

Why the new generator’s island?

I had said I’d shrink the real island as I’d tested it. Later the same day another branch had built an island with a new generator, and I asked for that one to be scaled instead. The build is the same scaling script as before, with a new source island. The game builds the island itself if it’s missing, so nothing has to be run by hand. The old 10 km island still opens with -- --island=wishbone.small.paint.

How was the way down fitted again?

The test showed what doesn’t scale, which is anything the game measures in meters. The way down is a deck 4 meters wide with ramps and hairpins, and it was laid out for the big volcano. way_down.py now works on any island: it reads the ground’s sampling from the manifest and the places (summit, via, mouth and street) from the old island times the island’s scale. It keeps the deck and ramps at full size and works the legs out again on the halved heights. The result is 918 meters with 3 hairpins, instead of 1,905 meters with 4, and each landing is clear of the next leg.

The town’s nine buildings are packed along the scaled 85 meter street in the same order with even gaps, ending 9 meters short of where the street rises. They were crowded with the roofs nearly touching before. Now none touch.

What about the sea and the saves?

The sea used to be the island plus 4 km, so its edge showed from 2 km up. It’s now a 12 km view past the island’s square on every side, whatever the island’s size. The Tower stand-in’s size steps are multiplied by the manifest’s scale.

A save now records which island and scale it was made on, and a save with no record counts as made on the old 10 km island. IslandMove moves the party when it loads. In a dungeon it keeps the same spot. In the old town it goes to the new street. On the deck or at any height over the ground it goes to the top of the lift. Anywhere else it takes the same place at half the distance, on the ground, and off the island it goes to the start. It never writes to the save.

What’s still wrong?

The new generator’s rivers float over its cliffs in places. The water check finds 190 river stretches more than 6 meters above their beds, up to 65 meters on the tall falls. The 10 km version has the same counts, so it’s the generator’s rivers and not the scaling, and I’ve filed it for that branch. One generator test fails because 7 fall ends are more than 1.5 meters off the ground, where 5 are allowed.

I left the lift head’s 13 meter walls at full size. They fill more of a lake half as wide, and I’ll size them with the tower that goes there. Walking speed, plant density and the distances for monsters stay in the game’s meters.

Also done

  • tests/world_shrink is new. The other world tests are pinned to the island they were written for, or scale by the manifest’s scale.