As it is, we can have scenario unique maps by placing the GBM/MGM file in the scenario's directory. This allows maps that are made only for that specific scenario (and thus not playable in a regular game) to be used without the risk of someone accidentally trying to play a regular game with them. I propose one step further: scenario unique addons. These are addons that would only be applied to that scenario, thus, you could have a scenario which uses magitech, but adds in a new unit to magitech. The reason to use a scenario specific addon is to prevent the loading speed of a regular game from increasing and to allow the original faction to be unmodified, necessary for multiplayer.
This would make the current way of having a map scenario specific by placing it in the scenario directory deprecated (though it would still be supported for backwards capability). The big advantage is this means we could have scenario specific techtrees, factions, maps, tilesets, even tiny tweaks to an existing mod (eg: magitech).
The addon would be read the exact same way as addons are normally read, just at the start of the scenario, not the start of the program. The addon would be immediately "voided" (for lack of a better term) once the scenario is over (so you could modify the language strings, eg: so a pirate scenario has pirate talk in the language strings, and the original language strings would be used once the scenario is over).
To prevent the possibility of any stray files in the scenario directory from being mistaken for addons, the addons would all be placed in a new folder in the scenario's directory simply called "addons", which could contain multiple addons like the regular addons folder does. This would make the folder (from the shared folder)
gae/scenarios/category_name/scenario_name/addons (eg:
gae/scenarios/glest_classic/storming/addons).
Pros and Cons AnalysisPros:
- Allows scenarios to do so, so much more
- Clean and easy way to modify assets for scenarios
Cons:
- Cannot package scenarios as an addon.