For today's Gamasutra technical feature
, Fredrik Lönn from Avalanche Studios discusses proper content streaming techniques for next-gen consoles, such as those he utilized for the 1,024 square km terrain on Just Cause
In his introduction, Lönn explains that in both current-gen but especially next-gen systems, utilizing streaming techniques is crucial for optimal performance:
"With Sony's PS2 console, you had about 32 MB of memory to fill with data. With Xbox 360, there is 16 times as much space to fill, but the hardware to do it is essentially the same standard DVD reader. Getting anywhere near optimal use out of the DVD is turning out to be more important than ever. In Just Cause we were faced with the task of filling a huge, 32x32km large game world with interesting content - without loading screens."
One of the key bottlenecks, says Lönn, is the hardware itself, and the implicit waiting time for every drive seek:
"Some consoles only have a DVD for reading data. How fast we can read data depends on data layout and the quality of the media. Every time we switch layers to read from, it will cost us about 100 ms. In practice, you want all streamed data on a single layer and use the second layer for in-game movies or other data that is not used frequently. Each seek will cost us about 100 ms, and a safe estimate for sustained data rate is 10 MB/s. During the time we do one seek, we could have read 1 MB of data instead. It is almost always a good idea to duplicate data if it helps to avoid seeks. If you are designing for Blu-Ray and PS3, you will need to adjust these estimates."
He then outlines a number of techniques that the team at Avalanche used to stream Just Cause
's game world, including file system optimization, double buffers, and creating workable stream queue systems.
You can now read the full Gamasutra feature on the subject
(no registration required, please feel free to link to this column from external websites).