Rogue-Lite-Style Procedural Map Loading & Unloading

Hello,
I’m trying to build a procedural map generation tool like from a rogue-lite game and am unsure how to realize this.
The Idea is that the player progresses through different rooms, every room has some exit doors and when the user opens an exit door, a transition level (a hallway) is spawned and at the end of the hallway is another door behind which a new room is.

Now I was thinking the best way to develop the different rooms is that each room should be its own map. And which room gets spawned behind which door upon opening should be random (in classic rogue-lite fashion).

The problem I’m facing is how to load in a random room when the player walks through a door and unload the previous room. As far as I can tell, I can’t use the normal level streaming system with sublevels, because I don’t know in advance where the different rooms need to be placed since they have a random - not a static - order and a room might have different exit doors between which the player can choose.

Do you know how one could tackle this problem using unreal engine?

I think you first need to just read articles on the Internet about how game companies build level generation. What principles and laws do they use. There are many such articles. I am sure you will find many useful solutions and get new ideas.

If you have been registered in the Epic family for a long time and keep track of the set of assets that they give away every month, then look at your library, maybe you have a “Procedural Level Generator”.

*it was given away for free a year ago. You can also write to the seller and ask how he implemented and came up with it. Here is his mail zegi.diablo@gmail.com

1 Like

Thanks for the recommendations, I’ve already read quite a lot and looked at tutorials. But I haven’t found something that really matches what I’m trying to do:

Some use completely procedurally generated rooms, where I only want prebuilt rooms to be arranged in a random order. Others work with blueprints in the sense that each prebuilt room is its own blueprint actor.

I’ve already built a prototoype using the latter approach but the problem here is that building a level-part in a single blueprint is suboptimal because, for example, you can’t use brushes inside a blueprint. Working around such limitations is possible but introduces more complexity into the development workflow.

This is why I’m currently looking into using level streaming so each prebuilt room can be its own map file.

I sadly don’t have that generator asset but I’ll try to get in touch with the creator like you suggested and see if he has some advice for me. Thanks for your help!