New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Patching AGS games #129
Comments
I think one can use rofl0r's agsutils: https://github.com/rofl0r/agsutils On game developer's machine:
On user's machine:
This may be automated with scripts of some sort. What will be left for useability is a small plugin for the Editor which lets to run this process from main menu, or something like that. Of course, this might also come beneficial if the game development process is altered so that Editor tracked project changes, etc, but that's other thing. |
One could try using a binary patch format such as beat: On 02/26/2014 11:47 AM, i30817 wrote:
|
Beat is not compression aware. In fact none of the compression agnostic binary patchers in the romhacking community are. Since you do control the compression format used on ags games you can do far better (but using a standard like resyncable gzip could lead to good things if it later can work with steam or the gog downloader). |
Is it possible to disable compression in AGS? In that case you could do On 02/26/2014 07:01 PM, i30817 wrote:
|
edit: nevermind i see what you mean, but that is just the same process, but less intentional. You might get away with not understanding the virtual file-system if your patcher is very good about identifying binary resemblances, but you're going to have to have a very stable VFS to end with that result, and you're probably decompressing/recompressing the target prior to patching anyway, since the reason engines use VFS is for (IO) performance too. original: |
If the game is not compressed a changed game will have a small delta to Am 26.02.2014 19:32, schrieb i30817:
|
But the patcher will still have to decompress and recompress to update a setup file (if you want to support that usecase) and the patcher will have to be damn good at spotting binary patterns on large files (very large files), which is not exactly amenable to efficient patching. Now consider the rsync scenario: rsync is a battle hardened filesystem patcher (it not only supports single files) that even supports compressed filesystems patching inplace (with the right compression though), and can be used remotely (eventually with the Gog downloader?). |
This comment was marked as abuse.
This comment was marked as abuse.
Bumping this to say that i don't know what i was thinking talking about delta and compression aware patchers... for 'easy' patching you only need a VFS that allows replacing files, something like the override folder in SCI and Infinity Engine. Something to think about in future AGS versions probably. |
AGS supports overriding files since the beginning. You can place file in the game's folder and it will have higher priority than the one in the game package. The problem here is that some resources are packed into another big file, for example, sprites are stored like that. |
Well, then i was badly informed. Maybe it's actually 'making' these files/patches that's difficult for the average game maker. Because if that works, there is no reason for this. |
Hmm, not just difficult, rather there is no automated way to do this. EDIT: Also, to think of it, it does not support overriding packages, only raw files in the folder, which may be not acceptable for some game developers. |
I'd close this, as there are certain ways to patch the games, replacing certain files in it; there were agsutils, and now there are our own versions of few of these utils in the repository (packing/unpacking game "file libraries" etc). It is also now possible to have compiled game scripts repacked separately from the rest of the data (both script modules and room scripts). If further improvement is desired then there should be a task opened with more clear goals. |
apparently patches to AGS games on GoG are almost as large at the game itself, which apparently causes some pain
If whatever compression process you're using could be made to be for instance rsyncable friendly; for instance, using parellel gzip rsyncable support the idea of which could be used for a patcher that only replaces files that changed (using rsync or not).
The first link also has some problems the author of primordia found, like weak support for localization and other annoyances.
The text was updated successfully, but these errors were encountered: