🔒 Outline for a new mod manager

2 Guests are here.
Page: 1/17▶▶
663a1a5643e95
KolyaQuote
There are several reasons why we need a new mod manager. The fact that it cannot deal with the newer MTL files could probably be fixed if I poked TheBrain. But it is a general problem that the program only deals with files it "knows" instead of blindly copying what it finds in a mod. What's more important though is, that for historical reasons the current mod manager does its job inefficiently and messy, leading to unnecessary screwups.

For those who don't know, here's how the current mod manager works. Otherwise skip this paragraph:
When a mod is registered with the manager it unpacks the original archive, then repacks it into a new archive in the MODS folder. And when a mod is activated it unpacks this new archive into the game dir, making backups of all files it replaces. If another mod is activated whose files overlap with the first one, it gives a warning and then overwrites the first mod's files. This leaves the game in an uncertain state. If the first mod is deactivated now and original files are restored from backup, the second mod, which is still active, may not work anymore, because some of its files have been replaced. This is for two mods that are actually compatible with each other. The main problem here is that several mods are supposed to be loaded from the same place, the game dir, where lots of original files already exist.
 
Now the Dark Engine (bless it's dark soul) allows us to load resources from many places, they just have to be mentioned in install.cfg. So a better mod manager would therefore not copy files around but simply add or remove mod folders from install.cfg.
All mods would sit in their own folders inside a MODS folder. The new mod manager reads all folder names inside MODS and presents them as "available mods" in an interface. The user can then drag some of these over into the "active mods" area and even sort them there as they like by dragging.
In the background "active mods" is just an array. Once the user is done, the mod manager writes this array into install.cfg. That's it.
Since no files are being physically moved, none are ever overwritten. Saving mod profiles would be easy: Just write the array to some file that can be loaded again at some later point. Technically this is all rather simple, the hardest part will be the drag-and-drop interface.

If you have decent programming skills and you think you could do this, now would be a good time to step forward. I've got enough on my plate as it is and although I could write this in PHP and Javascript, there are more appropriate languages which I just don't happen to know as well. Preferably this would be written in C++ as an independent executable. Or in VisualBasic. Or maybe even Python, if it's true that you can create standalone Python apps now.
663a1a5643fdf
ZeebokQuote
How is mod compatibility checked, or is it even an issue anymore? I may give it a go and see what I can come up with in C++. Now I'm not entirely experienced with graphical programming but I need to learn somehow; so if anyone else wants to step up and make it, go for it.
663a1a56442e1
KolyaQuote
This could be checked of course, but it's not part of the outline above, nor does the existing mod manager have actual compatibility checks. It warns when any mod file will overwrite another, but that is usually not a compatibility issue.
Mod compatibility only becomes an issue when two mods replace the gamesys file (shock2.gam), or when they replace the same original mission file (*.mis) with wildly differing versions, which is rare.

Basically a check for more than one shock2.gam existing in the active mods would beat most compatibility problems.
663a1a5644477
ZylonBaneQuote
I agree. A warning on MIS/GAM conflict should be all that's needed.

Something else I've been thinking about is the procedure for "installing" mods in the mod manager. The SS2MM method where it copies the .ss2mod file to a central repository does have the advantage of being very user-friendly, not requiring users to navigate to a specific folder buried somewhere.
663a1a564456a
KolyaQuote
If it would only copy them, yeah. But during registration it unpacks any new mod and repacks it in the central mod directory.
The reason is that it needs to keep track of what files exist in any mod, so it can create the necessary backup files. Which are only necessary due to the way it dumps everything into the main game dir.
Page: 1/17▶▶

Legal stuff

Privacy Policy & Terms of Service Contact