1

I'm building a game launcher / updater and need to make clients download the last game version if an update is avaiable or if there is a problem with files integrity.

I need something able to produce a "delta patch" between a client local game and the official relase on the server.

rsync seems to be what I need, with it's ability to download only the different binary parts (am I right ?).

However, what if hundreds of clients need an update and they simultaneously rsync on my only server ?

Is rsync the right tool ?

Thanks if you have any kind of information that could lead me to the right way.

FLX
  • 123
  • 5

1 Answers1

0

One possible solution would be packaging your software using the native format of the OS (e.g. RPM), signing your packages (normally done using GPG), and exposing your repository over a HTTPS channel (optionally with client certificates, which you can control).

The advantages of using a trusted, verifiable and known technology to distribute changes are multiple. It also provides the ability to verify the integrity of files.

Your requirement of distributing only deltas can also be achieved using deltarpm.

Most RPM based distributions have tools to create this deltarpm packages.

dawud
  • 15,096
  • 3
  • 42
  • 61
  • (Not sure i'm fully understanding your answer, but thanks :). In my case, the new build would be placed on a debian server and probably some external services as dropbox / gdrive for load balancing. Clients Updater can be launched from different OS : windows, macos and maybe linux. If i'm not mistaken deltarpm is more useful for a full-linux context. It's probably easier to find an rsync port on each OS. I just read interesting things about its daemon mode. Seems I could use that to deliver a delta patch. – FLX Mar 14 '17 at 13:47
  • Also, I have not thought about GPG signing but why not. My first idea was to simply compare something like a SHA1 checksum. Thanks for your insights ! – FLX Mar 14 '17 at 13:49