Creating binary patches to update the game

Started by Crimson Wizard, Wed 26/02/2014 17:10:40

Previous topic - Next topic

Crimson Wizard

This issue must be pretty important for both game devs and players, but somehow evaded my attention so far, maybe because I download games not much and not often. Problem is that AGS Editor itself does not let create patches for the game, only compile full game, therefore fixed version may be as large as a previous version.

I want to ask, have anyone tried using binary patching? For example, I found this:
http://www.daemonology.net/bsdiff/
It has Windows version too (http://sites.inka.de/tesla/others.html#bsdiff).

Maybe someone knows other similar programs?

Monsieur OUXX

As you probably know, diff and patch are very common tools in the Unix/Linux world.
They're less used in the Windows world, but there are some ports, some of them with a frontend.
So it's totally feasible to release binray patches for a game using such tools.

The only obstacle is the long research phase, to make the patch deployment as user-friendly as possible. Probably a batch file would be enough, but if something goes wrong, good luck to remotely troubleshoot that, with a horde of frustrated gamers after you !
 

Dualnames

The best way would be to do it the way League of Legends does update the content, it simply runs a check with a server every time it starts, the check is seemingless, less than a second, way less. And when updates do exist, it only updates the files changed. Even that would be nice for ags games. That would be useful for the ags ceremony for example. I'm just suggesting rubbish.
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

monkey0506

Literally nobody but nobody has ever used it, but individual room files can be patched by distributing updated CRM files, which anyone could then edit. Surely that's good enough. 8-)

Crimson Wizard

Quote from: monkey_05_06 on Mon 03/03/2014 20:47:45
Literally nobody but nobody has ever used it, but individual room files can be patched by distributing updated CRM files, which anyone could then edit. Surely that's good enough. 8-)
Well, actually literally any file from the package. I think this is still undocumented, but AGS searches for files in directory first, and in package later. "Hackers" used this to make "unofficial" translations by placing overriding font files in the game dir.
Similaril any separate sound & music file can be updated.

Also, I am not sure this should still be a secret, but there's stand-alone packer/unpacker utilities. I don't know why I never thought these may be used for game author's benefit, just... did not thought.
If these are not enough, someone can extend them to allow repacking individual sprites.

Dave Gilbert

Quote from: monkey_05_06 on Mon 03/03/2014 20:47:45
Literally nobody but nobody has ever used it, but individual room files can be patched by distributing updated CRM files, which anyone could then edit. Surely that's good enough. 8-)

Wait. So if I want to update just one room in a game and don't want the players to redownload the whole thing, I can just update the CRM, tell them to put it in their game directory, and the game will magically work?

I am amazed that works. But how will that effect saved games?

Crimson Wizard

Quote from: Dave Gilbert on Thu 06/03/2014 16:37:05
I am amazed that works. But how will that effect saved games?
This won't change anything in regards to saved games problem. This is just a different way to ship/use game resources.

Adeel

Quote from: Dave Gilbert on Thu 06/03/2014 16:37:05
Wait. So if I want to update just one room in a game and don't want the players to redownload the whole thing, I can just update the CRM, tell them to put it in their game directory, and the game will magically work?

Quote from: monkey_05_06 on Mon 03/03/2014 20:47:45
[...] which anyone could then edit. Surely that's good enough. 8-)

This makes it unrealistic to follow this path, at least for me. Editable Resources of Commercial Games, especially Commercial Adventure Games shouldn't be distributed, imho. :)


Crimson Wizard

Quote from: Adeel S. Ahmed on Thu 06/03/2014 21:34:17
This makes it unrealistic to follow this path, at least for me. Editable Resources of Commercial Games, especially Commercial Adventure Games shouldn't be distributed, imho. :)
We are on this path since AGS was opensourced. Open source = everyone knows data format = anyone who programs can make a resource extractor.
We are at mercy of consumer's conscience now.

BTW, I believe almost every modern engine today allows easy extraction/replacement of resources.

selmiak

cool! some time in the future i want to make an ags game someone really goes through the hassle to extract files and while he does that writes a tool to do this to make more games based on exiting existing games. open source is defininatly cool...
and there are lots of sources and assets available already. Let's never invent the story extractor and recycler and have some inspirational times ahead :-D

Adeel

Quote from: selmiak on Thu 06/03/2014 22:10:55
cool! some time in the future i want to make an ags game someone really goes through the hassle to extract files and while he does that writes a tool to do this to make more games based on exiting existing games. open source is defininatly cool...
and there are lots of sources and assets available already. Let's never invent the story extractor and recycler and have some inspirational times ahead :-D

Actually, save those who are interested from much time spent on developing a tool and release the source code along with all the resources of your game (including your compiled game). That would be the more practical way to go, I believe. ;)

Ponch

Quote from: Dave Gilbert on Thu 06/03/2014 16:37:05
Wait. So if I want to update just one room in a game and don't want the players to redownload the whole thing, I can just update the CRM, tell them to put it in their game directory, and the game will magically work?

I am amazed that works. But how will that effect saved games?
I've been using the CRM trick for Barn Runner games for years and never had any reported problems with it. If you go to my website and check out the "patches" page, you'll see several of them. :smiley:

SMF spam blocked by CleanTalk