Dependencies revisited
Posted: Sun May 31, 2020 1:23 pm
@Moderators: Sorry if I once again picked the wrong forum -- please feel free to move this to a more appropriate place if I did!
Factorio already supports some dependencies: hard dependencies, optional dependencies, hidden optional dependencies, and conflicts. Dependencies can be used for two major reasons: technical (a mod really doesn't work with your mod, or really is needed so that your mod works as expected, or should be forced to be loaded before your mod so you can react to its changes), and, let's call it "promotional" reasons (say you've added support for another mod in your code, but there's no technical reason to add a normal dependency; or you've found another mod that is in some way related to what your mod does, and using it together with yours may enhance the game experience although there is no technical reason to add a dependency).
I wonder if a new dependency type like "Recommended"/"Suggested" wouldn't be useful to handle the promotional aspect. There are so many mods out there, it's impossible to know of every mod, even if you skim the modportal regularly for new uploads. Personally, I've already added several mods to my game that I wouldn't ever have tried out if I hadn't been asked to add support for them to my mods.
The new dependency shouldn't interfere with the existing system. The way I imagine it to work is that you just add modnames (perhaps even versioned modnames?) as a kind of tag. The names (perhaps with versions) of recommended mods would be listed in the game's mod manager, but they would have no effect whatsoever on loading order etc. It would be just a nice way to stop abusing the current dependency system (which should be used for technical reasons only) for recommending other mods.
In addition, I think a way to show reverse dependencies would be nice. If you've more mods than just a dozen or two installed, you may wonder why you did install a particular mod. Libraries that don't do anything on their own but are required by other mods are a prime example: Perhaps you installed a library because it was required by one mod, but that mod changed to another lib now, or you've removed that mod but left the library behind. Having a way to search for mods that depend on that library would be really helpful! It would save the trouble of trial and error (deactivate mod, restart game, recognize that some mod still depends on it and has been deactivated as well, activate both mods again, restart again).
Any thoughts on that?
Factorio already supports some dependencies: hard dependencies, optional dependencies, hidden optional dependencies, and conflicts. Dependencies can be used for two major reasons: technical (a mod really doesn't work with your mod, or really is needed so that your mod works as expected, or should be forced to be loaded before your mod so you can react to its changes), and, let's call it "promotional" reasons (say you've added support for another mod in your code, but there's no technical reason to add a normal dependency; or you've found another mod that is in some way related to what your mod does, and using it together with yours may enhance the game experience although there is no technical reason to add a dependency).
I wonder if a new dependency type like "Recommended"/"Suggested" wouldn't be useful to handle the promotional aspect. There are so many mods out there, it's impossible to know of every mod, even if you skim the modportal regularly for new uploads. Personally, I've already added several mods to my game that I wouldn't ever have tried out if I hadn't been asked to add support for them to my mods.
The new dependency shouldn't interfere with the existing system. The way I imagine it to work is that you just add modnames (perhaps even versioned modnames?) as a kind of tag. The names (perhaps with versions) of recommended mods would be listed in the game's mod manager, but they would have no effect whatsoever on loading order etc. It would be just a nice way to stop abusing the current dependency system (which should be used for technical reasons only) for recommending other mods.
In addition, I think a way to show reverse dependencies would be nice. If you've more mods than just a dozen or two installed, you may wonder why you did install a particular mod. Libraries that don't do anything on their own but are required by other mods are a prime example: Perhaps you installed a library because it was required by one mod, but that mod changed to another lib now, or you've removed that mod but left the library behind. Having a way to search for mods that depend on that library would be really helpful! It would save the trouble of trial and error (deactivate mod, restart game, recognize that some mod still depends on it and has been deactivated as well, activate both mods again, restart again).
Any thoughts on that?