With more and more releases for Arcane Dimensions and Copper, the approach of "merge these files into your existing AD or Copper directory" is annoying. It's error-prone and is a stumbling block for less technically-minded users. If we could instead deal with them like Quoth releases, i.e. in their own isolated gamedir, it makes a lot of stuff easier: installation, launching, and proper cleanup (including savegames and config).
For Quoth this is done with a dedicated "-quoth" flag that indicates the "quoth" directory should be used as a basegame. Rather than add more dedicated flags, how about a generic "-basegame" flag. There's some potential for interesting/messy corner-cases because of the need to continue to support existing behavior, but I took a shot at it here to illustrate how it might work: https://github.com/neogeographica/Quakespasm/commit/5b849b3abe32809f7047b24b790b177a0a8dc60c
It's probably worth mentioning that FTE also has "-basegame" support but it works slightly differently, which might cause some confusion. FTE supports multiple basegame args, and as far as I can tell, with FTE as soon as you start using "-basegame" you have to be explicit about all game directories including id1.
So for example with my change here, you could run the Copper-based release "ctsj" using an existing copper installation with these args:
-game ctsj -basegame copper
But with FTE it seems like you would need to do this:
-game ctsj -basegame id1 -basegame copper
FTE's argument handling and filesystem implementation is different enough that I didn't want to tackle trying to mimic that behavior here.
It looks like https://github.com/Shpoike/Quakespasm has an implementation both of multiple -game args and also of multiple -basegame args. If there's interest in getting this into the main branch here I can take a look at isolating those changes.
Spike's QSS implementation isolated here: https://github.com/neogeographica/Quakespasm/commit/7ad76c35b87746d6976064fbe3d4c25e2dc5ebce
FWIW, the QSS behavior is rolled into vkQuake too as of this commit: https://github.com/Novum/vkQuake/commit/8b52a5ba316d4b41fb2d778257b686d4389a006f
I was reminded by the latest QS release news to wander back by and check on this.
I'm fairly sure that vkQuake commit above would also be apply-able to QS. Anything I might be able to do to help along the possibility of getting this change in QS? Or alternately, any thoughts about why it's not suitable for QS?
Personally, I'm not interested in this feature.
Eric, what do you think?