Well, if suggestions are welcome, i think the best approach for modding the game is the path Bethsheda or games like Independance War II taken.
Basically:
- Game has the main set of assets its using. They are stored preferably in an archive or special folder for vanilla-game-only assets
- Mods come in forms of zip archives that have a structure similar to the vanilla data folder.
- Those mods are enabled/disabled from a simple software or an INI file even.
- Files included in enabled mods take precedence over the vanilla files when game is loading
So, if you need to mod game's sound effects, you create a folder like Data, Sounds in it, and place sound files as they're named in original game there, and when your mod (zipped folder) is loaded, those files are used instead of main game's.
If you need to change weapon settings, you make a file that holds the weapon list of your own - probably this file is a modified original. Etc.
This means that making a mod is as simple as copying the files you wanna mod to a separate folder, maintaining structure, working on them, and then zipping this folder and thats a mod.
Loading a mod is also as simple as unzipping all mods to temp. directories, and giving the game a list of directories where to look for the files it tries to load at startup - with temp mod directories taking precedence over the game's vanilla directory.
Now, to allow more mods to run without conflicts, you'd generally like to have more smaller xml/ini files rather than one large vesseldata that is there now. So for example, one player modded torpedo range, other modded enemy ship shields - if those be separate files, the mods could be compatible, but in current situation, they arent, since both occupy the same file.
PS: A more complex solution would be to treat mod xml files as overwrites of the original - so if the same torpedo is described in the mod's vesseldata.xml, it replaces the vanilla statistics of this torpedo taken from vanilla vesseldata.xml. This way, modders would only have to add the entries they changed to their mod files, so both mods could be compatible.
[Last edited Mar 13, 2012 10:11:05]