Best Answer AlexB, 25 September 2018 - 03:56 PM
Supporting older savegames requires new code to be written. It doesn't come naturally. Ares 2.0 adds new settings, for which there is no savegame data. So you could use the defaults (which I usually set to match previous or original behavior). If the new data isn't just at the end but also in the middle, there has to be a way to detect this early to skip reading the new settings and thus corrupt the memory with the old savegame data that doesn't belong there. If settings were moved as it sometimes happens, it's usually not possible to read the old data into a new object of another type (it might not be created then, so... where to put the data? An example would be the Reverse Engineered types, which I moved around).
Not supporting older savegames gives me freedom to remove old code, otherwise I would have to keep the old and the new versions, which would usually make writing a new system infeasible and thus prevent change and innovation.
Not supporting older savegames also means that I don't have to spent my time writing the additional code and to think about how I could write new code that could still be made backwards compatible.
And it also means that nobody would have to test this new code, and thus this energy can go into testing the actual new features. I think this is way more important.
What do we all lose? The ability to restore a previous mission state, obviously. But not the ability to play later missions, because that's available from the client.
Note that it's already not supported to reload when the files change (if for example you change the image file name of a unit and the old one isn't there when reloading, or when an animation changed to have more or fewer frames). Also when global data is changed, like when sounds are added, removed or moved.
Go to the full post