Programming‎ > ‎

Streaming

Is it still loading?

Streaming is when content is loaded when it's needed. Content in this case is any form of assets, ex are textures, animation, models or sounds. A game with a small level can load the whole thing in memory at the start of the game but if the level is big like a fantasy world or very detailed then not all data about it can be loaded at the same time.

No Streaming

This can be used if the platform have enough memory to keep the whole level in memory. Large levels or levels with lot of details can make it impossible as it is to much data.

Lod Streaming
This system focus on the content only and ignores it's relationship to each other. If a model or texture is used it will be flagged and loaded and then purged when it has not been used for a while. For some content the low LOD's can be kept in memory so something is always visible. So a texture that is used before it is steamed will look blurry until it is fully loaded.

Region Streaming
The levels is split into regions with each area have it's own separate list for the content it needs. The section between the levels is marked as transit zones that handle the loading of the next area the player is going to. Most game make them on direction only to stop the player from going back as the old region is now unloaded. Common ways is to close doors, drop down the player along a ledge or let the roof fall down and block the way behind the player. Another goal of the transit zone is to give the system enough time to stream in the next region. So often there need to be a minimum amount of time before the player get far enough to see the next area. That can be handled by slow elevator, doors that open when the region is loaded or force the player character to walk and talk in the transit zone.

Area streaming
In a open world scenario area streaming with tile like areas is used. Each tile is a section of land of say 100x100 meters and as the player moves around they are streamed in and out as needed.

Reference


Comments