Download

Tips for making a specific procedural maps

Hello everyone !

Im using UE 4.20 and i wanted to share with you how im gonna implement procedural maps on my game cause its kind of complex and i need to hear feedback from the community,

I want to use substance atlantis texture pack to create a procedural donjon for an horror game,
To do so i though about doing a simple room on a blueprint, and a simple corridor on another blueprint, and use a target point to assemble them easily,
Then i think i could use a blueprint to generate a procedural map :

  • It could take as input the number of room we want to generate,
  • The first thing he do is generating the first room where the player begin
  • And then generate the map based on the corridor blueprint and the room blueprint,

The thing is : a simple room count hundreds of meshes, maybe one thousand with all the decorative meshes, the effects and the lights, is it OK for a single blueprint ?
Furthermore, for the horror purpose, some of thoses meshs should be blueprints too like the walls, the floor and the ceil … Cause i need some trigger inside the room/corridor to spawn zombies, like make the ceil break and make zombies fall off.
I though i could create a lot of possible triggers like this and use the room’s or corridor’s blueprint to activate thems in the game based on a timer instead of a trigger box (So they spawn not only once and even if the player dont move).

I looked on internet but what i find dont mach my context,
I think about coding the procedural map generator in C++ instead of using blueprint to make it more optimal.

If you think about a better way to do this, dont hesitate to tell me, it would be greatly appreciated !
Im not aware of all the tools UE4 can provide to make this kind of project easier and im sure im not doing this right, like as the engine is intended to be used.

Hope my english is understandable,
Thanks for your help and have a great day !

You might want to have a look at Level Streaming.

You can also spawn levels dynamically via Blueprint using Load Level Instance by Name, which allows you to spawn sublevels at a targeted location.

You definitely don’t want to build your entire level inside a Blueprint Actor, build it as a Level instead.

Ok thanks for the tips DanDizard ! Im gonna take a look !

Yeah i didnt meant that my bad ^^,

Thanks, have a great day !

I have already create a map, im considering two way for creating procedural level, assuming it contain rooms and corridor that themselves contain several meshes like over 4 thousand :
The generation of the level is made by a BP,

  • I create a BP for the room and a BP for the corridor and i use them to generate the level,
    But it look like a BP is not made to contain thousand meshes.

  • I create them directly in the level instead and transform them as groups of mesh, and then i generate my level by copy pasting them end to end,
    And i could use level streaming to hide the originals groups so they dont influence the level’s perfs.

Here is a picture of what look like a room in the game :