Streaming Maps enable you; the user - to create enormous, enormous tile-based worlds while retaining excellent performance and a moderately-pleasant editor experience.
Note: Full source is included with Tidy TileMapper, so feel free to take a look in the meantime!
A Streaming Map is a data structure containing a large grid of Prefab references.
It effectively says:
At 0,0,0 I want the Block "Grass" to appear.
At 0,0,1 I want the Block "Water" to appear.
And so on, thousands upon thousands of times.
This is modifiable at runtime, so changes within your game (e.g switch has been flipped, door has been opened, treasure has been taken) can be reflected as the Block passes in and out of context.
At runtime, you inform the Streaming Map that you wish to draw all Blocks around a focus point (say: 10,10,10) within a radius (say: a 5 block radius). This will create a halo around your focal point, populating all Blocks. When you change your focal point, these Blocks will be added to a "Destroy" queue, destroyed over a number of frames (to avoid framerate stuttering) while your new focal point is being created (from a similar "Create" queue).
That's the lowdown!
Tidy Tile Mapper >