Friday, November 4, 2011

Randomized metroidvania 08: initial architecture

I've got some initial architecture. It should now be possible to move from any room to any room. It certainly ain't pretty and is sometimes frustrating to get the jumps but it does allow you to get from one room to the next. I also added restricted regions to the world generation so the resulting map won't be as dense.

[it seems that transitioning from one room to the other sometimes "bumps" the player to a different spot... worked fine on my machine. I'll look a little closer into that code.]

Part of automating the process of creating room internals was changing the screen size to 32x21 tiles. Next up is adding sloped tiles for stairs, more variety, and more randomness to the architecture.


  1. Having fiddled with it a bit, I've been trying to work out just how it's randomized. Are there different kinds of rooms, or are paths through rooms drawn, or walls placed in totally at random, or on paths, or...?

  2. For now the overall map (press [m] to see the map) is randomized. Some of the region details are a little random too, like max room width and height, how many doors each room has, and a few minor details. There's really not much that can be random yet but there will be more and more randomness added as more content is added. Eventually there will be a standard plot but the regions, enemies, and some items will be partially random.

  3. Is there any chance you could speak to the room generation process? You've been very kind sharing algorithms so far, and I've seen a lot of material covering similar subjects, but they're all really random (normally using something like Perlin noise), where yours...looks like Castlevania, lol.

    Anything is appreciated. Thanks again for all this!

  4. @Dhinanta, I'm not a big fan of Perlin noise when trying to make man-made structures. For the room architecture it basically makes the walls, knocks out the doors, then adds any stairs. For each screen-sized chunk where it needs stairs, it just picks one of several algorithms from

    Not at all impressive or clever but it does work.

    I've also worked on cavelike architectures that works by making everything solid and then digging paths that connect the doors. This works fine with top-down games but it has been much harder to get right with side scrollers that have jumping and gravity though.

    I've temporarily set this aside since I've been focusing on programming with event publishers and subscribers. Once I get a good handle on that, I'd like to return to this Metroidvania series.