Patching Builds? #7

Closed
opened 4 months ago by PrincipalSpears · 11 comments
Owner

Some anons have complained about having to re-download a build once its released and rather just be able to patch it. If there's a way to do this that is both easy for techlets to do and easy for us to make, that'd be great. Ideally, this would be cross platform: GNU/Linux, *BSD, Windows, MacOS, Android, maybe even IOS, but if we can only fix desktop this way, that's fine.

Some anons have complained about having to re-download a build once its released and rather just be able to patch it. If there's a way to do this that is both easy for techlets to do and easy for us to make, that'd be great. Ideally, this would be cross platform: GNU/Linux, \*BSD, Windows, MacOS, Android, maybe even IOS, but if we can only fix desktop this way, that's fine.
PrincipalSpears added the
enhancement
label 4 months ago
PrincipalSpears added the
Medium Priority
label 4 months ago
PrincipalSpears added
High Priority
and removed
Medium Priority
labels 4 months ago
Collaborator

Hi,

Are we looking to have standalone files for potentially any version to any version or should we do an update service-type of thing?
E.g. there would be a check in the game for a version on the server (whatever content server there is), if it is newer than the one reported on the end machine then check components and redownload parts marked as new version.
That's about as comfy as it can get. Though, there are drawbacks.
Not sure if a standalone patch file would be reasonably easy to implement without it containing the actual game itself. If this bit isn't an issue, and we just want a file that can detect (or be told where to expect) the folder for the game and replace things as necessary from the carried payload that's relatively easy. As multiple versions start to circulate, not having the entire game in the patch file would create scenarios perhaps where for an installation with patch level 5, file A1 needs to be replaced by file A3 for the current patch file 7, but A3 needs file B2 instead of B1 - however B2 was patched in patch file 6. Unless we do a cummulative patch (but that will have a steady size increase as well eventually).

As for the versions... Just a thought, say the writing changes and people say I liked version X way better. Will older versions remain available?

[OFF TOPIC] And finally, do we have a discord channel, irc, telegram, forum, etc for general chatter and questions? Or is it email only?

Hi, Are we looking to have standalone files for potentially any version to any version or should we do an update service-type of thing? E.g. there would be a check in the game for a version on the server (whatever content server there is), if it is newer than the one reported on the end machine then check components and redownload parts marked as new version. That's about as comfy as it can get. Though, there are drawbacks. Not sure if a standalone patch file would be reasonably easy to implement without it containing the actual game itself. If this bit isn't an issue, and we just want a file that can detect (or be told where to expect) the folder for the game and replace things as necessary from the carried payload that's relatively easy. As multiple versions start to circulate, not having the entire game in the patch file would create scenarios perhaps where for an installation with patch level 5, file A1 needs to be replaced by file A3 for the current patch file 7, but A3 needs file B2 instead of B1 - however B2 was patched in patch file 6. Unless we do a cummulative patch (but that will have a steady size increase as well eventually). As for the versions... Just a thought, say the writing changes and people say I liked version X way better. Will older versions remain available? [OFF TOPIC] And finally, do we have a discord channel, irc, telegram, forum, etc for general chatter and questions? Or is it email only?

looks like renpy does offer built-in functionality for option B (an update server)
https://www.renpy.org/doc/html/updater.html

we could essentially implement an update server alongside renpy's built in functionality, add some functionality to the main menu ala an "update" button that would call the appropriate functions, make what would hopefully be the "final manual release" for download, and boom - now whenever we push updates to the code can be done entirely in game

looks like renpy does offer built-in functionality for option B (an update server) https://www.renpy.org/doc/html/updater.html we could essentially implement an update server alongside renpy's built in functionality, add some functionality to the main menu ala an "update" button that would call the appropriate functions, make what would hopefully be the "final manual release" for download, and boom - now whenever we push updates to the code can be done entirely in game
Poster
Owner

@Nio your concerns are correct in how patch files work (I was worried about a similar issue). Though, since renpy has an updater this likely will be the method we go. I can set up snootgame.xyz to have everything we need soon enough. Will need to look into the documentation for this soon enough. Anyone wanna go ahead and add an update button to the Help&About menu? (soon to be extras menu due to PrincipalSpears/SnootGame#14)

@Nio your concerns are correct in how patch files work (I was worried about a similar issue). Though, since renpy has an updater this likely will be the method we go. I can set up snootgame.xyz to have everything we need soon enough. Will need to look into the documentation for this soon enough. Anyone wanna go ahead and add an update button to the Help&About menu? (soon to be extras menu due to https://git.snootgame.xyz/PrincipalSpears/SnootGame/pulls/14)
Poster
Owner

btw @Nio we do have a private way of communicating (a matrix and discord), but the other guys keep tight control over who gets in and out. Mostly due to fears of ko-op shittery, doxing, someone leaking assets, etc. If you want in, contribute some and show that you got skill and can be trusted. Nothing personal behind that, its just the tight security needed to keep us from being BTFO'd.

btw @Nio we do have a private way of communicating (a matrix and discord), but the other guys keep tight control over who gets in and out. Mostly due to fears of ko-op shittery, doxing, someone leaking assets, etc. If you want in, contribute some and show that you got skill and can be trusted. Nothing personal behind that, its just the tight security needed to keep us from being BTFO'd.
Collaborator

Nice, being new to Ren'py I didn't even assume it would have something like this. But saves some of the work.

@coolestskinnieinthejungle , @PrincipalSpears if you all are cool with it, I would like to take a shot at this.

And @PrincipalSpears , I completely understand the worries associated with this. All good. I will work on earning my place.

Nice, being new to Ren'py I didn't even assume it would have something like this. But saves some of the work. @coolestskinnieinthejungle , @PrincipalSpears if you all are cool with it, I would like to take a shot at this. And @PrincipalSpears , I completely understand the worries associated with this. All good. I will work on earning my place.
Poster
Owner

if you all are cool with it, I would like to take a shot at this.

I got SSH access to the VPS that runs this stuff and am used to sysadmin stuff. Will get this set up backend wise. If anyone wants to give a shot for setting this stuff up for the game updater client, then go for it. Will create a branch for this stuff

I completely understand the worries associated with this. All good. I will work on earning my place.

👍

>if you all are cool with it, I would like to take a shot at this. I got SSH access to the VPS that runs this stuff and am used to sysadmin stuff. Will get this set up backend wise. If anyone wants to give a shot for setting this stuff up for the game updater client, then go for it. Will create a branch for this stuff >I completely understand the worries associated with this. All good. I will work on earning my place. 👍
Collaborator

Started working on this in https://git.snootgame.xyz/Nio/SnootGame_w_ExtrasMenu which also addresses PrincipalSpears/SnootGame#19 (and added the ico file as well, it's so minor, I didn't think it is worth creating an entirely separate fork).

I can also work on buttons if you need me to. I have a few things at my disposal, way back when I used to draw. I should get back into that again, now that I think about it.

Started working on this in https://git.snootgame.xyz/Nio/SnootGame_w_ExtrasMenu which also addresses https://git.snootgame.xyz/PrincipalSpears/SnootGame/issues/19 (and added the ico file as well, it's so minor, I didn't think it is worth creating an entirely separate fork). I can also work on buttons if you need me to. I have a few things at my disposal, way back when I used to draw. I should get back into that again, now that I think about it.
Poster
Owner

Cool, will start working a bit on that then

Cool, will start working a bit on that then
PrincipalSpears added this to the Patchy-Patch5 Release milestone 4 months ago
Poster
Owner

bro this ain't even done yet lmao

bro this ain't even done yet lmao
PrincipalSpears reopened this issue 4 months ago

why the fuck did it close the issue wtf lol

why the fuck did it close the issue wtf lol

DONE
fucking renpy documentation

DONE fucking renpy documentation
Sign in to join this conversation.
No project
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.