Replace FS1 with FS2-based resource management
FS1 acts as an extension layer over the native file system, allowing one to look up resources and locate other needed native files. FS1 is platform-dependent.
In contrast, FS2 in libdeng2 is a virtual file system that completely hides the native file system. It is completely platform-independent. File objects can represent any kind of data in addition to basic native files (ZIP archives, remote data over the network, dynamically generated information, etc.).
At the moment FS1 is deprecated and it should be removed in favor of FS2 based resource management. Note that unlike FS1, FS2's purpose extends beyond resource management.
In practice, resource management done on FS2 should be package-oriented and lookups should occur via fast in-memory indices.Open questions:
- How to ensure old resource packs can be used as-is? Compatibility mode?
#1 Updated by skyjake almost 8 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 10
Marking this in progress because the basic functionality for FS2 based resource management is being built to support the new 3D model renderer: .pack packages and assets with extremely close ties to both FS2 and Doomsday Script.
#2 Updated by skyjake over 6 years ago
- % Done changed from 10 to 30
DataBundle class now exists to interpret legacy data files into Doomsday 2 (runtime) packages.
#3 Updated by skyjake over 6 years ago
- Assignee changed from Deng Team to skyjake
#4 Updated by skyjake over 6 years ago
- Status changed from In Progress to Progressed
This should now be good enough for 2.0, work can continue at a later time.
#5 Updated by skyjake about 6 years ago
- Related to Feature #2192: Procedural images generated based on a text file (.deimage) added
#6 Updated by skyjake over 3 years ago
As work with version 3 continues, I expect the FS1 based code to be eventually retired.
#7 Updated by skyjake over 3 years ago
- Related to Feature #7: Next-gen renderer (codename "Gloom") added
#8 Updated by skyjake over 3 years ago
- Target version set to Architecture