Currently at my level, 99% of the scenario is made up of modular pieces like these windows and walls. I’ve read that this implies a lot of draw calls, reducing performance. I know there are ways to unify the entire building (or a set of buildings) into one thing to reduce draw calls, but the issue is that some of these windows are blueprints that take advantage of my game’s time system to change the material. If it gets dark, the material becomes emissive, “turning on” the window lights. How could I join all the pieces of this LEGO to reduce draw calls and still keep my windows dynamic?
How does it go in play mode ? are you running out of memory or feeling the performance drops ?
You can get away with a fair amount of modular pieces with world streaming on, anything outside the props loading range will be HLOD generated meshes of your buildings.
If your performance is struggling on 8192 for the cell size and loading range, then it may be something to worry about.
I did note you have Z -8.319 on your building. I have noticed that when using modular pieces there is a slight memory increase for using any angles other than 0,90,180,-90.
I have a bunch of props… prop circles, hexagon, octogon, dodeca builds and it chews up memory a fair amount more than the same amount of power 2 grid aligned props.
If you haven’t already definitely add a cull distance volume:
Cull Distance Volumes in Unreal Engine | Unreal Engine 5.6 Documentation | Epic Developer Community
For the window materials - if all the windows of the same type get dark at the same time, they can all share the same runtime material instance, which would be better for performance).
If all windows of the same type need to change at different times, then each would have to have its own runtime material instance, which would be lower performance.