Something that I think would be very handy is for Save games/Log files to have a header that can be read without having a module loaded. Stuff like module name and revision, date/time, player comments.
Display the info in the module manager
Prevent loading/display of files that are not real saved games
A step further along, when you hook up all this metadata and standardize
file formats could this eventually allow the ability to launch engine/module
directly from the save/log file? That would be a neat bonus
Yes, that should follow. I have added a feature to the 1.0 beta Module Manager that allows a folder of save games to be ‘added’ to a module. Double clicking on a save game loads the module with the save game. It’s only a small step extra to do that on double clicking a save game file. The key thing we need is to institute the standardized file suffixes for vassal files.
I think that the saved game/log format should move toward (possibly
compressed) XML, even if for right now, almost all of the content is
a binary blob. You could do this:
... metadata ...
<--- defined to contain CDATA
... the contents of a 3.1 or earlier log file ...
Then, eventually we can begin replacing the binary data in the body
with more granular human-readable stuff (or possibly public-key encrypted
views like I described earlier—I’m becoming more and more convinced
that this needs doing).
It will make it absolutely to load a 3.1 log file on an earlier version of Vassal, which is not necessarily a bad thing. You could load log files on earlier versions before and it would generally work (with warning) as long as you did not use new features.
Would this be a problem?
It would be pretty easy to convert a log to the old format if needed.
I’ve just checked the code and the save game file is written as an entry in a ZIP archive name ‘savedgame’. In the short term, it would be even simpler to just add a second ZIP entry name ‘info’ that contains the metadata XML and leave the saved game untouched for now. This would also be neater for the Module Manager which isn’t actually interested in the log file as such.
I’m not big on XML, but learning fast. I’m guessing I will be using the DOM API in the xml-apis library? That’s what I see doing other XML handling in Vassal.
Also, it appears to me we do not use the xerces, xalan or xml-apis-ext libraries any more? That’s 2.7Mb that could be removed from the download.
I would have thought we’d use the org.w3c XML packages, since those
are what we’re already using for reading buildFiles.
xerces, xalan, xml-apis, and xml-apis-ext are all used by Batik. I think
that now all of the Batik jars are necessary, but I haven’t had time to
investigate which those are yet.
It’s sunny, so I’m going for a run. I’ll try to take care of all of
the outstanding merges when I get back.