Understanding map sizes, streaming and levels

So the maximum map size is 5km x 5km.

Say I wanted to create a level based game with loading screens, how do you approach this, you built one map after the other I assume and they are just loaded as a complete map after each level?

Secondly how does GTA V manage to have such a large map, I have read a few different sizes but’s it’s large, maybe 50km^2?

This is obviously streamed in chunks relative to where you are on the map, I guess a combination of LOD and culling type of idea?

So U4 supports streaming?

So why only 5km x 5km if it supports streaming, and how do you approach an open world game, do you just create one huge complete map and set it to stream and the engine will take care of the rest?


Correct, you can create your levels as separate maps and use “seamless travel” functionality to travel between maps. It is similar to Unity3D Application.LoadLevel(). This way is a bit rough right now, as you can not control from blueprints what objects should survive between maps traveling. However we are working on improving traveling between maps, and it should be much more friendly soon.

Another way to switch between levels, is to have almost empty persistent level and all your maps should be a streaming sub-levels. From a persistent level blueprint you can control which sub-levels should be loaded or unloaded. Similar to Unity 3D Application.LoadLevelAdditiveAsync(). In this case you don’t need to worry how to save game state between maps switching, because persistent level is never unloaded and all objects in it will be safe. Example how to control sublevels state here.

We are working on content example which will show how you can create and manage much bigger than 5x5km worlds.
You can read some details about this here