Hello.

Has anybody tried to implement a game launcher (such as in these online games like WoW) that automatically checks for updates, downloads these and patches the game files?

I never did network programming before, but as I update my game very often, such an optional feature could be conveniant for some players (I believe esp. for the Windows players).

I'm using FreePascal and I think about this

1. On the HTTP server, I store the most recent version of the game as compressed archive.

2. On the player's computer, I store the installed version number.

3. If the version number (in the filename of the archive) is higher than the player's version, the update is offered
--> Task 1: How to connect to the server and read out the file name of the archive?

4. If the player accepts to update, I initiate the download and store it in a temporary directory
--> Task 2: How to initiate that download and close the connection afterwards?

5. Once the archive is downloaded, extract it to the game's program directory.
--> Task 3: Is archive extraction supported by FreePascal, and how?


Any answers, or tutorials you could point me to, would be highly appreciated.


Edit: An alternative could be simply a webbrowser component that displays the website with the latest patch, and the player clicks on the download link manually. But then I wouldn't be able to extract it automatically, would I?

Thank you!