Jump to content

What Does the Compatibility Checker … Check?


Faster

Recommended Posts

I just fired up KSP 0.24.1 OS X and got a list of mods it says are incompatible with 0.24.1 (but which were compatible with 0.24.0.) Leaving aside the minor surprise of a minor minor update with a breaking API changeâ€â€because hey, this is prerelease so anything goes and I'm damned happy to get all those great fixes so quickly!â€â€I was just curious what the checker might be checking in order to tell me some (but not all) of the mods I've installed are incompatible? And now for the really dumb question, what is it part of, e.g., core KSP, ModuleManager, or ___?

OhVwcC.png

Link to comment
Share on other sites

Basically, mods that use Compatability Checker contain a set of versions that the plugin is known to work for, and if you run the plugin on a version of KSP that isn't one of those, it tells you, because there's no way for the modder to know before hand if their plugin built for a previous version will run without flaw on anything newer. It's a warning, it's saying "if you have problems, it's not our fault, you're using a build that isn't intended for this version of KSP"

Link to comment
Share on other sites

I thought that was still hypothetical! Oh well, it's still a defensive measure from modders against "dumb users blaming us for problems they caused", same reason Kethane's install validator exists

Link to comment
Share on other sites

Thanks everyone. Very informative. I did try @JustinKerbice's suggestion (thanks) of KSP-AVC. It, of course, find different mods as being incompatible; but nice to have info when I'd mistakenly thought something was at latest but wasn't.

What I think I read above, in summary: the Compatibility Checker is just common code or a library mod developers like to use that compares KSP's version number against a developer's own list of what they think will work.

Link to comment
Share on other sites

Thanks everyone. Very informative. I did try @JustinKerbice's suggestion (thanks) of KSP-AVC. It, of course, find different mods as being incompatible; but nice to have info when I'd mistakenly thought something was at latest but wasn't.

What I think I read above, in summary: the Compatibility Checker is just common code or a library mod developers like to use that compares KSP's version number against a developer's own list of what they think will work.

By default it's looking for an exact match on major.minor.revision. But it's up to the developer how they want to implement it.

Link to comment
Share on other sites

By default it's looking for an exact match on major.minor.revision. But it's up to the developer how they want to implement it.

Actually, there is no default behavior per mod. Each modder is asked to return a true or false statement for whether the mod is compatible with KSP's version, and Unity's version.

The typical solution is to compare a set of values to the game's version number, but how to perform it, and how lenient it is, is entirely up to the modder.

They might change also anything and everything based off of that, like changing part behaviors, or disabling code, but most of the time that's more work than it's worth.

Keep in mind, that since it's a true or false test, it might warn you of versioning differences in both directions, i.e. both if the mod is too old OR too new.

Any mod that doesn't include this function, will not show up in the warning window.

It's important to keep the plugins up to date, because even though the KSP features used by the mod might not have changed, it may have been compiled for a KSP dll where a reference is just different, even though the name is the same. This will cause a severe crash with no reasonable feedback, even if the code with the error is never even run.

Edited by Snjo
Link to comment
Share on other sites

Compatibility checker is not a compatibility checker - it is an update-checker, that usually ends up simply being a nagscreen.

The reason why that is so, is simple:

It does not connect to the network, to check for current information. The upside to this is, that i have less plugins that i need to perform surgery on and then recompile, to stop developers from treating my computer as their own. The downside is that this way, the plugin into which updatechecker... err, i mean compatibilitychecker, is integrated... the plugin can only know, what was known at the time it was released (since it doesn't fetch current info over the network).

The result is pretty much the same as what you've seen with firefox extensions. It's exactly the same idea: Define certain dependencies and maxversions - and if those requirements aren't met, trigger "something". What is triggered is up to the dev, but usually you simply get the nagscreen you're familiar with. So right now, in practice, this really is exactly the same, as when you update firefox, and then all your extensions complain about versions - regardless of if they work just fine or not.

It's simply a stopgap measure: "Unknown version detected - assume the worst."

Sooo, does this make compatibility checker completely pointless to the user, since all it does, is potentially break plugins that might work just fine, as soon as you update KSP? (On the upside: As explained, the reason for this uselessness, is that they do not access the network - neither with nor without your consent). Not neccessarily: The system could actually be used as a meaningful minimum-version check - as opposed to a maximum-version check. For example, if a plugin dev knows, that this plugin only works with 0.40+, then he can alert a user of KSP 0.35 of this incompatibility. But again, this is just theory - the practice is, that 99% of devs will just set the minimum version to the most recent KSP version, because that will be the one they compiled on, and they don't want to support older KSP versions (at least no more than offering older versions of the plugin - and even this, they very often don't offer - upgrade or die!).

TL/DR: It's a clueless update nagscreen, that is nice enough to not phone home without your consent.

Link to comment
Share on other sites

Note that while most implementations simply check against the KSP version, it's entirely possible that some mods might do more involved compatibility testing, e.g. by unit testing parts of the KSP API. The best way to understand the warning is to look at the source of each mod listed.

TL/DR: It's a clueless update nagscreen, that is nice enough to not phone home without your consent.

I wonder who wrote it?

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...