It’s time for an overworld generation update!

This is how terrain looks at the moment. However, what I want is for parts of the world to be accessible only after collecting certain items.

For example, there could be a plateau accessible only via a mountain path where you have to use the spring item to jump across gaps. This is a kind of lock-and-key puzzle because you have to collect the spring first and it acts as a sort of key for unlocking areas protected by holes.

As it is, this terrain simply won’t do that.

Lock and key puzzles

I’ve previously written a library called metazelda to generate lock and keypuzzles before and I use this to design dungeons for Lenna’s Inception

Above is an example dungeon. Here is a legend for reading and understanding it:

  • Circles are rooms, black edges joining two circles are links (doorways between rooms).
  • The player starts at the room containing ‘Start’ andthe aim is to get to the room containing ‘Goal’.
  • Rooms can contain symbols - represented by letters. The player collects the symbols of the rooms they’ve passed through.
  • Edges with letters on them require the player to have collected the symbol with that letter to unlock that door.
  • The colors are a heatmap of the relative difficulties of the rooms in the dungeon. Red - difficult; blue - easy.

This is how the terrain I showed earlier looks divided up into screens. I’m also using changes in terrain height as room borders, so there are sometimes multiple ‘rooms’ per screen, and they don’t all line up in a grid.

The present version of metazelda didn’t lend itself to natural-looking terrain because for it to work each room must be the same size and lined up on a grid. So I’ve been refactoring it.


the procedural generation machinery is all very modular, so I’ve been using this image as a unit test for the lock-and-key puzzle generator. Each area of color is a distinct room.

After the refactoring, metazelda can make a non-grid-aligned lock and key puzzle out of the blobs of color.

There’s still a lot of work to do to tile these ‘rooms’ before it can become something playable!

blog comments powered by Disqus