I started this thread, I volunteered to over-engineer a mod installer, so its natural I post most, but I've been trying to get others to lead the way as I'm the newcomer.
From the first post we asked "how we manage mods that add fractions vs mods that use the engine for alternative games..." and its clear that addons/ doesn't do this. We can of course change addons and bend physfs to our will as it is not widely relied upon yet.
The bit that does seem agreed upon is that these mods will be deployed each as a single archive, using stored ZIP with XY solid compression for download. And we will have xdelta+XY from the beginning too, since that's not where the bugs will creep in.
I see two types of mod:
- (1) a free-standing game such as Glest+MegaPackV4, or Military of MRise.
- (2) a mod that adds additional scenarios, fractions and/tilesets to (1). Examples are numerous for the Glest tech tree. I suggested the naming convention that lists the (1)-mod that it is extending.
To my mind GAE should not be bundled with the existing old Glest game data, but rather pre-installed with a Glest+MegaPackV4 mod in the new mod structure.
Furthermore, I think (2) needs dependency checking from the get-go. And it doesn't hurt (1) either, since all the mods I've looked at - with the exception of MRise, which is nice and clean - are full of MB of debris and even broken links.
If a (2)-type mod has a scenario with the 'pirates' fraction in it, it'd better list the appropriate mod it is relying upon in the manifest so the downloader can ensure all dependencies are met. I don't see this as being a stretch goal, I see this as hygiene and not too challenging.
In my dependency prototype I ignored the overriden 'core' files, because we need some agreement on how to handle them. I think they should go into a set folder within the mod archive, and that it would be much more robust if there was an XML file explicitly saying which artwork overrides whatever rather than an implicit naming system.
Regards integration, I think that mod makers should be releasing early and often, even if their audience is their co-conspiritors and other modders. I think the system should be full of small incremental releases to 'alpha' mods, and that a mod should have a 'stable?' flag when its uploaded so we know whether to only show it to players who have elected to see the bleeding edge.
And on the client-side, I imagine a stand-alone wx-widgets app that does the downloading. From the beginning the downloader code however should be in the shared lib, with the full intention of eventually bringing it into the game UI.
In the game UI, there should be a top-level menu option for selecting between (1) mods, which naturally swap out all the UI artwork. The most-recent choice is remembered. But in the new game screen, if the 'advanced' check-box is checked, you can pick and mix between all installed fractions, maps, tilesets etc.
Its natural people are apprehensive of such naked ambition, but is any got any fundemental against the direction its going in, or is it just seeming to go too fast?