Closed GoogleCodeExporter closed 8 years ago
I meant to post this as an "Enhancement", but it could be seen as a "Defect"
too, I guess.
Original comment by lexlexlex@gmail.com
on 17 Jul 2011 at 12:11
By the way, the Worms Armageddon model uses diffs to maintain engine versions
somehow. The exe hasn't increased in size with each new version, and there
have been tons.
Original comment by lexlexlex@gmail.com
on 17 Jul 2011 at 12:27
Additions to the input file format are already being made in such a way that
new versions can play previous versions and will upgrade them upon
re-recording. So far an overall version number hasn't been needed to do that
(because each part of the file is implicitly versioned), but it could easily be
added if it is needed, and I guess it might as well be added now even if it
isn't needed.
The engine itself is more difficult to maintain backward compatibility with.
The idea of using (binary?) diffs is interesting, but infeasible for me to
implement (not because diffs are involved, but because the engine isn't an
isolated thing that can be swapped out wholesale with an older version, and
because I don't think I would want to do that even if I could). I'm not worried
about the DLL size increasing, and the nature of hooking functions makes it
possible to switch a particular function or component to an older version with
almost no runtime performance overhead, but maintaining compatibility would be
a drag on development that I want to avoid for the time being.
Also, some cases are a little unclear what should happen. If an old version
behaves inconsistently on its own, should newer versions maintain that
inconsistent behavior when playing old movies even if doing so might actually
cause more desync problems than doing otherwise? And I wouldn't want people to
continue recording some movie in the new version only to get bitten by an
already-fixed bug later on as a result of unknowingly having disabled the fix
for that bug by not starting the recording from scratch.
All that being said, I think it's a good idea to start adding version numbers.
Even if they don't get used yet, they could still simplify things in the future
if backward compatibility starts to become more of a priority, and they can be
used to improve the user experience by warning about version mismatches in
cases where a backward compatibility issue hasn't been fixed but is known to
exist.
Original comment by nitsuja-@hotmail.com
on 17 Jul 2011 at 3:46
Great points. I agree with your big-picture assessment of the situation.
Original comment by lexlexlex@gmail.com
on 17 Jul 2011 at 7:32
Version number added in r57. Now movie files, the exe, and the DLL all
know/contain the SVN revision number they were made with. I made it so any
backward compatibility code is optional (according to your choice at a dialog
that pops up when playing the movie... the default choice of Yes enables it).
Original comment by nitsuja-@hotmail.com
on 18 Jul 2011 at 9:05
Original issue reported on code.google.com by
lexlexlex@gmail.com
on 17 Jul 2011 at 12:08