The discussion in IRC about releases got me thinking about something I've been wanting to do for a while: getting VDrift auto-updating. In my mind, it's a pre-requisite for multiplayer, because you really need everyone running the same version of everything for multiplayer to work, and if we're going to start releasing more often, we should make it easy for people to update without having to download another 600 MB of data.
Here's how I think it'd work:
* however we decide we want to do a release per the other forum thread, we eventually update the "latest release" code and data branches
* inside the data repository for the latest release, we update a text document with an SVN revision number that corresponds to the latest release's code repo revision number
* we build binaries and make installers which install all of the code but only one (small, GPL) car and one (small, GPL) track from the data
* note that the binaries know which revision they were built from already due to definitions.h
* we add libSVN support to VDrift
* on startup, when at the main menu screen, VDrift asynchronously checks the text document in the latest release data repo to see if the code revision matches the current revision that the program is running. if this takes too long or needs to be sychronous, we could make it a menu option ("check for latest version")
* if it doesn't match, the user gets red text at the bottom of the main menu that says they're not using the latest code release and to check vdrift.net. in the future this will disable multiplayer (or at least give a bunch of warning prompts)
* if it does match, the game checks if the cars and tracks that the user has are up to date, and if not, prompts the user and then updates them
* we add a menu that allows people to download other cars and tracks
* we can start using
http://gup-win32.tuxfamily.org/ to automatically do a check for the latest binaries on startup (at least on win32)