Instance snapshot and rollback #2310
benjamin051000
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Have you ever changed a setting that broke your game and spent longer than 1 click trying to undo that change?
Prism allows you to do useful things like export saves even if you can't launch the game, but if a mod or setting change corrupts your save file, you're screwed.
I propose something akin to a "snapshot" and "rollback" system. Consider the following:
Prism keeps track of modifications made to an instance in a list/tree:
Let's say that step 3, changing the mod loader, introduces a crash/instability/undesired behavior. Currently, my only option is to remember what I changed so I can manually undo it. If I don't remember what I did before, then I might be screwed. I'd rather have a tool that allows me to move backward in time, automatically reverting/reapplying changes.
This would make modding/tweaking much less risky. Additionally, I no longer have to remember what I did or manually make copies of my instance every time I want to tweak something.
I see a few potential tough-to-solve problems with this approach. I will list them here along with any ideas I have on resolving them.
- How is this better than simply copying the instance every time you want to make a potentially breaking change?
Every change is a potentially breaking change. I want to be able to easily revert a change without having to remember what it was. Also, copying the instance each time is annoying and leads to a cluttered instance list.
- What about my saves?
It should be possible for saves to "time-travel" back to a previous point in time, but with necessary warnings that they could be corrupted due to this. If you just changed your memory allocation for example, you should be able to bring the save back without any issues (correct me if I'm wrong). But if traveling in time removes a terrain gen mod, expect issues. It's really up to you to read the timeline and understand whether or not you will encounter issues by bringing your saves with you.
- How would we "snapshot" an instance?
I can think of a few ideas:
- How could we keep track of changes in the way described?
Git, of course! Just kidding... 👀
If not, Prism can keep track of the settings you edit, and create a diff between the current state of the instance and the previous snapshot. Using that, you can trivially roll back and forth and have it auto-update the relevant settings. We're essentially just editing text files most of the time, that's easy to do automatically.
Let me know what you all think!
Beta Was this translation helpful? Give feedback.
All reactions