Download

Performance and Modular Level Creation

I’m not super sure how to ask this question so its going to be a little bit of txt to explain what I’m trying to do here and what my concerns are.

I’m looking to create a game or proof of concept that gives a good sense of exploration each time you play it, for a lot of the environments I was looking to see if it could be generated semi randomly at level creation. The way I was looking at this was by defining a system of Plots (Individual buildings, structures etc) and Plot Blocks (Layouts to be populated by plots) through blueprints, so target points in a Plot Block Blueprint call to different Plot Blueprints to be generated at level loading. This system is then saved by calling the stored names of the plot blocks and plots back when needed for loading.

Plotex.png

Above is an image that generalizes the idea, you have set sized plots that then fill their locations by assigned plot sizes, so you may have ten different plots at size one that can populate those spots and then you have different layouts for plot blocks to give another sense of uniqueness. My concern is the performance hits if any this creates, I looked through the tutorials and this seems possible, unless I missed something so please let me know if I did. As well as if it would just be a waste of time as it would obviously be to costly on hardware and I’m missing something associated with that. Also any suggestions or comments would be grateful and if this is worded confusingly I will do my best to elaborate.

That all depends if you generate plots at runtime or in editor.

All because at runtime you will have only dynamic lights (or unlit) for those buildings, which is quite demanding for big city.

When you create it all in editor, but from blueprints, engine will back lightmaps during build process, so no big performance hit.

Personally if i was you i would make box 100x100x100, put it as instanced mesh in blueprint, then make that bp spawn big box of xyz boxy instanced meshes
Then i would try your layout filled with those boxes made out of boxy mesh. That will give you idea about performance for city with almost no work involved.
Because of lack of any optimization for this, you can estimate about same speed with optimization and additional features that will slow everything down.

Yeah, you can definitely do that. The main issue as Nawrot said is lighting–in the editor you can use baked lighting, but if you generate it randomly in-game then it can only use dynamic lighting and that can have an effect on performance.

Looking into possibilities to get this to work. Is there a way to create a light map that sticks with the blueprint? Also is there a way to have the level loading create a lightmap after it has set up what blueprint will spawn where? As i dont need them to load dynamically in play i just want to be able to create a random layout for most of the level at start.

Alright trying to test this and I’ve come across an error with the blueprint I’m more than sure I set it up wrong and I’m trying to see it. Below is the blueprint which calls for the relative locations of three spots from the blueprint to be the plot block. What its doing is spawning one of the Plots at the correct location and the other two spawn relative to the center of the world at 0,0,0

e0ae45712133ee1c1505c90cc38c6eee52d50c22.png

eab792e2cacddbdffa6cff513923ebe6fb9aa815.jpeg

Below is the Image of where it should be spawning the circles highlighting the points and the arrow showing where the other two are spawning around

OverviewplotError1.jpg