Procedural 2D Worlds

I recently came across this writeup by Nick Gregory about generating an explorable 2D platformer world.

Metroidvania-style platformers are 2D games that are built around the idea of large, explorable worlds. This presents some interesting challenges for procedural generation, but also some opportunities.

Nick presents a procedure for building rooms within the world that conform to the needed properties: you have to be able to get to the exits, for example. Platforms need to be high enough to be interesting but not so high that you can’t jump onto them.

It’s interesting to contrast this with something like Spelunky, which is in a similar space but takes a very different approach to level generation.

https://imgur.com/gallery/fM9yn