Ren'Py How does one learn to use Renpy?

Marcibx

Newbie
May 5, 2018
88
85
Foreword: I have learned 2 semesters of C++ and then haven't written a single line of code for 8 years, so besides having some understanding of the logic, I know nothing.

I have started to learn renpy as I want to make a game in it, but after I went through the built-in tutorials I am not sure how to continue.
The tutorials were great and gave me a good start, but I am not sure how to continue from there, so I figured I ask you guys.

Background story
You don't have permission to view the spoiler content. Log in or register now.

As I see it, my options are:
  1. Read the Renpy documentation A to Z like a book
  2. Jump across the documentation as I need it: I need X? -> I look for X X needs to be added after F and K? -> I read those too F requires J, L and O? -> read those as well...
  3. Start learning Python, otherwise I have no chance building a HUD or something
  4. Open other games and see how they do it (I tried this, but I couldn't learn from it - maybe useful later once you know what you are looking for)
  5. Just keep bothering people until somebody from the community tells you
Suggestions?
 

Winterfire

Forum Fanatic
Respected User
Game Developer
Sep 27, 2018
5,497
8,035
Just attempt to make a game, and ask questions as you meet obstacles (Just make sure to google first).
That's how I learnt renpy, took me a few months.
 
  • Like
Reactions: Aristro

GNVE

Active Member
Jul 20, 2018
724
1,184
Screen language differs enough from python so that learning python is only moderately helpful. I'm still learning myself but there are a few tutorials that teach the basics that have been helpful so far.
e.g. &
otherwise it's just a lot of trial & error & googling for me.
though for a first game I wouldn't muck about to much with the screen language. Even if you want to make an epically long game, you can always change the menu style in a later version.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,957
16,191
What you want isn't exactly learn how to use Ren'py, but more learning how to make a game, that will happen to be made with Ren'py. Therefore, you should probably approach the problem this way.

You can directly learn how to use Ren'py, it's, relatively speaking, easy to do. Just open the doc, and for each point you read, make it in practice until you're sure to have understood it. But once it will be done, you'll still have to learn how to make a game.

Or you can do the opposite, starting a project in Ren'py, and writing some stupid story. It doesn't matter if the dialogs are lame, it doesn't matter if the images are a bunch of pictures totally unrelated, and sometimes not accurate in regard of the situation, that you found on internet. What matter is that you're making a game where the dialog lines and images differ from each others.
By example, you can write the story of yourself looking for your cat, or any other pet. You'll have to looks into the different rooms of your house, go outside and ask the neighbors if they saw him. This way you'll have to pass through the basis of a game.

Take your time, write it basically at first, like a pure Kinetic Visual Novel. No question asked, just you moving from a place to another, talking to people, and finally finding your cat. You'll practice writing dialog line for the different characters and displaying images.

Then start to split it, having simple menus. Things like:
  • Search in the kitchen.
  • Search in the living room.
  • Search in the bedroom.
and so on.
You'll have to split what you've already wrote into different labels, depending of the related room. What will make you practice labels, branching and basic menus.
Once it's done, make this more realistic, having a different scene if you already searched in "this room".

Then do the same for the interactions with the neighbors, starting to make interactive dialogs. Once again keep it simple, it can be just :
  • How are you today ?
  • You look beautiful today.
Keep track of the choice, and make the neighbor talk more friendly if you said she look beautiful. It will make you practice variables and alternative dialog lines.

And continue to extend the mechanisms of this story with all the idea you can have, but still don't overdo it.

You can by example add a time tracking system, using big values to advance it ; by example searching in a room will take you a full hour. This way, you'll have to practice how to change the greetings to your neighbors. "Good morning", "Good evening", and so on.
The neighbors can be absent at some times of the day, or doing different things depending of the hour.
You can also have one that will say "Well, it's not a so good day, I have a meeting with my boss", in the morning and, "well, better than I expected. I had a meeting with my boss this morning, but it was to tell me that I'm promoted", in the evening. You can even decide that you can meet him twice in the day. And depending if you met him in the morning or not, the way he'll talk about his meeting will change. Something like, "I have a meeting..." and, "Oh, by the way, remember the meeting I talked about this morning ?" The same change happening if you met him in the morning, but not asked him how he's doing (what imply that he don't told you about the meeting).

For the final step, add clues.
In the house they are objects you've to click on, what will make you practice screens and imagebutton. And outside the house, it's things that the neighbors will say if you ask the right question.
Each time you found a clue, increase a counter. And the final scene will be something like :
Code:
label final:
    mc "Oh, now I know where my cat is"
    if numberOfClues < 5:
        mc "Hmm... In fact no, I have absolutely no idea where he can be."
        jump badEnding
    elif numberOfClues < 10:
        menu:
            "he's either..."
            "At the park":
                jump parkScene
            "Near the pound":
                jump happyEnd
    else:
        mc "he's at the pound"
        jump happyEnd
Congratulation, you've finished your first game.


Face to each "problem", just take the time to think about it.
  • How could you solve it in theory ?
  • What Ren'py offer to solve it in practice ?
  • How can make the practical solution offered by Ren'py looks like your theoretical solution ?
Using the doc every time it's needed.
Also don't hesitate to search if there isn't others possible solution, and to practice them. This can be done by looking at other games to see how they solved it.

But there's a catch you need to always keep in mind when you look at what others did. They can know even less than you and have used a dumb solution that only works because they have a lots of luck. The worse part being that, like many learn simply by copying what other did, those solutions are sometimes the most used.
There's by example a (way too) big number of games that use things like:
Code:
show screen navigation
jump wait

label wait:
    pause
    jump wait
It works, but it's absolutely not how they should have wrote it, since a simple
Code:
call screen navigation
would have done the same, have done it way better, and have done it without risk of side effects.

By itself it's not a problem, "it works". But this approach hide to them a big part of what a screen can effectively do, what limit the way they can improve their game, or simplify their code.
 

Playstorepers

Member
May 24, 2020
160
79
It's like anne o nymous said:

You probably want to learn, how to make a game. Learning ren'py is just a means to that end.

The best way to do this, is finish one of the countless tutorials (The official one or one of the vids, that gnve posted). Afterwards, you should sit down and document, what design ideas you want your game to have. Is it more of a kinetic novel? do you need image-maps? atl?

And once you established your baseline for the game (KEEP IT SIMPLE FOR YOUR FIRST GAME), program it step by step, while making sure, that you have enough space for errors. It's a big trial and error progress.
 

Winterfire

Forum Fanatic
Respected User
Game Developer
Sep 27, 2018
5,497
8,035
It's like anne o nymous said:

You probably want to learn, how to make a game. Learning ren'py is just a means to that end.

The best way to do this, is finish one of the countless tutorials (The official one or one of the vids, that gnve posted). Afterwards, you should sit down and document, what design ideas you want your game to have. Is it more of a kinetic novel? do you need image-maps? atl?

And once you established your baseline for the game (KEEP IT SIMPLE FOR YOUR FIRST GAME), program it step by step, while making sure, that you have enough space for errors. It's a big trial and error progress.
The game design document should be made way before you even start with any tutorial, then they should be followed along as you make the game. I agree with the rest, especially to keep it simple for your first game... I kept it simple for three games :D