Game applications often use file archives to reduce file system clutter and improve performance when many small files must be opened and read by the application. While Nebula2 used a proprietary archive format (NPK), Nebula3 uses standard Zip files. This has a number of advantages:
- no self-written tools required to create the archives, just use the zipper of your choice
- simple file encryption supported
- smaller disc footprint
- usually higher read performance because disc bandwidth is often the bottleneck, not decompression speed
- no write support (not a big deal, NPK's didn't support writing either, and game resources are usually read-only anyway)
- No random access (no seeks), this is a bit more critical, and could be solved with a more advanced implementation. Currently this is circumvented by decompressing the entire contents of a in-zip-file into memory and allow seeking on this in-memory-copy. This approach basically disables all types of file-streaming scenarios (especially streaming audio).