Project

General

Profile

Feature #1647

Replace FS1 with FS2-based resource management

Added by skyjake over 6 years ago. Updated 4 months ago.

Status:
Progressed
Priority:
High
Assignee:
Category:
Redesign
Target version:
Start date:
2013-10-31
% Done:

30%


Description

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?

Related issues

Related to Bug #1038: [Unix] Locating resource files (wad/pk3)Closed2012-05-11

Related to Feature #1601: Package managementIn Progress2014-04-18

Related to Feature #1216: Using alternative resources alongside the originalsRejected2003-06-30

Related to Feature #1755: Use FS2 for runtime filesClosed2014-04-18

Related to Feature #1756: URIs for locating/identifying resources and assetsRejected2014-04-18

Related to Feature #2192: Procedural images generated based on a text file (.deimage)New2017-01-10

Related to Feature #7: Next-gen renderer (codename "Gloom")Progressed2003-07-10

History

#1 Updated by skyjake almost 5 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 3 years ago

  • % Done changed from 10 to 30

The DataBundle class now exists to interpret legacy data files into Doomsday 2 (runtime) packages.

#3 Updated by skyjake over 3 years ago

  • Assignee changed from Deng Team to skyjake

#4 Updated by skyjake over 3 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 3 years ago

  • Related to Feature #2192: Procedural images generated based on a text file (.deimage) added

#6 Updated by skyjake 4 months ago

As work with version 3 continues, I expect the FS1 based code to be eventually retired.

#7 Updated by skyjake 4 months ago

  • Related to Feature #7: Next-gen renderer (codename "Gloom") added

#8 Updated by skyjake 4 months ago

  • Target version set to Architecture

Also available in: Atom PDF