How to prevent rollback?

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Message
Author
Ikka

How to prevent rollback?

#1 Post by Ikka »

After you make choices, you can rollback and pick another option if the choice seems to lead to some unsatisfying situation - which is really unfair. I know, there are a few people who like doing that... Because I'm one of them. :lol:

How do you prevent rollback after making choices? I tried to read the Ren'Py tutorials but I think my head is about to burst... I'm really bad at studying...

JQuartz
Eileen-Class Veteran
Posts: 1265
Joined: Fri Aug 31, 2007 7:02 am
Projects: 0 completed game. Still haven't made any meaningfully completed games...
Contact:

Re: How to prevent rollback?

#2 Post by JQuartz »

Ikka wrote:How do you prevent rollback after making choices?
You can use renpy.block_rollbackhttp://www.renpy.org/wiki/renpy/doc/ref ... k_rollback
I suspect somebody is stealing my internet identity so don't believe everything I tell you via messages. I don't post or send messages anymore so don't believe anything I tell you via messages or posts.

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: How to prevent rollback?

#3 Post by PyTom »

Ikka wrote:After you make choices, you can rollback and pick another option if the choice seems to lead to some unsatisfying situation - which is really unfair. I know, there are a few people who like doing that... Because I'm one of them. :lol:
So you're trying to block something you like doing, in order to force the user into an unsatisfying situation? That seems user-hostile to me.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

Ikka

Re: How to prevent rollback?

#4 Post by Ikka »

PyTom wrote:
Ikka wrote:After you make choices, you can rollback and pick another option if the choice seems to lead to some unsatisfying situation - which is really unfair. I know, there are a few people who like doing that... Because I'm one of them. :lol:
So you're trying to block something you like doing, in order to force the user into an unsatisfying situation? That seems user-hostile to me.
Yeah. Because life is like that, you have to think very carefully before making choices. Once you've done something, there's no way you can redo it again, right? The only thing you can do is to fix things up as best as possible. And I'm aiming to create a situation like that in a VN -- If the players happen to choose an unsatisfying option, they will have other choices to pick so that they can patch things up. :)

But if they choose too many "wrong" options until the situation becomes disastrous, there's no helping. It's just like life. If you do something bad, you CAN patch things up. But doing it for so many times, isn't it a little hard to fix everything?

It's just like life. That's why they say "Look before you leap" and "Think before you talk". :lol:

Ikka

Re: How to prevent rollback?

#5 Post by Ikka »

JQuartz wrote:
Ikka wrote:How do you prevent rollback after making choices?
You can use renpy.block_rollbackhttp://www.renpy.org/wiki/renpy/doc/ref ... k_rollback
Thank you so much!

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: How to prevent rollback?

#6 Post by PyTom »

Ikka wrote:Yeah. Because life is like that, you have to think very carefully before making choices. Once you've done something, there's no way you can redo it again, right? The only thing you can do is to fix things up as best as possible. And I'm aiming to create a situation like that in a VN -- If the players happen to choose an unsatisfying option, they will have other choices to pick so that they can patch things up. :)
But the thing is, the game's interface leaks through in other ways. Unless you've disabled saving and loading, the user can always save at a choice, and load it back in again. Many users do this out of habit, especially in games that do not support rollback.

If you allow saving and loading while disallowing rollback, you're making the user substitute an inconvenient operation for a convenient one.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

User avatar
Aleema
Lemma-Class Veteran
Posts: 2677
Joined: Fri May 23, 2008 2:11 pm
Organization: happyB
Tumblr: happybackwards
Contact:

Re: How to prevent rollback?

#7 Post by Aleema »

Hmm ... true, PyTom. However, I can see the other side. I find I get into a habit of choosing each option and then rolling back all the time. The significant weight of choosing the right answer is absent, and it becomes more of a chore sometimes for those games with lots of options. I can understand the need to want to remove the rollback for decisions, because it prevents the player from breaking what's left of the "fourth wall" by wriggling their way around our code. Removing the rollback would force the player to weigh their decision at least a little more, if not only to spare them the effort of reloading. Part of the game aspect of the VN is to choose the right things to say. We could almost call the rollback cheating. ;)

Jo'ogn
Veteran
Posts: 398
Joined: Sat Jul 12, 2008 1:31 pm
Projects: Kassiopeia [iVN]
Location: Deutschland
Contact:

Re: How to prevent rollback?

#8 Post by Jo'ogn »

Ikka wrote:It's just like life. That's why they say "Look before you leap" and "Think before you talk".
A quite naïve approach. After all a VN is not 'life', but a VN, or a game. Game means to play through decisions without the fear of consequences.

I see it the other way round: if you try to force the player playing the available option ~your~ way, then it is 'unfair'. I am not playing a game to be told by the game how to make my choices.

Even more off-putting is using a system in which I am (and certainly many many other players are) ~used~ to the rollback feature and then being deprived of it needing to resort to save and reload. Which most players are likely going to do instead.


I understand your intention, though. Most VNs have only few options and most of them are rather 'coarse' leading you quickly down a path a player might not want to follow. Also too often choices follow a considerably shallow moral of "good choice vs. bad choice".

I doubt you will reach your intention by forcing the player through your options to feel more responsible for their choices. If you intend to create a more thoughtful game I don't think that you need to worry about the player using rollback, but rather writing content that reflects different outcome without attaching lables of 'good vs. bad'...

i.e. if you want ppl to stop using rollback, make a game design that doesn't need rollback to 'correct wrong' choices, but teach the player, that they are making choices in your game that change the circumstances. Or offer 'apology' options, which gives the player the option to feel responsible for their actions.
Audio Plays: [original] The White Feathers Directive - [Star Wars] Through Flame and Shadow
Ren'Py: Kassiopeia [very interactive VN] work in progress - looking for proof reader english

Counter Arts
Miko-Class Veteran
Posts: 649
Joined: Fri Dec 16, 2005 5:21 pm
Completed: Fading Hearts, Infinite Game Works
Projects: Don't Save the World
Organization: Sakura River
Location: Canada
Contact:

Re: How to prevent rollback?

#9 Post by Counter Arts »

I think it's the problem of immersion actually. If you always know you can rollback really easily then you don't feel the weight of choice.

It's kinda like how Silent Hill for the ps3 became less scary BECAUSE you could do more in combat.

As for the leaking interface part, phoenix wright games have the reload penalty.

What would be interesting would be to make a sort of Braid-like VN. I'm sure the game mappers would love something like that.
Fading Hearts is RELEASED
http://www.sakurariver.ca

chronoluminaire
Eileen-Class Veteran
Posts: 1153
Joined: Mon Jul 07, 2003 4:57 pm
Completed: Elven Relations, Cloud Fairy, When I Rule The World
Tumblr: alextfish
Skype: alextfish
Location: Cambridge, UK
Contact:

Re: How to prevent rollback?

#10 Post by chronoluminaire »

Yeah, I'm a huge fan of rollback, but I can see that for a significant number of people, having that available will break immersion. So I can see why game-makers might want to prevent rollback.

But the problem PyTom points out is significant. If you ban rollback, people can just save-and-load. If you ban save-and-load, people can just restart the game. If you ban restarting the game, people can uninstall-and-reinstall... etc.

I see the problem, but I can't see a good solution to it.
I released 3 VNs, many moons ago: Elven Relations (IntRenAiMo 2007), When I Rule The World (NaNoRenO 2005), and Cloud Fairy (the Cute Light & Fluffy Project, 2009).
More recently I designed the board game Steam Works (published in 2015), available from a local gaming store near you!

Mhari
Newbie
Posts: 18
Joined: Sat Jun 20, 2009 4:15 pm
Projects: Guess the Number; City of Ladies
Contact:

Re: How to prevent rollback?

#11 Post by Mhari »

Well, I think the people who will be thrown out of the story by it are the ones who wouldn't use it anyway. Like, say, me. :D I'm not *bothered* by rollback, but I don't find it particularly appealing.

Is it possible to turn it off by default, so that a player would have to deliberately turn it back on? Perhaps you could even use persistent data so that you have to play through once before you can turn rollback on. Still doesn't prevent them from reloading saves, but those are people you aren't going to convince no matter what you do; there are always going to be some people who simply don't want to play the way you expect them to.

Counter Arts
Miko-Class Veteran
Posts: 649
Joined: Fri Dec 16, 2005 5:21 pm
Completed: Fading Hearts, Infinite Game Works
Projects: Don't Save the World
Organization: Sakura River
Location: Canada
Contact:

Re: How to prevent rollback?

#12 Post by Counter Arts »

I'm just curious, can you save a variable that will be saved in a save file (not persistent) but not affected by rollback? I know it's potentially very dangerous and abuseable if you're not careful. But since people seem to really be insistent on using rollback I would be very curious to make that Braid-like VN game.
Fading Hearts is RELEASED
http://www.sakurariver.ca

User avatar
PyTom
Ren'Py Creator
Posts: 16096
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: How to prevent rollback?

#13 Post by PyTom »

Probably the easiest way to do this would be to create an _dict.

Code: Select all

label start:
     $ norollback = _dict()
     $ norollback["foo"] = 0

      "..."

      $ norollback["foo"] += 1

      "..."
 
Note that the no-rollback property only applies to the values in _dict. If you make it refer to an object, the fields of that object will rollback normally.

I haven't tried this, but it will probably work. Note that "work" is relative, as the semantics here can be very confusing... in the example above, norollback["foo"] can increase without a limit.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

Counter Arts
Miko-Class Veteran
Posts: 649
Joined: Fri Dec 16, 2005 5:21 pm
Completed: Fading Hearts, Infinite Game Works
Projects: Don't Save the World
Organization: Sakura River
Location: Canada
Contact:

Re: How to prevent rollback?

#14 Post by Counter Arts »

Yeah... I wouldn't want to do something like increment. More like an assigning variable to be a value.

So I make something like a primary type in a dictionary? The constructor is a _dict() and not a dict()?
Fading Hearts is RELEASED
http://www.sakurariver.ca

Ikka

Re: How to prevent rollback?

#15 Post by Ikka »

i.e. if you want ppl to stop using rollback, make a game design that doesn't need rollback to 'correct wrong' choices, but teach the player, that they are making choices in your game that change the circumstances. Or offer 'apology' options, which gives the player the option to feel responsible for their actions.
Yeah, that's why I wanted to do.

And about the save and load options thingy, I knew it from the start. :D I just wanted to prevent rollback, that's all. Even if you save and load, different choices have different effects. A good choice may lead to "bad endings", and so on. So it's more like experimenting the choices and stuff... Isn't it more fun that way? Because I like games like that... It makes you really curious to know what happens next when you click something.

Well! I just like to experiment things... We don't have to start up a debate just because of some rollback thingy... :wink:

Post Reply

Who is online

Users browsing this forum: Google [Bot]