ich0

Newbie
Dec 14, 2018
66
37
You realize that story elements aren't the only things that require variables, right?
I am not sure what programming language renpy works with or what the framework limits you with, so I cant be sure to know what to do (sadly).

In general, you could plan the future possible content for some planned versions and set aside the variables. (not that you are forbidden to revamp the program and break saves)
For example, you can generate a list of characters and events for each place, you can then add and work with them without adding more new variables. If you add something, you can initialize them all with standard values.

In my head, this could help a lot if the framework gives you the freedom to do so.
 

Misarmor

Large member
Game Developer
Feb 1, 2023
508
853
I am not sure what programming language renpy works with or what the framework limits you with, so I cant be sure to know what to do (sadly).

In general, you could plan the future possible content for some planned versions and set aside the variables. (not that you are forbidden to revamp the program and break saves)
For example, you can generate a list of characters and events for each place, you can then add and work with them without adding more new variables. If you add something, you can initialize them all with standard values.

In my head, this could help a lot if the framework gives you the freedom to do so.
You answered your own question in your question. Even if I take months to plan things ahead, all the minigames, systems required for X or Y story line, if I forget ever 1 variable for a system that system will possibly unusable, and those months of planning will have been useless.

What I could do for the future is to prepare saves for every version I release, a "skip to content" if you will. But with the relatively small amount of content the game has (you can complete everything in about 2 hours if you're a new playern perhaps less), I didn't think that was necessary.
 
  • Like
Reactions: Marcus_S

qchill44

Newbie
Dec 7, 2022
69
53
I came here to "complain" about the game since for the 4th time I have to start from the scratch for practically 1-2 minutes of nothing,,, only to find out others complain about it as well and the developer saying that this is the norm and for each update I/we will have to start from 0 again and again... sorry but I am not a masochist, thanks for the game but no thanks.
 

ich0

Newbie
Dec 14, 2018
66
37
You answered your own question in your question. Even if I take months to plan things ahead, all the minigames, systems required for X or Y story line, if I forget ever 1 variable for a system that system will possibly unusable, and those months of planning will have been useless.

What I could do for the future is to prepare saves for every version I release, a "skip to content" if you will. But with the relatively small amount of content the game has (you can complete everything in about 2 hours if you're a new playern perhaps less), I didn't think that was necessary.
Maybe I should ask a Question first. What if:
I have one or more List of Events and only add events there. If I change an Event in this by adding a variable, only this event should be corrupted. This can be repaired at the start of the game, the reading of the save or the loading of the event itself.

If you add new Pages or Events, the framework should have no problem with freshly created variables or not?

If you are renaming variables, you have to build a converter and run it before a save is being read by the game.

Unfortunately, I can't say if and how any of this would work with Renpy and how much work this would cause.

Thanks for your time.
 

Insomnimaniac Games

Degenerate Handholder
Game Developer
May 25, 2017
3,053
5,440
You answered your own question in your question. Even if I take months to plan things ahead, all the minigames, systems required for X or Y story line, if I forget ever 1 variable for a system that system will possibly unusable, and those months of planning will have been useless.
I don't know a lot of Renpy, I haven't delved into the code for this game, and you might have already looked into it and decided it's not applicable, but have you tried looking at implementing an "after_load" label that fixes saves? Better explained .

This might not be the solution, but I thought I'd offer it up just in case. If this is stupid, just ignore me and carry on. My Renpy experience only amounts to some light modding.
 
  • Like
Reactions: ich0

Misarmor

Large member
Game Developer
Feb 1, 2023
508
853
I don't know a lot of Renpy, I haven't delved into the code for this game, and you might have already looked into it and decided it's not applicable, but have you tried looking at implementing an "after_load" label that fixes saves? Better explained .

This might not be the solution, but I thought I'd offer it up just in case. If this is stupid, just ignore me and carry on. My Renpy experience only amounts to some light modding.
I did, but that didn't seem compatible with how complex some systems are. I use Python classes for example, what happens if I I change a member of a class? Does the entire class get erased? That's stuff I need to look into.
 

Insomnimaniac Games

Degenerate Handholder
Game Developer
May 25, 2017
3,053
5,440
I did, but that didn't seem compatible with how complex some systems are. I use Python classes for example, what happens if I I change a member of a class? Does the entire class get erased? That's stuff I need to look into.
I thought that'd be the case. And that's definitely a question for someone way more knowledgeable than me. I wish you luck on trying to figure it out!
 
  • Like
Reactions: ich0

GetOutOfMyLab

Conversation Conqueror
Modder
Aug 13, 2021
6,382
17,033
I did, but that didn't seem compatible with how complex some systems are. I use Python classes for example, what happens if I I change a member of a class? Does the entire class get erased? That's stuff I need to look into.
Two people have pointed me to this thread regarding saves, so I'll chime in real quick and then peace out.

My Ren'Py port of the game Long Story Short (check my sig) also uses python classes. I've not received any reports of saves going bad since I released it about a year and a half ago, or so. I've had to modify the classes due to various reasons, whether to add new properties or remove something.

Using the Ren'Py after_load label allowed me to do so. An example:
Python:
            # Changes to classes
            if not hasattr(mc, "told_ann_blackmail"):
                mc.told_ann_blackmail = False
            if not hasattr(mc, "ann_late_gf"):
                mc.ann_late_gf = False
            if not hasattr(mc, "ann_late_hate"):
                mc.ann_late_hate = False
            if not hasattr(mc, "chris_status"):
                mc.chris_status = ""
            if not hasattr(mc, "mean"):
                mc.mean = 0
You can also delete if you no longer need a particular property:

Python:
        # Changes to classes
        if hasattr(insta, "triggers"):
            $ del insta.triggers
Hope this helps.
 

Misarmor

Large member
Game Developer
Feb 1, 2023
508
853
Two people have pointed me to this thread regarding saves, so I'll chime in real quick and then peace out.

My Ren'Py port of the game Long Story Short (check my sig) also uses python classes. I've not received any reports of saves going bad since I released it about a year and a half ago, or so. I've had to modify the classes due to various reasons, whether to add new properties or remove something.

Using the Ren'Py after_load label allowed me to do so. An example:
Python:
            # Changes to classes
            if not hasattr(mc, "told_ann_blackmail"):
                mc.told_ann_blackmail = False
            if not hasattr(mc, "ann_late_gf"):
                mc.ann_late_gf = False
            if not hasattr(mc, "ann_late_hate"):
                mc.ann_late_hate = False
            if not hasattr(mc, "chris_status"):
                mc.chris_status = ""
            if not hasattr(mc, "mean"):
                mc.mean = 0
You can also delete if you no longer need a particular property:

Python:
        # Changes to classes
        if hasattr(insta, "triggers"):
            $ del insta.triggers
Hope this helps.
I didn't know you could check for class properties this way :unsure: thanks for the heads up!
 
2.90 star(s) 47 Votes