Metroidvania Generation

Non-Euclidean Trickery

A major challenge shared by both Metroid-style generators and randomizers is that it’s really hard to shuffle existing room designs into a novel arrangement that can still be drawn accurately on a 2D map.

One common solution is to teleport between rooms, which lets you place and “connect” them however you like, but itresults in spaces that don’t really feel like Metroidvania dungeons anymore. Since replicating “Dungeon Feel” was the main goal for this project, I had to find a better way to keep generation fast while still making everything feel cohesive.


rigid_rooms_with_subunit_lines_cropped.PNG

Tightly constrained rooms are boring

This is how most metroidvania-style generators work — if we want two rooms to connect, they must share an exit with a matching XY position. That results in room designs that feel boxy and repetitive.

non-euclidean-rooms-overview.PNG

Loosely constrained rooms are tricky to arrange

The fewer constraints there are on rooms, the cooler they can be, but all that complexity makes it hard for the generator to build worlds out of them. These designs still fit into a grid, but their exits won’t line up.


My solution to this problem was to “spoof” perfect connectivity between adjacent rooms using Non-Euclidean Trickery™.

disjoint_rooms.jpg
room_slides_loop_gif.gif

By instantiating and aligning rooms dynamically, we can place room exits anywhere we want along room edges, getting us the best of both worlds — flexible rooms that are just as easy to place as their rigid counterparts while being way more fun to design and play.

With some clever camera movements, we can almost completely disguise the discontinuities. I was really surprised by just how normal this feels in context — you may not have even noticed it in the other gameplay videos!

Just some regular platforming, nothing to see here…

… except that several of these rooms would overlap one another in physical space, if they were actually loaded in at the same time!

Previous
Previous

Room Design Talk

Next
Next

Celeste-like Tilesets