Download

When to start level streaming?

How does one evaluate when it is time to go for a level streaming technique?
Of course it depends on what is your target pc/console spec BUT still the question remains in a generic way:
Should my LOADED assets memory size be a percentage of GPU RAM? Close to 100%? That way, if I have a 2Gb GPU should I load my game in 2Gb chunks (or a little bit less for safety)? Or most of the time GPU processing limits will factor into play much earlier?

How does CPU memory/processor comes into this? How much the level itself is loaded into the CPU? Does the engine by itself has a large memory footprint?

Are disk acess speeds (hdd/sd read rate) an issue? Fast moving games (eg. racing) might have to load up the next part of the map faster than slower moving ones.

I fully expect that the answer to all of this is: IT DEPENDS! Neverthless are there any guidelines to this? For a small developer it is very hard (impossible?) to test your product in a large range of machine specs (consoles are simples on this regard).

Something similar was asked here but not the entirety of what I would like to know:

https://forums.unrealengine.com/showthread.php?147001-Best-Practices-for-creating-game-levels-(partition-of-assets-into-different-sub-levels)

I too am curious about this stuff, I couldn’t find much documentation on the subject.

Well as a work flow habit level streaming is an excellent ways and means of being able to manage large environment projects that allows for more than one person to work on the same project at the same time.

As a feature addition “level streaming” is not a new thing unique to Unreal 4 and most 3d applications has made use of “referencing” for years that makes working on large scale projects easier as in saving rendering times and hardware resources.

For example in 3ds Max “level streaming” is called “x-referencing” that more or less does the same thing as it does in UE4 for the same reasons.
https://youtube.com/watch?v=GwfOUItbBx4
Soooo for our needs we start using level streaming at the beginning of every project, lighting and postprocess for example in it’s own level, and since the use of LS is based on habit and not on need decisions as to if and when to stream is easier to make as the requirements are already done.