Ren'Py Writing the story in Ren'py

Pitey

Newbie
Oct 7, 2017
32
22
Hey !

So I'm planning to write a game on ren'py and I want it to be interactive, I really want the decision to have impact and I wanted to ask what people usually do, do you write a main plot and you add event and variables to stay in a certain way or do you write each story one by one ? (I think variables would be a mess if I'm a beginner and writting one by one making a shit ton of works so I don't know what's the best option) If anyone got advice on how to manage writing a story with variables I'm taking it ! Thanks for your time !
 
  • Like
Reactions: santiago_campanella

Winterfire

Forum Fanatic
Respected User
Game Developer
Sep 27, 2018
5,504
8,039
You can do it in many ways, you could have a tree diagram for each choice... That is assuming you know how your story starts and how it ends.

If you are writing and making stuff up as you go, it is a risky and unpredictable process, could go either way.
 

Pitey

Newbie
Oct 7, 2017
32
22
So, (i'll take you as example) you are writing the end of your story before writing the "core" to make sure you're not going too far away from the main story ?
 

Winterfire

Forum Fanatic
Respected User
Game Developer
Sep 27, 2018
5,504
8,039
So, (i'll take you as example) you are writing the end of your story before writing the "core" to make sure you're not going too far away from the main story ?
No, my way of doing things is having a start and an ending (or endings), at least when it comes to the story itself.
Having a starting and ending point allows me to plan choices and know exactly where they will go.
 

Egglock

Member
Oct 17, 2017
198
110
The way I would approach it if I was to make a VN, is this.

1. I start with the basic idea. Where it starts, the middle, and the end. These aren't very in-depth. They're just enough information to give me some references.

2. I then answer the 5 W's, Who, What, Where, When, Why and How. This is repeated for the middle and end sections.

3. I further break down the start, middle, and end into chapters. This allows me to concentrate on specific parts of the story without being overwhelmed by the overall story. Of course I'll occasionally check back to make sure the story is still coherent.

4. Make sure that my writing doesn't complicate the transition process over to whatever game engine I'm using. What I mean by this is, writing a story doesn't necessarily translate correctly into code. So not to make extra work, I write my stories in a way that takes the least amount of effort to transition into the appropriate game engine.

A quick example is, instead of writing "John wasn't fully aware that he took someone's undergarment" I would do this

*Image: John holding an undergarment*

John: You wanted to talk to me about something.

Suzy: You didn't have to steal those. I would of kindly handed them over to you.

*Image: John turns around, bring undergarment down, hands them over.*

John: Definitely didn't steal them.

In this way, when I take a break or whatever and come back to my writing I understand the structure of my story.

5. The coding phase. This is where I start implementing my variables and such. This goes back to #4. By reading my writing, I can easily determine if I need to do extra stuff or not, if not, I can pretty much just do a Copy/Paste where appropriate.

Mind you this is broad overview of my workflow. Don't take this at face value as there's many ways to approach this and the structure is different depending on the game engine used. The main takeaway is understand where your story starts, where the middle is and how it's going to end. From there it should give you a basic ideal of how you want to structure your story so that you can write it while maintaining a balance transition into the game engine of choice.
 

mickydoo

Fudged it again.
Game Developer
Jan 5, 2018
2,446
3,557
You will end up making half of it up as you go along, there is no getting around that, we all do it, the trick is to make variables wherever you can. If you have written in a script somewhere that John goes to the beach, but when you get to that bit the story as flowed differently and he goes to the shop instead. You should make a variable $ john_shop = True just in case you ever want to reference that situation in the future.

To elaborate a bit more, at the start you should have default variables set for things you know/plan, but don't be afraid to not use them and add more as needed.
 

hiya02

Member
Oct 14, 2019
171
98
Instead of adding huge amounts of flag variables, consider using some kind of log of player's recent actions, whether they are dialog choices, locations or NPCs that the player has met. This is much more flexible and makes the code more readable.
 

Pitey

Newbie
Oct 7, 2017
32
22
Is it possible for me to just not make variables and write each story one by one ? It would mean a ton more work but at least I won't make mystakes with things i can't take. For exemple John got the choice "go to the beach/Go to the mall" and each one of them have their stories and won't ever again be related. Even if there is similar or identical moment there wont be variables so that would be a "different story"

Sorry if i'm not clear but I want to know if it seems possible ?
 

Egglock

Member
Oct 17, 2017
198
110
What do you mean make variables? Are you talking about the design phase? Because eventually you'll have to make variables in Ren'py.
 

moskyx

Forum Fanatic
Jun 17, 2019
4,224
13,986
Is it possible for me to just not make variables and write each story one by one ? It would mean a ton more work but at least I won't make mystakes with things i can't take. For exemple John got the choice "go to the beach/Go to the mall" and each one of them have their stories and won't ever again be related. Even if there is similar or identical moment there wont be variables so that would be a "different story"

Sorry if i'm not clear but I want to know if it seems possible ?
Sure, you just create a menu choice, then jump to the story. Variables are not really needed

Python:
label start:
    "This is John. Where's he going to go today?"
    menu:
        "He's going to the beach":
            jump JohnBeach
        "He's going to the Mall"
            jump JohnMall
          
label JohnBeach:
    "John arrives at the beach."
    "His story..."
    return
  
label JohnMall:
    "John arrives at the Mall."
    "His story..."
    return
You can begin with something easy like this. But adding variables is not THAT complex and you can learn how to do it just watching the tutorial game in Ren'Py or taking a look at some game you could find in the forum
 

Pitey

Newbie
Oct 7, 2017
32
22
I did watch tutorial and I know how to do it, I mean I'm afraid of getting lost in all of those variables as I want to make a lot of different path :x
 

DS23G

Member
Game Developer
Jul 24, 2019
145
397
I did watch tutorial and I know how to do it, I mean I'm afraid of getting lost in all of those variables as I want to make a lot of different path :x
One thing you should absolutely do is set up rpy files for every main-route you're planning to create, so you can have individual tabs for each of them in your editor. Do not plaster your entire script into the main script file, that'll be a nightmare to navigate later.