Re: False Positives and False Negatives
Yes I understand that and why it is appealing and that it would save someone (including myself) some extra time, potentially. I'm talking about the psychology of user feedback. Making the lives easier of experienced modders inherently widens the gap of what is overall acceptable to the average user. Sad but true.
Let me put it another way. You have 3 restaurants. 2 of the 3 make a mistake 10/100 times and automatically refund your meal, no questions asked, for 7 of those 10 mistakes without a trip back to the restaurant. The 3rd restaurant makes a mistake 35/100 times and you have to return your food with a receipt within 30 minutes of pickup - untouched - for a refund.
Which restaurant are you likely to get food from?
I'm not against meritocracy or anything, but the odds of restaurant 3 going out of business (a.k.a a new modder sees the quality and automation gap between their mod and others and is overwhelmed) are a lot higher with a lot of these kinds of automation in place. The more complex or the higher amount of automation "plugs" required for QOL features, the less likely they will all get picked up and the worse those who do not pick them up look.
Now I want to be clear that the above reason isn't justification enough to
not make our lives as modders easier sometimes. It's just... well a very real side-effect. So, I would caution against going overboard with it. I'm also not saying that this particular suggestion is overboard and I know it's opt-in and all that, but I did want to bring up this downside as a part of the discussion.
(I think modders who are used to a professional development setting often want to utilize those principles and have the same QOL support as they would have there... but you have to be careful because this isn't a professional setting and to make it seem like one will kill the desire of the hobbyist to get involved. I can't speak for everyone, but I only got the degree I did because I started modding as a hobby a long time ago. I chose Starsector, not just because I could see the game's potential and boy was I right! - but also for the very reason I bring up - that it had an "ease of access and expectation" when considering other moddable games. In short: it was one of the easiest games I could find to mod at the time. Maybe this makes me foolish as I get that technical considerations like compiling code into a jar, etc, become necessary in the long haul. As much as I understand that, I still try and do my best to keep it accessible when stuff like this comes up.)"Hey there is a 1.4.5 (internal 23) - go try that first!" is wrong, user is on 1.4.4 (internal 22) so he can only use internal 22 (1.4.4).Also, same as above, we can get Major from save and tell user to user downgrade to the latest Major release.
Whoops - typo! I meant 1.4.5 (internal
22) - so compatible with any internal 22 release but not the 2.0.0 (internal 23) release.
But anyway:
User with 22.4.1.0 that upgraded to 23.1.3.4 should revert to latest 22.x.x.x.
User with 23.0.8.5 does not need to revert, as line 23.x.x.x is save compatible with any previous versions in that line.
In both cases we can present user correct version to downgrade (download latest Z.x.x.x, where Z is already stored in a save-game).
This is what I mean by "too smart" though. You are wanting to use the version in the save to allow for parsing the compatibility component (hence exposing Internal/Major as compatibility) in order to use logic to determine "best backward compatibility" (so as you say - detect the Z from Z.x.x.x or x.x.x.Z or x.Z.x.x, etc)
Alternatively, instead of through code logic on save load, if a user does ask about it, (so the primary purpose of version control to avoid thread support has failed, as it were) - then you at least have a frame of reference (if they know the save version, mind you, as the app version doesn't matter) to say "latest" Z.x.x.x update should be fine to use.
Yeah I can definitely see the appeal.
My point is that, while admirable, it would be far simpler to just forget about Z altogether, and use the launcher's logic to simply display the version from the save - and recommend that - instead of the extra step of trying to find a better/newer version with the same compatibility level - "Z". That way, Z doesn't need to be in the version and won't get confused with content (especially because most games version themselves around content not compatibility).
The benefit to what I will call "finding the best Z" as you are describing, is that it can potentially allow the addition of some new minor content or bugfixes during midgame for the user. The downside? If you are wrong somewhere along the line,
especially if you are not made immediately aware of that fact (think of the hullmod example) then the additional complexity is pointless and more confusing. Since you are correct that mistakes will happen even with intensive testing, I'd say simple is best here.
For instance, I'd hate if a user was on bug-free stable version 23.1.4.5 and came back to the game after a while and updated to 24.2.5.3. The message would say "Revert to the latest 23.x.x.x version" and they would see that 23.2.5.1 was the latest in this case. I think it is unwise to assume that 23.2.5.1 would be the best reversion. It could have additional bugs that were fixed in the first 24.0.0.0 version but weren't present in 23.1.4.5 (yes I get that is a mistake of the modder to not patch 23.2.5.1 to 23.2.5.2 but trust me it can happen with large projects - cutting a release takes time and sometimes you just want keep moving on with development), or worse, be one of those updates that slipped through the compatibility cracks and breaks the save further down the line.
That's a headache for everyone when the simpler solution was to just paste the original save's version in the message. Errr, is this making sense? lol It's hard to translate brain to text sometimes and I'm fairly sleepy atm.
Anyway, good discussion and thank you for being courteous!
*EDIT*
That's a headache for everyone when the simpler solution was to just paste the original save's version in the message. Errr, is this making sense? lol It's hard to translate brain to text sometimes and I'm fairly sleepy atm.
I reread this and just in case it came across as sarcastic: I'm genuinely trying to think of ways that this kind of feature can backfire.