It's Still Loading?: Scott Bilas on designing a file system to support today's games.
Every year, engineers are handed more and more content to churn through their game engines, often with the files numbering in the thousands and filling up multiple CD's. Designing a file system to efficiently deal with this kind of quantity will take some careful planning. It will have a significant impact on memory footprint, load times, and general game play chunkiness. Plus, during development it will affect the overall production process, the frustration level of the team, and the tightness of the feature-to-bug-to-fix loop. This paper describes the requirements of a "good" file system and then details how to design and build one. Topics covered include: resource packages, proper use of memory mapping, integrating filters and compression, building tools for packaging, and production process gotchas that proper planning can easily solve.