For the last few days I've been going back and forth a lot on different designs, changes, and then second- and third-guessing previous conclusions...
VPKs are fundamentally different because it potentially represents a
batch of maps, and maybe what I need to do is rewrite so that multiple maps at once is part of the core work-flow. (If you're working with an SDK that doesn't have VPKing, then it just limits your number of map-choices to one.)
So basically:
- Pick Steam Dir
- Pick Which SDK or Game to work with
- [Option to tweak "Asset Search Locations", ex. GCFs or folders]
- Pick maps (Possibly limited to just one)
- Option to tweak packing results
- Pick folder/file where everything should be sent to
Thus the entire campaign/expansion of maps is selected at the same time and packed as a unit. If you want to "clean out" assets that are no longer used, just make sure the destination add-on folder or VPK is empty.
_____
One potential ambiguity is this: Map BSP files are
themselves locations for assets... So what happens when both map1.bsp and map2.bsp depend on a file called "X", but "X" exists in two places, once on the hard drive and
also already-inside map1.bsp?
Map2 can't see inside Map1, so I put X into the VPK... But then when Map1 rolls around, which copy takes precedence? Does that cause unexpected results?
Also, if you look at the update history for L4D2, assets that have the same path and name will override the original if it is not declared as an addon (it's then considered a "content pack" for custom models, etc.).
So there's some metadata (or meta-files) inside the VPK that say whether to consider it a "content pack" versus an "add-on"?