Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

Just wondering what types of solutions are available to handle patching of PC/Mac games that don't have any sort of auto updater built into them.

In windows do you just spin off some sort of new install shield for the game that includes the updated files, hope you can read a valid registry key to point to the right directory, and overwrite files?

If so how does that translate over to Mac where the game is normally just distributed as straight up .app file?

Is there a better approach than the above for an already released product? (Assuming direct sells, and not through a marketplace that features auto-updating like Steam.)

Are there any off the shelf auto-updater type libraries that could also be easily integrated with a C/C++ code base even after a game has been shipped to make this a lot simpler, and that are cross platform?

Also how do auto-updaters work with new OS's that want applications and files digitally signed?

share|improve this question

3 Answers 3

Assuming that you're not going through the Mac App Store, on OS X the most common way for programs to self-update is using Sparkle.

It's simple, user-friendly, in-place (ie: no separate "installation" process; the new version just replaces the old version), extremely widely used, and it's free.

share|improve this answer

Unless you're embedding your resource files inside the executable file, patching a game can simply consist of changing some files. These can either be executable files, script files, media files, or any other type of files.

My games usually have resource files packed into zip files, so when I release standalone patches for my games, I send a batch file that does the following:

  1. Make a backup of the data files
  2. Check the currently installed files are of the correct (patchable) version. This can be done by checking an SHA1 sum.
  3. Decompress the patcheable files into a temp folder.
  4. Replace, add and delete the files as the patch requires.
  5. Recompress the folder.
  6. If you're using a good predictable compressor, the resulting file should be identical regardless of the machine in which it is running. Therefore you can now check the patch worked correctly by checking the file with an SHA1 sum.
  7. Repeat for all data files. If something goes wrong, recover from backup.

This should work regardless of the platform, and it is very easy to implement.

Also, if you're only targeting Windows, MSI has a patching feature which pretty much does the same thing, but registers the patch as installed. Pretty much every install generator tool can do this.

share|improve this answer

On PC the sales boost you are going to get from Steam will always surpass the cut they take so you are going to be using Steamworks.

If you have been rejected by Steam, I would recommend that you use the NSIS installer over install shield. I found it easy to use and a far superior product. (It is also free.) There may be a third option that is even better, but I am not familiar with it.

http://www.steampowered.com/steamworks/

http://nsis.sourceforge.net/Features

The NSIS installer feature set claims to now also support patching and "an optional silent automated installation" mode. I haven't used these features personally, but given my excellent experience with that software in the past I have no reason to believe they wouldn't work.

Someone else will need to answer your Mac questions.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.