Ren'py Block Rollback

Sdílet
Vložit
  • čas přidán 7. 09. 2024
  • In this ren'py tutorial, learn how to block users from reading previous passages in your visual novel (rollback), but also, please don't do that.
    Don't.
    Don't even watch this video, just forget this whole thing.
    oh my god you're still watching it?
    okay, wow, sure, ok

Komentáře • 52

  • @Katy133
    @Katy133 Před 2 lety +30

    Keep in mind devs that rollback can be a helpful accessibility feature for players who misclick, so turning rollback back on afterwards can prevent frustration. The History screen lets you re-read previous text, but is slower to pull up and doesn't replay visual changes. Thank you for the videos, Vimi.

    • @vimi
      @vimi  Před 2 lety +5

      I wouldn't have made this video, but apparently it's a thing lots of people search for on youtube??? I really don't want people to use this lol.

  • @Mjumiman
    @Mjumiman Před 2 lety +6

    Very useful and to the point as always! Not going to use rollback block anytime soon (I want players to explore different choices in my next project), but it's great to know that it exists.

  • @DanQcaT
    @DanQcaT Před rokem +8

    I hate blocking rollback. Everytime I found VN made not in RenPy, rollback test is the first test I make... and if it doesn't support rollback, I think twice if I wanna play that game...

  • @crugg
    @crugg Před 3 měsíci +3

    "Check out this video" he says whilst pointing into the middle of nowhere xD

  • @acorn-library
    @acorn-library Před 2 lety

    Now I really want to see that persistent variables video xD
    ...
    No, please don't stress! Take it easy.
    As a Ren'py newbie and as ...just a person I really love and appreciate your content. Go Vim!
    No rollback seems like just the feature I am looking for. After consuming ...a lot of visual novels I find that the rollback feature takes the seriousness or dread or whatever one is aming for out of the choice. Thanks =)

  • @blue6694
    @blue6694 Před 2 lety +6

    This was so helpfull! I was wondering if you could do a tutorial on how to make an unlockable image gallery. I have been having some issue with it and would love to see what you come up with. Thank you so much! Great videos as always!

    • @vimi
      @vimi  Před 2 lety +1

      I'll think about it - is there a specific part about building an unlockable gallery that you're having trouble with?

    • @blue6694
      @blue6694 Před 2 lety +2

      @@vimi I can make a standard image gallery. But I am trying to make one where only the images shown during the run are unlocked as there are multiple routes. So functioning more like achievements. But I also want some BTS images to be shown in the gallery regardless of the other images unlocked. Hopefully, that makes sense lol

    • @vimi
      @vimi  Před 2 lety +3

      @@blue6694 OH! This is how I'd do that:
      You'll want to set a persistent variable for each of your images to see if they're unlocked (you can use a variable list too, but this way is a little easier to parse). When the user unlocks the image, set the persistent variable from False to True.
      In your gallery screen, set if/else statements for each of the images; if the image variable is True, show the image, if False, don't show the image. Yes, "if statements" work on screens!
      There's a lot of variance you can do from there, but that's probably the easiest way about it.

    • @blue6694
      @blue6694 Před 2 lety

      @@vimi thank you so much! I’ll give it a shot!

  • @starryeyed110796
    @starryeyed110796 Před 2 lety +6

    Stuff like this is why I have trust issues, and why I always save before choice menus 😂
    Isn't there also a thing that let's you rollback after choices, but doesn't let you "change" your choice?

    • @vimi
      @vimi  Před 2 lety +2

      Yeah - you'd want to have your game check for a persistent variable before moving you to the menu choice - otherwise, you'd skip your player past that menu choice.

  • @igretrovods9189
    @igretrovods9189 Před 2 lety +3

    I wonder if there’s a way to make a different dialogue for players who reloaded and changed the answer. Like a little easter egg

    • @korytoombs886
      @korytoombs886 Před rokem

      Persistent variable that deletes if game is restarted.

  • @igretrovods9189
    @igretrovods9189 Před 2 lety +1

    Thanks for the video again! At the end you did not put the video you were talking about. But if I use this command one will it block all rollbacks or should I use it over and over? Or is there a specific command that will block rollback altogether in the game? I need to block all rollbacks in the game
    edit: found it! - define config.hard_rollback_limit = 0

  • @gearfriedtheswmas
    @gearfriedtheswmas Před 2 lety +1

    Making stuff persist even if loading previous saves is one of the most obnoxious things you can do.

    • @vimi
      @vimi  Před 2 lety +1

      It depends highly on the context - there are definitely enriching ways to do it (like, let the player skip a tutorial if they've played before), but this ability can be used for EVIL in the wrong hands...

    • @n3kkidninj4
      @n3kkidninj4 Před 2 lety +1

      @@vimi Im still learning so way off from this project, but my idea is for a time looping game where on the first play thru it's more otome and through subsequent plays you unlock the harem path. For now I'm just gonna try a few small projects to learn the ropes and your videos have super helpful.

  • @aming6327
    @aming6327 Před 2 lety +2

    Please help us, the devs
    in ren'py there is a big problem that is when you need to use a screen in the game and you want it to not allow the player to open the "Game_Menu" but this input is impossible to remove because it was mapped in some crazy way since it is meui that an absolute input and cannot be removed or replaced

    • @vimi
      @vimi  Před 2 lety

      You can disable pathways to get to the main menu screen via the screens page - just remove those links - but it won't remove keybindings.
      To remove keybindings, you need to go into renpy/common/00keymap.rpy and manually disable those keys - this will affect every game you create a distributable for, so be sure to revert the changes back when you're done.

  • @SoberSphere-wp1be
    @SoberSphere-wp1be Před 7 měsíci +1

    one year later still waiting for persistent variables

    • @vimi
      @vimi  Před 6 měsíci

      I included it in my Ren'py Steam Achievements video, but I'll take some time and make it its own separate video!
      czcams.com/video/16AEd-is1Gc/video.html

  • @groynin
    @groynin Před 2 lety +1

    I think you can also remove rollback from the quickbar right? And also the quicksave or save menu, if you want to make the game full commitment mode you can maybe even take Save out of the main menu completely and just have it enabled in certain places like a 'home base' screen or something like that.
    I love rollback, but I always cheat when I have the chance of choosing one option and then going back to choose the 'right' one, so it might be interesting to turn that off for a more serious, choices driven game.

    • @vimi
      @vimi  Před 2 lety

      I'll have to look at those other user-facing methods of manipulating rollback!

    • @renpytom
      @renpytom Před 2 lety +1

      The way I see it, by blocking rollback you're taking agency away from the user. This might make sense for something like a rougelike, but Ren'Py really isn't the tool to make those. For the rest of it - if your game has endings that are so unsatisfactory that the user is going to immediately roll back and replace them, that's kind of a failure of the you as a game designer, isn't it?

    • @groynin
      @groynin Před 2 lety

      @@renpytom Have you never made a choice in a game and then seeing the results of that made you want to reload or rollback? If you can rollback the player might be making choices willy nilly just to see what happens, but if you want them to really think about it and take them seriously, taking that ability away is a way of doing it.
      Also, this would be something for some very specific types of game, and I'm just pointing out that it can be done, not saying that everyone should do it in every game.

    • @renpytom
      @renpytom Před 2 lety

      @@groynin Yes, I have seen that. I think well-designed games value the player, generally by making the bad ends interesting enough the players want to pursue them. (Take a look at the recent 'Bad End Theater' for a good example of this.) I tend to think when the player is doing something you don't want them to do, you need to ask what's motivating them to do that, rather than just blocking the action.
      I mean, I get that block_rollback has a use - I put it in for a reason. But I do think it tends to be used as a bit of a crutch, so I wanted to point that out.

    • @vimi
      @vimi  Před 2 lety

      @@renpytom you've just planted some ideas in my brain lol

  • @thethunderstirke9377
    @thethunderstirke9377 Před měsícem

    i have a problem all my vn whit a rollback option auto rollback how can stop it?

  • @dream_gamess
    @dream_gamess Před rokem +1

    Hi! I watched all your videos, but I couldn't find any specific instructions on how to completely disable the skipping option. I also went through quite a lot of posts on the internet but I couldn't find anything that would help me... Could you please give me some advice?

    • @vimi
      @vimi  Před rokem

      I think if you go into keymap.rpy, you can comment out everything in the "skip" section, and that should keep the player from skipping!

    • @dream_gamess
      @dream_gamess Před rokem

      @@vimi Sorry, but where can I find "keymap.rpy"? I don't have much experience, I'm more or less just a beginner, but I didn't find such a file...

    • @vimi
      @vimi  Před rokem

      @@dream_gamess it should be in the renpy/common folder. Be sure to uncomment those lines out after you do a build, or else it will turn off skip for the next game you build too!

  • @hellaneubauer3869
    @hellaneubauer3869 Před 2 lety +1

    Hi, I've just started my first project after watching your videos. As I opened the script I realized that I can only use the notepad app on my laptop, which is very bland compared to what you use.
    So my question is this: How can I get the platform that you use to write the code? (one with the colored texts and numbers for the rows)

    • @vimi
      @vimi  Před 2 lety

      Sure! In your Ren'py Launcher, go into Preferences (that's between update and quit under Launch Project), and under "Text Editor" on the left hand side, select "Atom".
      (If you don't see it there, you may need to download Atom manually from atom.io/, first.)
      Then, when you open any of the .rpy files under Edit File, it should open them using the Atom text editor! Hope that helps!

    • @hellaneubauer3869
      @hellaneubauer3869 Před 2 lety

      @@vimi Thank you so much!

  • @JuleSan_jk
    @JuleSan_jk Před 2 lety +1

    I have an blocked mind in case of what to change in options to release the game, at any state, packed to .rpa. Just pressing the Build Distribution button will zip it, but all files are still editable, ahhh. And the documentation... I don't pack it XD

    • @vimi
      @vimi  Před 2 lety +1

      I don't worry about it - most players won't care about your code, and the players that do will know how to get to it!

    • @JuleSan_jk
      @JuleSan_jk Před 2 lety +1

      @@vimi I see. But wouldn't it look a bit more pro if it's an rpa? ;D At least it could be an video idea, maybe? XD

    • @vimi
      @vimi  Před 2 lety +1

      @@JuleSan_jk I'll look into it!

    • @JuleSan_jk
      @JuleSan_jk Před 2 lety

      @@vimi Thank you very much

  • @fuzai_koi
    @fuzai_koi Před 2 lety +1

    I was wondering about this! I'm experimenting with an otome style game, and don't want people to go back after making a choice
    Is there a way to only make saving available at certain points in the game instead of whenever you want?

    • @vimi
      @vimi  Před 2 lety +1

      Yup! You can just remove the links to the save feature in the main menu and quick menu, and remove the hotkeys associated with it (that last one is a bit harder).
      In my first game, I autosaved for the player as the game went along, but you could easily turn that into a button prompt for the player!

    • @fuzai_koi
      @fuzai_koi Před 2 lety

      @@vimi ohh :00 how would you go about auto saving?

    • @vimi
      @vimi  Před 2 lety +1

      I only used it to autosave on quit, which is just one line of code under init python:
      config.autosave_on_quit = True
      Alternatively, you can set the game to autosave on any choice using "config.autosave_on_choice = True" instead.

    • @fuzai_koi
      @fuzai_koi Před 2 lety +1

      @@vimi thank you sm!

  • @fay_die_fee
    @fay_die_fee Před 2 lety +1

    Is there an option to stop rollback completely?

    • @vimi
      @vimi  Před 2 lety +1

      Under init python, add the line "config.hard_rollback_limit = 0".
      I'd recommend changing the "0" to at least a slightly higher number, so if a user accidentally pressed a mouse button too fast, they can at least see what line they missed.

    • @fay_die_fee
      @fay_die_fee Před 2 lety +1

      @@vimi Thank you very much. But I must keep it at 0. I have turn based fighting in my game and I notice that you can use rollback to redo your turns.

    • @n3kkidninj4
      @n3kkidninj4 Před 2 lety

      @@fay_die_fee Yeah I've personally used rollback to cheese a number of fights in many games.