How to set up a building for open world games?


I want to develop an open world game…
My problem is, that i don’t know how i should set up any building in UE4…
I want to create big buildings, which are enterable(hospitals, parking garages,…even skyscrappers, but i don’t know if only the 1st floor or the entire building, which could be a lag of performance)

There are several options I’m thinking of…

1- model the complete building in a 3D modeling programm ( I’m familiar with Blender and quite good at it )
-This means the building is only one part( with several LOD’s)
→ texture quality will be bad ( even if UV’s overlap )

2- like option 1, but with only a few seperate objects ( texture quality would be better, but not what I want )
also several LOD’s for each mesh
-roof = 1 mesh
-walls = 1 mesh
-floor = 1 mesh

3- I model several meshes like a wall, wall with window cuts, wall with door cuts… and put these together in UE4
- I llike this method because one can have good texture quality and edit the building in UE4 without changing the mesh in blender or whatever.
→ Is this method bad for performance issues, or could occlusion culling(precomputed visibility volume) help

Thanks for your patience :slight_smile:

Hi Koni,

Something like this would be good to do in a very modular (smaller meshes like lego blocks) way that can be built in UE4.

You can build the exterior in a way that fits your needs for modular pieces and then use Level streaming for the interior levels and each floor can be a level. These can all be modular as well. so that you can reuse assets as much as possible.

Level streaming and LODs will be key here on keeping some of the performance. Option 1 and 2 are a little extreme to do for larger objects.

I always like to use GTA with this kind of example as they do a bit with interior and exterior buildings. The exterior would be it’s own level composed of multiple meshes making up the building. As you get closer it would stream a level with the interior portion of the first floor that it is composed of it’s own meshes, then so on and so forth for the next floors (levels) to the top of the building or however much you wanted to do.

I hope this helps. Feel free to ask any questions if something doesn’t make sense.


thanks for your help !
I always thought about this system like in GTA, that you explained.
Does the streaming of levels work in multiplayer games, especially in my project ?
My project will be something like a shooter game and there will be firefights in- and outside of buildings, so you are able to look into those buildings.
Maybe I can stream those levels based of my current height, since you are not really able to look from the ground into the 5th floor…

My problem is to figure out how to make the LOD for multiple small meshes or how I could make the LOD for the complete building.

This would be a simple LOD set up of a wall
LOD 0 :6 faces;12 polygons|LOD 1 :2 faces;4 polygons]