Ren'Py How do you update your game version?

DiPeppo

Developer of Cyberheart
Game Developer
Jul 1, 2022
472
1,241
I was always curious about what's a good practice to update a game. What I imagine was:
  1. Back up your current game folder, and then duplicate it.
  2. In the new folder, rename your version (let's say from 0.1 to 0.2).
  3. Just continue working on that folder.
How do you usually do it?
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,111
14,798
In the new folder, rename your version (let's say from 0.1 to 0.2).
What do you mean by "new folder" ?

There's two technical constraints with Ren'Py: Keep the rpyc files, and keep the configuration file.

The first, because else you'll break all the references, what will among few other things, break the skip feature and the translation.
The second, because else the save folder stored at system level (%appdata%/Roaming/RenPy/[...]) will change and therefore Ren'Py will not be able to find the save files.


This being said, practically speaking there's not much to do.
You make regular backup of your project, and this one is just a more specific one. Mark it as being the "update X", to be sure that you'll not delete it when you'll clean too old backup, and that's all.
 

DiPeppo

Developer of Cyberheart
Game Developer
Jul 1, 2022
472
1,241
What do you mean by "new folder" ?

There's two technical constraints with Ren'Py: Keep the rpyc files, and keep the configuration file.

The first, because else you'll break all the references, what will among few other things, break the skip feature and the translation.
The second, because else the save folder stored at system level (%appdata%/Roaming/RenPy/[...]) will change and therefore Ren'Py will not be able to find the save files.


This being said, practically speaking there's not much to do.
You make regular backup of your project, and this one is just a more specific one. Mark it as being the "update X", to be sure that you'll not delete it when you'll clean too old backup, and that's all.
Sorry, I should have worded it better. What I mean is that I would make a backup folder, and then continue working as usual on the either folder that I just copied or the original folder.

Thanks for your advice!
 

hawrang

New Member
Sep 2, 2017
1
1
Have you tried or considered using a source code management tool like Git? It's usable even purely offline and would let you commit major milestones, tag versions and roll back to them on demand.

The main issue would be that it's not disk-space efficient non-text/code files, but even inefficient would be better than multiple copies of a project.
 
  • Like
Reactions: DiPeppo

DiPeppo

Developer of Cyberheart
Game Developer
Jul 1, 2022
472
1,241
Have you tried or considered using a source code management tool like Git? It's usable even purely offline and would let you commit major milestones, tag versions and roll back to them on demand.

The main issue would be that it's not disk-space efficient non-text/code files, but even inefficient would be better than multiple copies of a project.
I have used Git before but never tried it with game development (aka something requires commit this heavily). But I will give it a go. Thanks for your advice!
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,111
14,798
Have you tried or considered using a source code management tool like Git? It's usable even purely offline and would let you commit major milestones, tag versions and roll back to them on demand.

The main issue would be that it's not disk-space efficient non-text/code files, but even inefficient would be better than multiple copies of a project.
For an amateur project, and what would be more space efficient, a basic Python/whatever script could do the same.

It would create a folder named as the current date, then copy all .rpy and .py files as it. For images it would need a bit more works and the help of an index file.
For each image, it get its MD5 hash ; more unique that a CRC32, and still faster than other hashes. Then it would looks on the index if an image at this name exist. If yes, and the MD5 is the same, it skip the image. Else it copy the image and update the index.

He would then end with an effective copy of its project, having both the previous code and previous images, but only the code (that need near to no space) would be effectively duplicated.

And to rebuilt the project from the backup, copy the "text files" from the last backup folder, and the images from all the backup folders, starting by the first one ; overwriting each time it's needed.

It's obviously not as advanced as a versioning system, but strong enough for a personal use. Versioning system being effectively needed only when you aren't the only one to works on the project.
 

hiya02

Member
Oct 14, 2019
168
95
It's better to use a proper VCS system than some own hacks. That will save you a lot of headaches later! And who knows, maybe your project will fly and grow? Then you'd need to start using it anyway...
 
  • Like
Reactions: Nagozo