Complete.Org: Mailing Lists: Archives: freeciv-dev: June 2004:
[Freeciv-Dev] backward compatability of saved games
Home

[Freeciv-Dev] backward compatability of saved games

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Freeciv-Dev <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] backward compatability of saved games
From: Jason Dorje Short <jdorje@xxxxxxxxxxxx>
Date: Mon, 28 Jun 2004 12:20:15 -0400

In the past we have discussed how gen-eff may necessitate the breaking of savegame backward compatibility. I don't think this is true, but it does bring up the idea...

There is a _lot_ of stuff in savegame.c to preserve backward compatibility. Nobody really knows how far back compatibility goes. When writing new code we preserve compatibility with the previous savegame format but we could easily break compatibility with even older savegame formats and not even know it (for this reason I'm afraid to change anything in savegame.c).

There is something to be said for a one-time breaking of compatibility. It would allow the removal of hundreds of lines of code in savegame.c and the logic could be cleaned up so that we actually understand it. We could then mark a definite point that savegames must be compatible with, and make some publically available savegames that can be used for testing of future code.

However the new compatibility period wouldn't kick in until the next release; until then we would be free to break compatibility some more. In the meantime we should fix many of the ruleset incompatibilities (changing the ruleset breaks savegame compatibility unless you're really careful, in part because the savegame depends unnecessarily on the order of elements in the ruleset).

I'm not sure if I'm in favor of this idea. It is really a way to simplify the code at the expense of the user. However because the code is simpler it will be end up with faster, less buggy development, so the user will benefit as well.

What do other people think?

jason


[Prev in Thread] Current Thread [Next in Thread]