[messages] [Feature Requests] Ramblings of mine about recording/play back etc

Joel Uckelman uckelman at nomic.net
Tue Apr 17 04:24:50 MST 2012

Thus spake anonemous123:
> I think each log file should be stamped at the end with "user name +
> time-date". That is pretty unique. Any log file created on the end of
> the playback (i.e. I replay the log file then sometime later start
> recording mine and that indeed could be immediately, or at a later
> session perhaps next day or next week after I reload the vsav file)
> should have this "link" to the previous logfile, the user name and
> time+date. If, during a multiple player game, a player inadvertently
> tries to playback a log out of sequence, the program could easily
> identify this and warn the user. Actually, you could just use some
> unique atom rather than user name and time-date, or in addition to it.
> The important thing is that this log file be uniquely identified among
> all log files.
> You could get quite clever here, and in each log file, keep a link to
> all the previous log files - just the user name and time-date and any
> other unique identifying information.
> This would also solve another problem I have had, where a player makes
> some kind of error during the turn, and the other players suggests that
> this player should correct the move. Did the first player then send the
> other player a replacement log file or one that is supposed to be
> appended to his last one? Currently I try to enforce the rule that the
> file name should have the sequence number at the start i.e. First log
> file is "000xxxxxx" or "001xxxxx", next is number+1. Something along
> those lines. So if you get a log file with the same sequence number
> after a correction then it replaces the last log file. Now, I don't want
> Vassal to enforce any naming conventions for the log files - we can take
> care of that ourselves and the conventions vary with game and number of
> players. But, Vassal should be aware of where in the sequence this
> particular log file belongs. If I try to replay it on the end of the
> wrong log file (i.e. some other log file), I expect Vassal to pop up and
> warn me. Now, I don't want it to NOT replay the log file if I still
> insist, but I would like it to warn me in big bold letters that the game
> may now be inconsistent.

Both problems you mention can be solved by (1) keeping one log per game,
rather than per turn, and (2) better log management tools. #1 is up
to the players. #2 is planned for VASSAL 4.

> The issue of what is consistent playback is an easy one. Each event is
> unique and occurs at a unique time in a linear sequence among all the
> other events. When 2 players go for the same piece, only one can grab it
> and move it. The other player will grab thin air. But this situation
> only arises in real time play, and the issue here is one of concurrent
> access to the game interface and not a log file problem. There is no
> simultaneous or concurrent playback of different log files, because
> either the players recorded their moves separately and their log files
> get played back one after another in sequence, or they were playing in
> real time in which case there is only one log showing the sequence of
> all players moves. If you try to develop a game where both players
> conduct game play in log files separately and then try to merge them
> later, this introduces all kinds of contention problems, access to
> pieces etc, and I suspect at that point how to merge log files will be a
> fairly trivial side issue.

Merging separately constructed logs is nontrivial, and in some cases
won't have an algorithmic solution. (It's essentially the same problem
as merging branches in a VCS.) If you have two players move the same
piece differently, how that should be resolved, if it's even legal, has
to be determined by the rules of the game being played, not in some
generic way by VASSAL.


More information about the messages mailing list