Well compression is a good start, but depending on how big the game gets it would still be better to do it in updates. Though you're right it takes a lot of time and .... nerves... to get the less computer-savvy players to get it to work (although we do a full version each time by now too... but the OP is just badly written and I don't have rights to edit it
)
I don't see many players having troubles with it in the Depraved Awakenings thread... Maybe it's because of the age difference.... I don't know
One thing I'm certain about is that if more devs would do it, people would learn it more quickly... And like I said, it's not necessary for everyone to "update" the game, most users could just download the full game file. But some people have limited bandwith or slow internet connections, for those players it's fair to say they would rather watch a video tutorial or read a how to then to download a 3.76GB big game like Wicked Choices over and over again.
Well there are, as always, pros and cons.
Pros:
- smaller download sizes for people with limited bandwith or slow internet connections.
- smaller upload size for the dev
- easy patching of script files
Cons:
- Each update the same question... "How do p4tch in g4m3files put where?" Or... well you know what I mean :'(
- People talking about how to patch instead of how good/bad the new content was..
- People rating the game negatively because they weren't intelligent enough to read how to update the game...
Potential issues... see above
But if you still want to do it as episodic/chapter updates, I can give you some tips on how to do it.
First you'd want to make sure that your "episodic" images are in a seperate folder each. Like this:
/game/images/episode01
/game/images/episode02
and so on.
Then you have to open your options.rpy and create new archives for the images and one archive for all script files. And you also need to remove the standard 'archive' line which creates the archive.rpa with all files inside.
This could look like this:
Code:
## Classify files as None to exclude them from the built distributions.
build.classify('**~', None)
build.classify('**.bak', None)
build.classify('**.bk', None)
build.classify('**/.**', None)
build.classify('**/#**', None)
build.classify('**/thumbs.db', None)
build.classify('**/desktop.ini', None)
build.classify('game/**.rpy', None)
build.classify('game/saves/**', None)
build.classify('game/cache/**', None)
build.classify('.git/**', None)
build.classify('.gitattributes', None)
build.classify('.gitignore', None)
build.classify('README.md', None)
## Creating the Archives
# build.archive('Archive Name', 'File Types')
build.archive('scripts', 'all')
build.archive('gui', 'all')
build.archive('audio', 'all')
build.archive('video', 'all')
build.archive('episode01', 'all')
# All Script Files
# build.classify('Folder/filename.filetype', 'Archive Name') * = any name of the filetype only in this folder, ** = include subfolders
build.classify('game/**.rpyc', 'scripts')
# GUI
build.classify('game/gui/**', 'gui')
# Audio
build.classify('game/audio/**', 'audio')
# Video
build.classify('game/video/**', 'video')
## Episode specific ##
# Episode 1 #
build.classify('game/images/Episode01/**', 'episode01')
See that I exclude .rpy files and only include the .rpyc in the scripts.rpa? That's not necessary but I like to give players some more trouble to extract the files
Because some people just "shouldn't" check and mess around with the script files
Now you should have an episode01.rpa which holds all the images of episode 1, a scripts.rpa for alle the script files (pretty small so best to keep it as a seperate single file for all script files if you need to patch something), a gui.rpa for all gui elements (if you want to seperate it), an auio.rpa which holds all audio files in your game/audio/ folder and the same for videos in the video.rpa
Now, if you want to add episode two, just add those two lines:
Code:
build.archive('episode02', 'all')
build.classify('game/images/Episode02/**', 'episode02')
please watch out for upper / lower cases
Well here's how the options.rpy would look like with episode 02 added:
Code:
## Classify files as None to exclude them from the built distributions.
build.classify('**~', None)
build.classify('**.bak', None)
build.classify('**.bk', None)
build.classify('**/.**', None)
build.classify('**/#**', None)
build.classify('**/thumbs.db', None)
build.classify('**/desktop.ini', None)
build.classify('game/**.rpy', None)
build.classify('game/saves/**', None)
build.classify('game/cache/**', None)
build.classify('.git/**', None)
build.classify('.gitattributes', None)
build.classify('.gitignore', None)
build.classify('README.md', None)
## Creating the Archives
build.archive('scripts', 'all')
build.archive('gui', 'all')
build.archive('audio', 'all')
build.archive('video', 'all')
build.archive('episode01', 'all')
build.archive('episode02', 'all')
# All Script Files
build.classify('game/**.rpyc', 'scripts')
# GUI
build.classify('game/gui/**', 'gui')
# Audio
build.classify('game/audio/**', 'audio')
# Video
build.classify('game/video/**', 'video')
## Episode specific ##
# Episode 1 #
build.classify('game/images/Episode01/**', 'episode01')
# Episode 2 #
build.classify('game/images/Episode02/**', 'episode02')
Now all you'd have to do is create the distributables, you'd then get the full game as a .zip file, now copy this file and rename it to let's say... Update_Episode02 or whatever you want to call it.
Then open the zip file and delete all the unnecessary .rpa files in the game folder, so that only the "scripts.rpa", "episode02.rpa" and eventually other rpa's you made changes to are left inside the zip. That's it, now all the players have to do is extract the files and replace the old ones which got changed (i.e. scripts.rpa)
If you didn't update renpy between game updates, all you'd have to upload are the new .rpa files, else you'd also have to upload all the renpy internal files that are inside the distributables (I still do it always just in case, instead of deleting those small files...)
One thing that might help with the patching process would be to name the "created directory" inside the zip files always the same (without adding the version number i.e.)
This can be achieved by using this line of code in the options.rpy:
Code:
build.name = "YourGameName"
You must be registered to see the links