Ren'Py Need build guidance for kinetic novel with variations

obsessionau

Member
Game Developer
Sep 27, 2018
268
368
I am half way through a kinetic VN which is basically a recreation of a Korean Manhwa.

The story has 60 chapters which I have divided into 60 labels in 6 files and for now it follows the original Manhwa very closely.

However the original Korean version is rather 'rapey', and there are a number of scenes and scripting I would like to see done different.
Instead of presenting my own modified version I was wanting to have theme preferences from a options screen. For example choosing between a Korean or Japanese themed version. The Korean version would follow the original story as close as possible, where as the Japanese style would replace the Korean styling with that more typically found in Japanese manga such as hot springs / changing rooms / roof top etc... I would also hide the more graphical rape content but also change one of the minor characters to being his sister.

How would you go about implementing this?

My original thought is to have a number of boolean flags and whenever I modify the script to put the modified script under one of these flags. So if the flag was false it would just use the original content, but if it was true it would show the modified scene instead. This way the player could go to the options screen and turn on and off the various themes that they enjoy/dislike.

Quick theme: [ ] Original Korean Manhwa Style [ ] Japanese Manga Style
Advanced:
[ ] Reduced rape scenes
[ ] Incest
[ ] Reworked script
[ ] Modified ending (childhood friend)
[ ] Remove NTR

I was also thinking it might be nice to have chapter markers going across the top of the screen, and whenever you tick a option it showed graphically which chapters were modified by selecting this option (perhaps by adding a symbol against the chapter or modifying its colour. This bar could also serve as a quick jump to marker.
I did a quick experiment in photoshop with a couple of styles as I was concerned with so many chapters how it would fit. The bottom bar in the image below would show the chapter number only on a mouse over.

1618620972133.png

My reasoning for the above is that a person typically won't want to read the whole story again just to see a modified style, but may still want to see the content or know what is modified by selecting that option. Although there will likely be times that a chapter is affected by multiple options which may make it rather messy.

So again what would be your approach and thoughts with coding this type of flexibility into your VN?
 
Last edited:
  • Like
Reactions: Echoooooo

AnimeKing314

Giant Perv
Game Developer
Jun 28, 2018
395
597
I have similar controls in mine that make their debut in the next update. Essentially I created a menu (similar to the preferences menu) with a bunch of toggles for all the different fetish options. When the player turns an option on or off it changes a persistent variable to true or false. Then I just need to check for the state of the variable at any point during the game that it matters. By implementing it as a menu, the player can change the options at any time. As for the chapters getting messy if they switch between, I'd say just make sure it's at least playable no matter when the players switch. Most players will understand if the story doesn't make perfect sense if they've been switching between the different options as long as doesn't completely break the game or prevent them from progressing.
 
  • Like
Reactions: obsessionau

GNVE

Active Member
Jul 20, 2018
701
1,158
I'm still busy with implementing but I put these options a separate preferences screen (though in this case just put it in the standard preferences screen) and made the switches call back to a persistent variable. In the gamescript itself you can just use a series of if statements to determine what scene to show. Didn't do any styling so you'll have to figure that out yourself ;)

so the top question in this case would look like this:
Python:
vbox:
   style_prefix "radio" #makes it function so only one option can be active
   label _(" Quick theme: ") #The question asked
   textbutton _(" Original Korean Manhwa Style ") action SetVariable("persistent.style", "korean") #The actual options
   textbutton _(" Japanese Manga Style ") action SetVariable("persistent.style", "japanese")
and the question below it would look like this:
Python:
vbox:
    style_prefix "check" #Allows multiple options
    label _(" Advanced: ")
    textbutton _(" Reduced rape scenes") action ToggleVariable("persistent.rape", True, False), action SetVariable("persistent.style", "custom")
    textbutton _(" Incest ") action ToggleVariable("persistent.incest", True, False), action SetVariable("persistent.style", "custom")
    ...
Then put the persistent variables somewhere logical:
Python:
default persistent.style = "korean" #Sets the default option to Korean
default persistent.rape = True
...
and finally in the script you need to put a few if statements before the scenes that diverge:
Python:
python:
    if persistent.style == "korean":
        renpy.jump('korean_friendintro')
    elif persistent.style == "japanese":
        renpy.jump('japanese_sisterintro')
    else:
        if persistent.incest == True:
            renpy.jump('japanese_sisterintro')
        else:
            renpy.jump('korean_friendintro')
(my own implementation will be slightly more advanced/overkill than that but these are the basics)
 
Last edited:
  • Like
Reactions: obsessionau

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,581
2,219
An options screen is a possibility.
Though I would locked it after a specific place in the story. It becomes a nightmare when the player can switch this sort of content off and on again on a whim. Especially if you have scenes that acknowledge events in previous scenes.

My preferred solution to this sort of stuff though is "best 2 out of 3" mechanic.

For each type of content, have three low level scenes during the early part of the game that strongly "hints" at the sort of content - and give the player the choice to opt out of seeing it each time ("No, I'm not going to pull my sister's panties down while she's sleeping).. Have each of those three scenes escalate slightly, so the player knows the sort of choice they are making by the 2nd.

For each "opt-out" the player gains +1 to an integer variable.

If the player likes that sort of content, they should score 0 or 1. If they score 3, they are definitely against it. A score of 2 probably means it's not really their thing (of they didn't understand the choices when they were making them).

Regardless, only show the "real" content to people who scored 0 or 1.

There are variations on a theme. You could avoid the 3rd scene completely if the player has reached +1 for either of the two previous scenes. Or you could score +2 for the 3rd scene by making it a bit less "hinty" than the first two. You could have some more "tame" scenes which show if the player scores 2.

You could combine both solutions and have a notification after the 3rd choice as the game decides the player is or is not going to see future scenes and use that to set the options screen to either True or False.
 

obsessionau

Member
Game Developer
Sep 27, 2018
268
368
In the gamescript itself you can just use a series of if statements to determine what scene to show.
<snip>
What AnimeKing and yourself have mentioned looks to be what I had in mind except the Japan and Korean options would essentially be "quick set defaults" to give that style/flavour of game and would adjust a series of variables.

So when they tick Japanese, it goes through adjusting the flags like incest, hide rape, hot springs etc... The player can then fine tune this in the advanced bit turning options back off/on.

For each type of content, have three low level scenes during the early part of the game that strongly "hints" at the sort of content - and give the player the choice to opt out of seeing it each time
Having flags that escalate in the game that affect content later on really bugs me! I don't know where that content changes, am I missing out on anything or is it the same scenes but with slightly different text???? I can't be bothered flicking through 4 hours of content to see the 5 extra scenes. Only to realise that there was 6 extra scenes and I skipped that one at some point?

Plus because it relies on the player selecting escalating options through the game they don't even have the option of going to a save right before the content change unless they CTRL-O and hard set the variable.

This does work well for things like sex positions or getting with particular characters. But many of the options in my game are not related to the events, but more so the readers experience. For example when the female lead character tells the protagonist about how she was kidnapped. Do you want to see what happened as she tells him, or should we just have the camera pan up to the sky and fade. - Asking the reader if they would like to "skip" during the story would make the reader feel like they are missing out on content.

It is similar to a third option I was thinking about that was a more traditional player setup option you find in RPG games..

Instead of having non-thematic options you turn on / off in a preferences menu. The reader answers a series of questions at the start such as where the protagonist was raised, what activities he did as a child, did he move to the city with his sister or by himself etc.. But it would still have similar issues as it is not intuitive as to what it is affecting exactly within the story.

Though I would locked it after a specific place in the story. It becomes a nightmare when the player can switch this sort of content off and on again on a whim. Especially if you have scenes that acknowledge events in previous scenes.
This is why I would add that Chapter bar. The player can turn an option on and see straight away where it impacts the story. They can then jump to the first chapter where it starts to change.

1618707229910.png

So from the above if I am at Chapter 27, and I for some reason stop reading and start playing with the options. I can see that I need to go back to chapter 12 to see the additional scenes, orchapter 19 is where the sister content starts.
 
Last edited:

GNVE

Active Member
Jul 20, 2018
701
1,158
Well what you want can be done as well. In fact it is what I'm doing. Unfortunately I don't have the code finished yet so only the general outline. First off here is the outline of what I'm going for. There is a main quick select screen with subscreens that have fine control.
1618713847639.png

On the main page every single radio button looks like this:
Python:
vbox:
    style_prefix "radio"
    label _("BDSM")
    textbutton _("Off") action SetVariable("persistent.BDSM", "off"), BDSMswitch("off")
    textbutton _("Vanilla") action SetVariable("persistent.BDSM", "vanilla"), BDSMswitch("vanilla")
    textbutton _("Porn") action SetVariable("persistent.BDSM", "porn"), BDSMswitch("porn")
    textbutton _("Full") action SetVariable("persistent.BDSM", "full"), BDSMswitch("full")
    textbutton _("Custom") action SetVariable("persistent.BDSM", "custom"), BDSMswitch("custom")
the persistent variable seems to be needed to make the button function correctly while the actual work is done by the BDSMswitch. This is a custom function that will set all other variables to their relevant values. Might even add a 'save' for the last used custom profile.
Now as I said the code is a work in progress so the BDSM switch is just a dummy function for now... (It took me a lot of work to get the tabs working without brute forcing it.)
 
  • Like
Reactions: obsessionau

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,363
15,280
Asking the reader if they would like to "skip" during the story would make the reader feel like they are missing out on content.
You are trying to solve a problem that do not exist.

You are asking the player what he want, it's his decision to skip. By clicking on the "skip" button, he know that he will miss some content and he explicitly agree to that, else he would have chose to not skip. Therefore, there's absolutely no problem : you offered a choice to the player, and he made it, dot.


Many games are working this way. I think by example to all the games that have a "do you agree to see futa/trans content" choice. It's obvious that the player who answer "no" will miss some content... the content that he don't agree to see.
And it will be exactly the same for your game. Either the player agree to "this/that", and everything is fine, or he don't agree, and then he also don't care to know how much content he'll be missing and where is this content ; this simply because he don't care about this content.

Imagine that you enter a restaurant. Then the waiter ask you if you agree to eat sprouts, or if you want them replaced by something else. And, since you tell that you want them replaced, he start to list you all the meals where the sprouts will be replaced by something else.
This list have absolutely no interest, and knowing it will change absolutely nothing, both in your life and in your decision. It's not because you'll know that "this particular meal" will be changed, that suddenly you'll discover that you like sprouts.
 

obsessionau

Member
Game Developer
Sep 27, 2018
268
368
I would disagree, the key difference is that the choice is being offered after the reader has formed a connection with the story and the characters as opposed to before.

In general, for a "kinetic novel" I would personally try to avoid frequently interrupting someone with their story experience if it can be avoided or do it in a less obtrusive manner (like at the start).

Imagine that you are eating at a restaurant. Then the waiter asks you how you are enjoying the meal. You say it is nice but you don't like the sprouts. He grabs your half eaten plate and starts using his fingers to pick them out of your meal along with other bits of food that you were halfway through consuming.

You give the waiter a dirty look and he responds... "What my hands are clean, and your meal now has no sprouts. What is your problem?"

If you have spent 2 hours reading a VN and then offered the choice to skip then I do believe it is different to being offered that same choice before the reader has developed any sort of connection with the story and the characters. The question is, is this choice relevant to the reader having a connection with the character (like with non-linear VN's), if not then why interrupt the story?

It is this connection with the story and the character and the commitment that the reader has made already that brings about the "missing out" feeling that I was talking about. But yes there are also occasions where it simply does make more sense to ask right before the content is presented (it was never a universal truth).

Edited: 3,245 times
 
Last edited:

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,363
15,280
It is this connection with the story and the character and the commitment that the reader has made already that brings about the "missing out" feeling that I was talking about.
But missing out what exactly ?

"Oh my god, there's [whatever kind of] content ! I absolutely don't want to see this, it disgust me... But I have no choice, I started to play, now I can't click on the 'I don't want to see this' button. Of course, according to the chapters bar, I'll throw up in chapter 7, 11 and 25, but I prefer this to missing out some content."

Sorry, but it's ridiculous. No one will think this. No one will have the feeling that he'll be missing something because he choose to not see what he absolutely don't want to see.
Either he don't care, and will then choice to see it, or he care and will be happy to miss this content.


But yes there are also occasions where it simply does make more sense to ask right before the content is presented (it was never a universal truth).
What is the opposite of what I said...
 

obsessionau

Member
Game Developer
Sep 27, 2018
268
368
But what is ridiculous is you got...

"Oh my god, there's [whatever kind of] content ! I absolutely don't want to see this, it disgust me... But I have no choice, I started to play, now I can't click on the 'I don't want to see this' button. Of course, according to the chapters bar, I'll throw up in chapter 7, 11 and 25, but I prefer this to missing out some content."
from...

[I would rather offer the decision at the start as] Asking the reader if they would like to "skip" during the story would make the reader feel like they are missing out on content.
A reader having a sense of not having a complete experience and forcing yourself to view content you don't want to and throwing up. Completely different!

If you look at my sentence in context you can very easily see it was in reply where I am talking about my decision to offer these choices before as opposed to after emotional investments in para-social interactions have been made in the story.

I would rather the story feel like one complete experience to the reader than provide numerous splits that affect the story in many different ways.
 

AnimeKing314

Giant Perv
Game Developer
Jun 28, 2018
395
597
But what is ridiculous is you got...



from...



A reader having a sense of not having a complete experience and forcing yourself to view content you don't want to and throwing up. Completely different!

If you look at my sentence in context you can very easily see it was in reply where I am talking about my decision to offer these choices before as opposed to after emotional investments in para-social interactions have been made in the story.

I would rather the story feel like one complete experience to the reader than provide numerous splits that affect the story in many different ways.
I gotta agree with anne here. Offering a simple choice to skip a specific scene will not break the experience of the story. Also there can be players that are ok with the content only depending on context (so not completely against said content but may want to skip it in certain circumstances) so only offering the choice at the beginning and not during wouldn't appeal to those players. Really it just comes down to if you want to maximize who would enjoy your game or just develop how you would like to play not considering the opinion of other players. Both are perfectly valid ways to develop and many people will like the game either way but one will obviously be more limited.
 

obsessionau

Member
Game Developer
Sep 27, 2018
268
368
Offering a simple choice to skip a specific scene will not break the experience of the story.
I absolutely agree too! However many of my choices in this story are not that simple and fill in discrepancies from the original manga that are skipped likely due to the original format. Other choices change the feel/culture of some of the environments which would not make sense asking these kinds of questions during the story.

What 79flavours said I absolutely love and respect that input! I never thought anything he said was flawed or wrong, I just felt it wouldn't work coherently for many of the choices in my story and how they affect the scenes. But what he said is exactly what I was after and it addressed the question in my original post.

I also absolutely love and respect Anne who has helped me out on here numerous times with coding and one of my favourite people to read in the forums, but they don't know my story or how the choices impact it and saying that my statement was ridiculous surprised me especially when they applied what I said in a way that isn't relevant for me and suggesting I thought readers would behave like someone out of the exorcist and feel compelled to watch scenes they don't want to watch - I never meant they would miss the scene they wanted to skip.

I saw it more as forcing readers to make decisions constantly throughout a story that they don't want or need to make (and again I was applying it to this particular story not that I thought it was universally the best way to present choices)

There are people that will likely just want to experience the original content from the original author which is an option, and then there is my own vision of this story. Instead of offering the two versions they have the extra option of removing particular elements that I have added/removed (that they may not agree on or might like to just tweak before they start).

Perhaps instead of looking at presenting all the options in this one way which was my original idea, it may be beneficial to use a mix depending on how that choice is applied. :unsure:
 

AnimeKing314

Giant Perv
Game Developer
Jun 28, 2018
395
597
I absolutely agree too! However many of my choices in this story are not that simple and fill in discrepancies from the original manga that are skipped likely due to the original format. Other choices change the feel/culture of some of the environments which would not make sense asking these kinds of questions during the story.

What 79flavours said I absolutely love and respect that input! I never thought anything he said was flawed or wrong, I just felt it wouldn't work coherently for many of the choices in my story and how they affect the scenes. But what he said is exactly what I was after and it addressed the question in my original post.

I also absolutely love and respect Anne who has helped me out on here numerous times with coding and one of my favourite people to read in the forums, but they don't know my story or how the choices impact it and saying that my statement was ridiculous surprised me especially when they applied what I said in a way that isn't relevant for me and suggesting I thought readers would behave like someone out of the exorcist and feel compelled to watch scenes they don't want to watch - I never meant they would miss the scene they wanted to skip.

I saw it more as forcing readers to make decisions constantly throughout a story that they don't want or need to make (and again I was applying it to this particular story not that I thought it was universally the best way to present choices)

There are people that will likely just want to experience the original content from the original author which is an option, and then there is my own vision of this story. Instead of offering the two versions they have the extra option of removing particular elements that I have added/removed (that they may not agree on or might like to just tweak before they start).

Perhaps instead of looking at presenting all the options in this one way which was my original idea, it may be beneficial to use a mix depending on how that choice is applied. :unsure:
I can definitely respect that. I still have more experience as a player than as a dev and my personal preference as a player is being presented the choice to see or skip a scene when it happens (just as an example, if there's an NTR scene in a particular game I'd prefer if the dev gave some indication just before it happened and gave the option to skip it). I prefer it like this because sometimes I want to see a scene with whatever specific content and other times I'd rather skip it. Or in the case of yours where there's multiple versions of a story I like playing through one scene then just rolling back and playing the other option. For this reason, if it's the case that you have to make the decision early on and then either replay the whole thing or use jump points it usually doesn't appeal to me as much because it's not my play style. I realize I'm just one opinion but there's many other players that feel the same way and these style of players would have the feeling of missing part of the story more if they weren't able to choose when the scene that changes is about to happen. As a dev, I always feel like it is my responsibility to give the players as many different options for how to play as I can so they can just play in whatever style suits them which is why I give advise to do similar to other devs, just with the caveat that it's up to the dev and to consider the game their making and their audience. It's completely impossible to please everyone but in my opinion it's important to consider that not everyone will play as you've intended.

Also I take no offense if you decide to completely ignore my advise. I'm not the one making the game nor am I familiar with the story and anything I say will obviously come with it's own bias and may or may not be suitable for your game or anyone else's for that matter.