To skip or not to skip? - renpy game preference

eXtease

Newbie
Apr 19, 2021
27
44
Hi all.

I am currently finishing the last details before building my game and I am stuck with an annoying question about skipping.
I use renPy but my game has some gameplay elements (that may look a bit weird if skipped), and I wouldn't consider it a "visual novel" (only story and choices).

I was about to completely disable skipping (hard disable, and skipping options), as it can mess up those gameplay sections and the flow of the game, but reading around I've seen that this may be considered "rude" by some players.


So, I would like to hear your opinion on this.
Do you think that skipping must stay as an option or be completely removed?
 

Deleted member 795684

Active Member
Aug 2, 2018
612
634
It definetely should be in it. I never skip in my first playthrough of games but after the first time it can be annoying or some people just skip the dialogues(why they don't just watch regular porn then is beyond me), another thing is you may lose or delete your save and want to skip the parts you've already seen after you start again etc.

In short: Keep it.
 

Marcibx

Newbie
May 5, 2018
88
85
Besides the practical reasons that hele melekele has listed, you would have to have amazing writing.
And I am sure you are happy with it - as one should be - but don't be arrogant and assume that it will please everybody.
It is a bit like baby pictures: sure, you cannot have enough of your own child's, but others get annoyed at the 10th photo.

So yeah, keep it if possible, but I would also have to know exactly what game mechanism would be broken by it to give you a definitive answer.

Either way, good luck with the game ;)
 
  • Like
Reactions: eXtease

AnimeKing314

Giant Perv
Game Developer
Jun 28, 2018
395
597
As said, definitely better to keep it. Maybe see if you can put in a hard pause or something before the parts that it would break to warn players that skipping can break said part. If a hard pause doesn't actually stop the skipping putting a choice before the part and then warning about the upcoming part at the choice should work. And by this I don't mean a random meaningless choice but one that makes sense within the context of the game.
 
  • Like
Reactions: eXtease

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,376
15,289
I was about to completely disable skipping (hard disable, and skipping options), as it can mess up those gameplay sections [...]
Then just force the game to stop skipping when it enter one of the sections that is effectively not compatible with it.

It's relatively easy to do :
Python:
default previousSkip = None

label whatever:
    "blablabla content safe to skip"
    call skipSecurity
    "Blablabla the content that skip break"
    call skipRestore
    "blablabla content safe to skip"

label skipSecurity:
    # Just a security to avoid having to use /after_load/.
    $ previousSkip = None
    # Is the player skipping ?
    if renpy.config.skipping:
        # Keep the effective skipping state
        $ previousSkip = renpy.config.skipping
        # Warn the player
        $ renpy.notify( "The skipping will be restored once it will be safe to skip." )
        # Turn the skipping off
        $ renpy.config.skipping = None
        # Temporarily disallow skipping
        $ _skipping = False
    return

label skipRestore:
    if previousSkip:
        # Allow skipping again.
        $ _skipping = True
        # Restore the previous skipping state.
        $ renpy.config.skipping = previousSkip
        $ previousSkip = None
    return
This being said, if your game mechanisms aren't compatible with the skip feature, it generally mean that the said game mechanisms have a flaw in their design.

The engine is designed to be totally compatible with the skip feature, what mean that there's really few, if not none, reasons for it to break something, unless you're not doing it like you should. And if something like the Skip feature break your game mechanisms, then there's surely other ways to break it, ways you haven't encountered but that, perhaps, some of your players will.
Therefore, it's better to understand why your code isn't compatible with skipping, and to solve this, than to try to fix the symptom, will keeping the cause.
 

eXtease

Newbie
Apr 19, 2021
27
44
Then just force the game to stop skipping when it enter one of the sections that is effectively not compatible with it.

It's relatively easy to do :
Python:
default previousSkip = None

label whatever:
    "blablabla content safe to skip"
    call skipSecurity
    "Blablabla the content that skip break"
    call skipRestore
    "blablabla content safe to skip"

label skipSecurity:
    # Just a security to avoid having to use /after_load/.
    $ previousSkip = None
    # Is the player skipping ?
    if renpy.config.skipping:
        # Keep the effective skipping state
        $ previousSkip = renpy.config.skipping
        # Warn the player
        $ renpy.notify( "The skipping will be restored once it will be safe to skip." )
        # Turn the skipping off
        $ renpy.config.skipping = None
        # Temporarily disallow skipping
        $ _skipping = False
    return

label skipRestore:
    if previousSkip:
        # Allow skipping again.
        $ _skipping = True
        # Restore the previous skipping state.
        $ renpy.config.skipping = previousSkip
        $ previousSkip = None
    return
This being said, if your game mechanisms aren't compatible with the skip feature, it generally mean that the said game mechanisms have a flaw in their design.

The engine is designed to be totally compatible with the skip feature, what mean that there's really few, if not none, reasons for it to break something, unless you're not doing it like you should. And if something like the Skip feature break your game mechanisms, then there's surely other ways to break it, ways you haven't encountered but that, perhaps, some of your players will.
Therefore, it's better to understand why your code isn't compatible with skipping, and to solve this, than to try to fix the symptom, will keeping the cause.
Thank you for the tip.
I also considered this (using a simple option call before the segment), but the issue with Loading and lack of time made me want to add a game-wide skip block.

I will use your suggestion and stop the skip just in those sections.


About the game design flaw.
I was thinking of making it using other game engines, as for me it does not matter that much.
But renPy gave the fastest and most consistent results for the "VN" part of the game and so I had to adjust the "gameplay" part to make it fit with renPy.

I am quite happy with the result (it is quite basic now, but it will get a bit more complex on future updates).
The skipping part was not game-breaking, it just looked a bit "off", but it worked.
Later on I will add some progress bars and when I'll do that the skip must be completely stopped.


Thank you again for the code!
 

eXtease

Newbie
Apr 19, 2021
27
44
Thank you all for the replies, skip option will stay!

I will implement a stop-skip only in the gameplay sections and only when needed (later for more complex gameplays with progress bars and such).
Everything else will be "skip-friendly" :)

Well, that was great, now I can move on with the build.
 
  • Like
Reactions: hakarlman

eXtease

Newbie
Apr 19, 2021
27
44
Just out of curiosity, what feature did you add that wasn't very compatible with skipping?

A very simple (ultra simple) "turn based" combat system. The skip is making the turns go so fast and the sound and some of the effects will be a bit "wonky", but it works fine.

Later on the combat system will be drastically improved (multiple weapon slots, firing modes, combat consumables will be added) and the enemies will gain new effects and new "abilities" including charging up ones. I will like for the player to take a bit of time on each turn and not be able to fast-skip the sequence.

And another section will use a progress-bar to represent the "scavenging" process. Skipping it will make the entire thing useless :).
 
Last edited:

AnimeKing314

Giant Perv
Game Developer
Jun 28, 2018
395
597
A very simple (ultra simple) "turn based" combat system. The skip is making making the turns go so fast and the sound and some of the effects will be a bit "wonky", but it works fine.

Later on the combat system will be drastically improved (multiple weapon slots, firing modes, combat consumables will be added) and the enemies will gain new effects and new "abilities" including charging up ones. I will like for the player to take a bit of time on each turn and not be able to fast-skip the sequence.

And another section will use a progress-bar to represent the "scavenging" process. Skipping it will make the entire thing useless :).
Ah, nice. Ya it definitely makes sense for stuff like that to be non-skippable and I doubt anyone would complain about that. In this case I would say it's not a flaw in the game mechanism it's just not something you would generally expect in a ren'py game since it's usually a feature reserved for RPG games. But considering my players have requested the same thing and I'm likely to implement the same thing at some point I can't say I'm against the idea.
 
  • Like
Reactions: eXtease

hakarlman

Engaged Member
Jul 30, 2017
2,099
3,274
A very simple (ultra simple) "turn based" combat system. The skip is making the turns go so fast and the sound and some of the effects will be a bit "wonky", but it works fine.
On 'skip keypress down', perhaps you can disable sound temporarily, then on 'skip keypress up' enable the sound again?
 

chainedpanda

Active Member
Jun 26, 2017
638
1,117
Skip is a must have for me. Especially in games which spark repeated dialogues often. In addition, many people restart their game for a myriad of reasons. without skipping, your game would become much more of a chore rather than a game for most people.
 

Cryptist

Member
Aug 20, 2020
316
473
I turn to skipping when I find myself in a game with many dialogue exchanges for a single graphic. If the art doesn't change, I slip until it does.
 
  • Like
Reactions: eXtease