Ren'Py How difficult/useful would it be help out with programming on a Renpy Project?

sipsipsap

Newbie
Aug 20, 2023
71
98
In my Day to Day Job I am a Programmer that works with VBScript.

When it comes to VN's I've played they are mostly made with Renpy. Having looked at these games and their scripts they seem to not be that hard to code.

I had a look at a 16min YT Video to learn more about the Python Syntax and from what I learned so far it should be pretty easy for me to learn the Python Part. I switched from C#/C++ to VBScript and learned most of the necessary syntax in less than 2 Months for my current Job. I can already read the Renpy Script pretty well so I don't think that will be the main issue. Especially if I have someone that I could ask. Otherwise google will have to do.

Now the questions that remain are the one about knowing how much you don't know and if it is even worth it to learn.

At the moment I don't intend to start my own project. I am wondering how much there is to learn about the Renpy Classes and such, and whether they are well documented.

And even if I did that... Is it even worth it? How much work is the actual programming part when creating a VN compared to creating the Images/Videos?
Would my help even contribute significantly to the projects faster completion?

I know from my Bachelor in Game Programming that in a Real-Time Rendering Programm coding can be half the work load if not more, depending on the project. But I have no clue how that is with a Renpy Project.
 

GetOutOfMyLab

Conversation Conqueror
Modder
Aug 13, 2021
7,340
20,129
I'd say it'd be good to first start by looking at the Ren'Py documentation:


and the Ren'Py Github:

I started learning VB6 back in 1997-ish, switched to VBScript and classic ASP (known as ASP 3.0 back then), and then followed the ASP.NET path in both Visual Basic.NET and C#. Compared to that, learning Ren'Py was quite easy for me. But that will differ from person to person.

The documentation is pretty decent (not always the best and I end up reviewing the Github for a better understanding), but good enough to get started.

The programming part can be rather small or rather large, depending on the type of project you're working on. If it's just a simple story with some choices, you probably won't need to do a lot of python and can stick mainly to Ren'Py syntax. But, if you work on something more complicated, like a sandbox where you're storing stats for multiple characters and have a lot of advanced screens, you're looking at more programming.

As for the images/videos... that's a whole other topic. There's a lot of work involved with that, too, depending on which approach you take and how comfortable you are with it.

Would your help contribute significantly? Again, depends on the project. But I'd say in many cases and on more complicated projects, having someone help program while another person does art and another does writing could potentially help out a project. But that also depends on how well you all collaborate.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,968
16,222
Now the questions that remain are the one about knowing how much you don't know and if it is even worth it to learn.
It's simple, whatever the language you come from, and whatever how many you know, you start with at least 75% of the new language being unknown.

And, yes, it always worth it to learn what you don't know. It's what make the difference between:
Python:
minVal = 9999999
for atom in listOfInteger:
    if atom < minVal:
        minVal = i
[/icode]
and:
[icode] minVal = min( listOfInteger )[/icode]

or, for Ren'Py itself, between the infamous and too often used:
[code=python]
label whatever:
    show screen whatever
    pause
    jump whatever
and:
call screen whatever


At the moment I don't intend to start my own project. I am wondering how much there is to learn about the Renpy Classes and such, and whether they are well documented.
It starts badly...
What you have to learn isn't the, in fact relatively few, classes that exist in Ren'Py, but the three different languages (script, screen and animation) that it defined and use. So, I guess that you starts with 99% being unknown.


And even if I did that... Is it even worth it? How much work is the actual programming part when creating a VN compared to creating the Images/Videos?
It totally depend what you intent to do as game mechanism for your VN and what you intent to use for the CGs.
For a purely kinetic novel with tons of animation in pre-rendered 3D, the code would represent 1%. But for a more advanced Visual Novel with a free roaming part and following a RPG approach, that would use an Illusion studio for the CGs, it would be 50% if not more.
 
  • Angry
  • Like
Reactions: Savor and sipsipsap

sipsipsap

Newbie
Aug 20, 2023
71
98
It starts badly...
What you have to learn isn't the, in fact relatively few, classes that exist in Ren'Py, but the three different languages (script, screen and animation) that it defined and use. So, I guess that you starts with 99% being unknown.
Sounds interesting. How much is there? Can you give me a Birdseye overview of what it is to code Renpy Games? Any quirks or interesting aspects? Any tips for someone like me to what to know beforehand? What do you mean with 3 different languages? Does Renpy include other languages other than Python?

To illustrate a bit a counter example for my dayjob: If someone started with the software I work with I'd tell them the name of the most important class and that there are a bunch of other objects they should have a look at the properties and methods in the documentation. Depending on what their specific task is they could probably hack something together rather quickly albeit not necessarily elegant if they stick to these tips. Obviously that would require knowledge of programming principles beforehand.
 
Last edited:

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,968
16,222
Can you give me a Birdseye overview of what it is to code Renpy Games?
You said that you looked at the sources of some Ren'Py games, what overview can I give you that you haven't already witnessed ?


What do you mean with 3 different languages? Does Renpy include other languages other than Python?
*sigh* I mean exactly what I said, and Ren'Py do not include Python, Ren'Py is wrote in Python and, under the right conditions, can use Python's exec built-in function to proceed Python code.


To illustare a bit a counter example for my dayjob: If someone started with the software I work with I'd tell them the name of the most important class [...]
*sigh*
There's a lie somewhere in your thread opening. Either you aren't a coder, or you never looked at the script of a single Ren'Py game...
~90% of them use only one class (yet indirectly since they are in fact calling a function) outside of the few screens they possibly defined. And this is obvious for anyone who is a coder and look at the code of those games.
 

sipsipsap

Newbie
Aug 20, 2023
71
98
Well, that's just rude.

I wasn't asking you to teach me anything. And if you don't want to talk about a Hobby of yours that you apparently like to do then there isn't a necessity for you to even answer.
I don't have to prove myself to you. I am curious about Renpy Development. To me this seems to a good place to ask.
 

GetOutOfMyLab

Conversation Conqueror
Modder
Aug 13, 2021
7,340
20,129
Well, that's just rude.

I wasn't asking you to teach me anything. And if you don't want to talk about a Hobby of yours that you apparently like to do then there isn't a necessity for you to even answer.
I don't have to prove myself to you. I am curious about Renpy Development. To me this seems to a good place to ask.
This site made by Feniks (aka Fen), and is a great starting point. She also helps folks with Ren'Py on the official Ren'Py discord ( ), which is a great place to find knowledgeable people to help.
 
  • Like
Reactions: sipsipsap

sipsipsap

Newbie
Aug 20, 2023
71
98
This site made by Feniks (aka Fen), and is a great starting point. She also helps folks with Ren'Py on the official Ren'Py discord ( ), which is a great place to find knowledgeable people to help.
Thx for all the links you gave me. I will have a look in the coming weeks!
 

TessaXYZ

Active Member
Game Developer
Mar 24, 2020
686
1,498
And even if I did that... Is it even worth it? How much work is the actual programming part when creating a VN compared to creating the Images/Videos?
Would my help even contribute significantly to the projects faster completion?
Other's mileage may vary, but in my case: programming is <20% of development time. The vast majority is spent on image creation and writing. People occasionally ask me if I want programming help; 99% of the time, even when they're better programmers than I am, it would take longer to communicate what I need and to check their work than it would take to just do it myself. Again, this is just my experience in my style of game. Other types of games or developers might want help, but I don't think that's very common. I do have someone who has helped with the most complicated bit of my code, but that was a few days of work for him and has no effect on my continued development time as it was generally a one-and-done thing.
 
  • Like
Reactions: sipsipsap

GetOutOfMyLab

Conversation Conqueror
Modder
Aug 13, 2021
7,340
20,129
Other's mileage may vary, but in my case: programming is <20% of development time. The vast majority is spent on image creation and writing. People occasionally ask me if I want programming help; 99% of the time, even when they're better programmers than I am, it would take longer to communicate what I need and to check their work than it would take to just do it myself. Again, this is just my experience in my style of game. Other types of games or developers might want help, but I don't think that's very common.
Yeap, in some cases like yours, it's just easier and more time efficient to do it yourself than to have to try and explain what you're trying to do to a new person.
 

crabsinthekitchen

Well-Known Member
Apr 28, 2020
1,565
9,078
The best bet would be to find a new sandbox/rpg game and offer help there. With existing games devs usually already have it working the way they understand it so they don't really need help. I'm helping with an in-game walkthrough for a pure VN without freeroams or anything gamey but a fuckton of mutually exclusive decisions that have to be tracked. Usually it takes a few days every 6 months or so. But my help isn't even necessary for the game to work. You barely need coding to write dialogue, change background images and play music and animations
 
  • Like
Reactions: sipsipsap

moskyx

Forum Fanatic
Jun 17, 2019
4,223
13,983
I have the feeling that every time a so-called pro coder tries to get around Ren'Py, they end up doing over-complicated things or expect things to be much more complex than they actually are. Seriously, just taking a look at an average game would let you know you don't actually need more than what is told in the Ren'py documentation. It is that simple, really. Sometimes it's a bit obscure, that's true, but that's what forums are for, and a pro coder shouldn't have any difficulties getting to the solution by trial and error anyway.
 

osanaiko

Engaged Member
Modder
Jul 4, 2017
2,548
4,634
Well, that's just rude.

I wasn't asking you to teach me anything. And if you don't want to talk about a Hobby of yours that you apparently like to do then there isn't a necessity for you to even answer.
I don't have to prove myself to you. I am curious about Renpy Development. To me this seems to a good place to ask.
You've had the "good fortune" to meet our resident grump :ROFLMAO:. He's generally quite helpful and knows a lot of renpy solutions, but also loves pointing out logical inconsistencies. If you can move past the rudeness (which I believe is not really his fault, it is required by law for all Parisians) there's plenty of help available for specific questions from Anne'O and others.

Some others have tried to answer your general question, but here's my two cents:

Renpy is not really very similar to more business software focused languages. It's come a long way from the initial concept, which was an interpreted language for making basic "Japanese style Visual Romance novels". As Anne mentioned, there's actually three sub-languages:
- renpy "script", which is a mostly-imperative interpreted language than runs in a runtime Virtual Machine. This is where the game branching logic, the images and dialogue, the sounds etc are programmed. (Mainly*)
- renpy "screen", which is kind of like HTML/CSS with some action event handlers
- renpy Animation Transform Language (ATL), which lets you create more complex displayable images (think sprites animating, images cross-fading, condition-based displayable sprites, etc)
And as also mentioned, it's possible (but rarely needed for most games) to break into python to code more complex stuff, like classes for situations that might need that (the rpg example - monsters, items, etc)

The best way to learn is by doing - grab some placeholder art and see what you can whip up. Then you can try looking at other games source code (many are not encrypted, or are trivially unpackable - look for "unren.bat" in the forums.)

Finally: most projects don't get into programming trouble - that's not really the hard part. based on my personal experience here, the order of "rarity" of skills are:

1. actual good game writing - even if the game dialogue is grammatically correct, which due to the many non-english-as-first-language developers, it is sadly uncommon to have really engaging writing. It seems to be very hard to walk the fine line between too much flowery "tell don't show" words, and brief, robotic, boring, unrealistic character interactions.

2. closely related to the above - good, logical but also interesting story concepts and development.

3. Graphics - many of us are art-challenged, but there are ways to get the images you need if you invest the time for proper 3D with Daz, or money on an artist for 2D, or the old-fallback of the Illusion honey select etc poser software. So this seems to rarely be the problem that prevents games from being developed.

4. coding - while it's possible to eventually back yourself into a corner by creating a giant spaghetti mess of global vars, most games never get that far. The devs who flounder here are either genuine artists who are allergic to logical thinking needed to code, or devs who are wildly ambitious and have a concept of a game that is more complex than can be easily implemented regardless of the language used.

Anyway, welcome to the sticky humid world of the dev help thread!
 

sipsipsap

Newbie
Aug 20, 2023
71
98
Thanks a lot! This is the kind of information I want to know about! I am fully aware that when I want to learn to work to code with any software I will have to go on my own journey. But I was asking about the general concepts of how Renpy is build or other general information about Renpy Coding/Developing. And you provided that. Thanks!

This is the kind of stuff I'd like to see in this thread.
 
  • Like
Reactions: osanaiko

Spin256

Mothers and Daughters
Game Developer
Dec 16, 2019
544
1,070
I often see beginning developers ask for prepackaged systems. Such as interactive maps, phone or messaging systems, galleries, minigames, etc...

I've been asked about the phone system in my game. And while it wouldn't take too much effort to clean up to create a drop-in-package, I just don't have the time.

Simple games can grow to a point where the developer wants to drop in more complex, like a phone system, but isn't coder.

There are other prepacked assets available, but you could learn by setting yourself a task of creating a system that could be dropped into any standard game.
 
  • Like
Reactions: sipsipsap

sipsipsap

Newbie
Aug 20, 2023
71
98
There are other prepacked assets available, but you could learn by setting yourself a task of creating a system that could be dropped into any standard game.
Thanks. That might be a viable thing if I decide to get into Renpy Coding.

I'll probably start to just simply make a walkthrough mod for a game that doesn't have one already but would benefit of one. That would only require to edit the rpy files. But I might look into ways to not touch the original files and just modify the choice text outside of the original rpy file. If that is possible. After that I can set up a generalized code base for walkthrough mods that edit the choices based on other standardized text/code files.

We will see when and if I have the time and motivation.
 

Spin256

Mothers and Daughters
Game Developer
Dec 16, 2019
544
1,070
Not modifying the original would be preferable. That way, the developer is free to update and fix issues in their code without you needing to mirror those in your mod.

Yes, it's possible to override code in Renpy.
 
  • Like
Reactions: sipsipsap

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,608
2,256
I am wondering how much there is to learn about the Renpy Classes and such, and whether they are well documented.

Most AVN developers are using RenPy because it's the path of least resistance as they are not from a programming background.

Realistically, the majority of games get written without even using concepts like or , nevermind custom classes or functions and such. Instead it's simple string, integer and boolean variables at best. Which is a strength of RenPy, because it's possible to deliver an impressive story without being a fully fledged programmer. In the case of a - there aren't any variables.

It's possible to write a fully functional Kinetic RenPy game with only a few RenPy statements...
  • , , , , , , , , , and .
(8 statements + "say", explained later.)

Even then, the return and label statements are only needed once. The image, pause and music/sound statements could be considered entirely optional.


For a RenPy game with choices, leading to a branching story, add...
  • , , , , and .
(6 additional statements)


Once you want to start adding point and click type mechanics or navigation maps, etc - you'll want to start looking at RenPy's .

If you want to create small animations or effects within RenPy, there's also .

The underlying core of RenPy though is the implied statement. It is hardly ever coded directly, but any dialogue "spoken" by a character uses it.

My point being that most AVN developers aren't going to need a programmer to deliver a basic game and there isn't all that much to learn to start a game in RenPy. Less than 10 statements will get you a workable game. Less than 20 will get you a fairly complex game. ATL is hardly ever used. Screen language can be as complex or simple as you need - I'd suggest you could get away with as few as an additional 6 to 8 statements, but 10+ is probably more realistic. I'd also suggest that despite all that, the majority of "code" within any game is going to be a scene followed by a series of say statements... rinse and repeat.

Except... People don't want to deliver a basic game. They've probably played some very polished, customized and impressive games and they want their games to look like THAT. Often, that's mainly about complex use of the mentioned earlier. And screen language is a whole other rabbit hole.

So if you are looking to be a programmer on someone else's project, they are probably going to be looking for all that "additional stuff" they've seen in someone else's game.

Keep an eye on the Recruitment and Services subforum here on F95.
 
Last edited: