A PBW related wish, maybe it was mentioned before, forgive me for not reading trough 85 pages of Posts
Make a command line option to work with smaller, patch like savegames.
See, i would bet, that most of the savegame file remains unchanged when you make a new turn. This means, you wouldnt have to send all the data to the players, as they already have at least half of it.
I've tried to do some optimisations in the netcode of my mutiplayer tool based on the above assumption, but because of the encoding, there is nothing common between two save files. While i can't (or at least wouldn't like to) circumwent that encoding, malfador could easily create said functions for us.
How it would work:
- command line turn generation would create a gam file and a gam.patch file, which only includes the binary differences between the unencoded turn files of the previous turn and the new turn.
- this patch file would be encoded as well
on the client machine, the game can take the patch file as an argument instead of the gam file, in which case it uses the data from the previous save game to build the actual gam file for the current turn.
It sounds easy, and i think its not that much of an overhead, but i think this may reduce required network traffic for multiplayer games by a lot.
I think the way rsync compares files could be easily adopted to se4 as well (i was about to use its algorythm for my tool, until i realized it will not work on the generated savegame files, because of the above mentioned encryption).
for those not familiar with rsync, check out
http://samba.anu.edu.au/rsync/
and
http://samba.anu.edu.au/rsync/tech_report/