how to make a renpy game?

QQ

Newbie
May 14, 2017
89
54
i am curious what software need to use to make all the pic and Adjustment the objective and Rendering it to a really good looking pic? if there is a tutorial will be perfect did not find in the forum thanks.
 

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,608
2,256
There are too many solutions to answer properly.

RenPy is a scripting language. It doesn't do anything but show pictures and text that you as the author decide to show.
It's up to the author to create the images themselves elsewhere (nothing to do with RenPy).
The pictures can be put together in so many different ways that there's no quick answer.

For example, all these images are used by RenPy games...


Sakura Shrine Girls [Winged Cloud]




Princess Trainer Gold Edition [Akabur]




The Last Weekend [kexboy]




Path of the Dead [Floser]




Legal Today [Porno]




Beach Vacation [TK8000]




Sexymon Adventures [v0.06] [Winterfire]



As I hope you can see, there are so many options as far as graphics styles for RenPy games - that it's difficult to say which one might best suit your own experience.

The easiest two solutions (in my opinion) for people without an art background would be Daz3D (the photo realistic 3d models) and HoneySelect (the kinda shiny 3d models too). Daz3D is free and there are a lot of free and non-free resources out there to create a 3d scene and render it to create a single image. I've never used HoneySelect... but my impression is that it's a 3d posing/dressup environment, where you position stuff and just grab a screenshot.

Daz3D is not for the faint of heart... there are lots of YouTube videos introductions and guides. There are even some guides here on this site. But it's less about learning RenPy and more about learning how to create and render 3d scenes.

The other images, especially the cartoon types ones... I can only guess were done in something like Photoshop or GIMP by people who have a great deal of experience drawing using those tools... except perhaps that last one... that might have been done in MSPaint ;)

Sorry, I haven't really answered your question... except perhaps to say that maybe you're asking the wrong question.
 

DreamBig Games

Well-Known Member
Donor
Game Developer
May 27, 2017
1,011
998
The other images, especially the cartoon types ones... I can only guess were done in something like Photoshop or GIMP by people who have a great deal of experience drawing using those tools... except perhaps that last one... that might have been done in MSPaint ;)

Sorry, I haven't really answered your question... except perhaps to say that maybe you're asking the wrong question.
This really made me laugh! And I think you might be right :))
 

Psyokratease

New Member
Aug 24, 2020
11
4
Please Developers...create a Start-to-Finish tutorial.
I know what you're thinking, Google, search the forums, go to RenPy site & "There are hundreds out there..."
But, not complete. Not that I can find. Sure, many intros. Many Python simple scripts (and complicated ones).
Please, Make a game (include choices & a few pics...Maybe an animation or two) a short, detailed WORKFLOW
*sorry for shouting*
...Game that I and others can watch from conception to birth.
I'm not really into NTR (no judging here) but I want to watch. Put a camera over your shoulder so to speak.
I am proficient with Daz3d, etc. I can write stories (despite what you see here). I can script " Hello World! "

Put it on Patreon and I will PAY you! ...not much.
My goal is to make a Renpy Game.
So many videos start at Intros...then skip to Expert coding. I want to focus my learning. You either learned coding from school, or learned the hard way solo and googling. I want you to allow me to skip that stress (I already have PTSD) and give me the workflow, a streamline process of creating, so I can create some myself. Maybe make a game someday you would like to play.

What do you say guys?? Please...

EDIT: I have been able to see the scripting for a complete game and it is overwhelming. Back-engineering is a no-go for my skill level :) I would NOT copy anyone's creation anyway.
Thank you
 
Last edited:

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,608
2,256
Please Developers...create a Start-to-Finish tutorial.
I actually started one in February. Wrote about 70% of it in 3 days... then... well... it's September now and I still haven't done that last 30% yet. It's RenPy only, no graphics advice, no story advice. Purely a combined introduction and how-to guide. Then occasionally, I PM people the incomplete version if it looks like it might help them even in it's incomplete state.
 
  • Like
Reactions: Masgara

DaClown

Member
Sep 12, 2020
172
276
Please Developers...create a Start-to-Finish tutorial.
I know what you're thinking, Google, search the forums, go to RenPy site & "There are hundreds out there..."
But, not complete. Not that I can find. Sure, many intros. Many Python simple scripts (and complicated ones).
Please, Make a game (include choices & a few pics...Maybe an animation or two) a short, detailed WORKFLOW
*sorry for shouting*
...Game that I and others can watch from conception to birth.
I'm not really into NTR (no judging here) but I want to watch. Put a camera over your shoulder so to speak.
I am proficient with Daz3d, etc. I can write stories (despite what you see here). I can script " Hello World! "

Put it on Patreon and I will PAY you! ...not much.
My goal is to make a Renpy Game.
So many videos start at Intros...then skip to Expert coding. I want to focus my learning. You either learned coding from school, or learned the hard way solo and googling. I want you to allow me to skip that stress (I already have PTSD) and give me the workflow, a streamline process of creating, so I can create some myself. Maybe make a game someday you would like to play.

What do you say guys?? Please...
Ren'py itself has a pretty good tutorial and example VN built into it that also acts as introductory documentation to its application programming interface (API).

has a video tutorial series that seems well regarded.
 
  • Like
Reactions: m0us3r

Psyokratease

New Member
Aug 24, 2020
11
4
I actually started one in February. Wrote about 70% of it in 3 days... then... well... it's September now and I still haven't done that last 30% yet. It's RenPy only, no graphics advice, no story advice. Purely a combined introduction and how-to guide. Then occasionally, I PM people the incomplete version if it looks like it might help them even in it's incomplete state.
Thank you! I will read it tonight.
 

Psyokratease

New Member
Aug 24, 2020
11
4
Ren'py itself has a pretty good tutorial and example VN built into it that also acts as introductory documentation to its application programming interface (API).

has a video tutorial series that seems well regarded.
Thank you~! I will check the link out.
I was able to get through the tutorial on RenPy site without difficulty. However it was much too simplistic & short for what players really want to do in a game. The site gives more information of course, it just doesn't include those topics within the tutorial.
I Do know you learn best by doing. I just need to see it done so I can mimic & finally create original content.
 
  • Like
Reactions: DaClown

Psyokratease

New Member
Aug 24, 2020
11
4
I actually started one in February. Wrote about 70% of it in 3 days... then... well... it's September now and I still haven't done that last 30% yet. It's RenPy only, no graphics advice, no story advice. Purely a combined introduction and how-to guide. Then occasionally, I PM people the incomplete version if it looks like it might help them even in it's incomplete state.
You should finish that tutorial! It looks like you wrote it for me...seriously, how did you know I have 2 1080s?? lol
I've been able to do a lot with what I've learned from it so far. Maybe written guides suit me best? IDK.
Thank you!
 

Josephkink_2H

Member
Aug 15, 2020
262
71
I'm trying to rework a game from the original to my Modded version and would prefer all the lines, aside from dialogue, to look similar. Does it matter if the images are disorganized according to the day and does that make a difference in game? For example:

image Day7_PhoneCall_06 = "backgrounds/Day7_PhoneCall_06.jpg"
image Day7_PhoneCall_07 = "backgrounds/Day7_PhoneCall_07.jpg"
image Day7_PhoneCall_08 = "backgrounds/Day7_PhoneCall_08.jpg"
image Day7_PhoneCall_09 = "backgrounds/Day7_PhoneCall_09.jpg"
image Day7_PhoneCall_10 = "backgrounds/Day7_PhoneCall_10.jpg"
image Day6 = "backgrounds/Day6.jpg"
image Day6_MohoHouse_01 = "backgrounds/Day6_MohoHouse_01.jpg"
image Day6_MohoHouse_02 = "backgrounds/Day6_MohoHouse_02.jpg"
image Day6_MohoHouse_03 = "backgrounds/Day6_MohoHouse_03.jpg"
image Day6_MohoHouse_04 = "backgrounds/Day6_MohoHouse_04.jpg"
image Day6_MohoHouse_05 = "backgrounds/Day6_MohoHouse_05.jpg"
image Day6_MohoHouse_06 = "backgrounds/Day6_MohoHouse_06.jpg"
image Day6_MohoHouse_07 = "backgrounds/Day6_MohoHouse_07.jpg"
image Shirt = "Shirt.png"
image Thong = "Thong.png"
image Day6_AssAnimation_00 = "backgrounds/Day6_AssAnimation_00.jpg"
image Day6_AssAnimation2_00 = "backgrounds/Day6_AssAnimation2_00.jpg"
image Day6_MohoHouse_PoolDream01 = "backgrounds/Day6_MohoHouse_PoolDream01.jpg"
image Day6_MohoHouse_PoolDream02 = "backgrounds/Day6_MohoHouse_PoolDream02.jpg"
image Day6_MohoHouse_PoolDream03 = "backgrounds/Day6_MohoHouse_PoolDream03.jpg"
image Day6_MohoHouse_PoolDream04 = "backgrounds/Day6_MohoHouse_PoolDream04.jpg"
image Day6_MohoHouse_PoolDream05 = "backgrounds/Day6_MohoHouse_PoolDream05.jpg"
image Day6_MohoHouse_PoolDream06 = "backgrounds/Day6_MohoHouse_PoolDream06.jpg"
image Day7 = "backgrounds/Day7.jpg"
image Day7_CinemaOut_01a = "backgrounds/Day7_CinemaOut_01a.jpg"
image Day7_CinemaOut_02a = "backgrounds/Day7_CinemaOut_02a.jpg"
image Day7_CinemaOut_01b = "backgrounds/Day7_CinemaOut_01b.jpg"
image Day7_CinemaOut_02b = "backgrounds/Day7_CinemaOut_02b.jpg"
image Day7_Pizzeria_01a = "backgrounds/Day7_Pizzeria_01a.jpg"
image Day7_Pizzeria_01b = "backgrounds/Day7_Pizzeria_01b.jpg"
image Day7_Pizzeria_02a = "backgrounds/Day7_Pizzeria_02a.jpg"
image Day7_Pizzeria_02b = "backgrounds/Day7_Pizzeria_02b.jpg"
image Day7_Pizzeria_03a = "backgrounds/Day7_Pizzeria_03a.jpg"
image Day7_Pizzeria_03b = "backgrounds/Day7_Pizzeria_03b.jpg"
image Day7_Pizzeria_04 = "backgrounds/Day7_Pizzeria_04.jpg"
image Day7_Pizzeria_05a = "backgrounds/Day7_Pizzeria_05a.jpg"
image Day7_Pizzeria_05b = "backgrounds/Day7_Pizzeria_05b.jpg"
image Day7_Pizzeria_06 = "backgrounds/Day7_Pizzeria_06.jpg"
image Day7_Pizzeria_07 = "backgrounds/Day7_Pizzeria_07.jpg"
image Day7_Pizzeria_08a = "backgrounds/Day7_Pizzeria_08a.jpg"
image Day7_Pizzeria_08b = "backgrounds/Day7_Pizzeria_08b.jpg"
image Day7_Pizzeria_09 = "backgrounds/Day7_Pizzeria_09.jpg"
image Day7_Pizzeria_10a = "backgrounds/Day7_Pizzeria_10a.jpg"
image Day7_Pizzeria_10b = "backgrounds/Day7_Pizzeria_10b.jpg"
image Day7_Pizzeria_11a = "backgrounds/Day7_Pizzeria_11a.jpg"
image Day7_Pizzeria_11b = "backgrounds/Day7_Pizzeria_11b.jpg"
image Day7_Pizzeria_12a = "backgrounds/Day7_Pizzeria_12a.jpg"
image Day7_Pizzeria_12b = "backgrounds/Day7_Pizzeria_12b.jpg"
image Day7_Pizzeria_13a = "backgrounds/Day7_Pizzeria_13a.jpg"
image Day7_Pizzeria_13b = "backgrounds/Day7_Pizzeria_13b.jpg"
image Day7_Pizzeria_14a = "backgrounds/Day7_Pizzeria_14a.jpg"
image Day7_Pizzeria_14b = "backgrounds/Day7_Pizzeria_14b.jpg"
image Day7_Pizzeria_15a = "backgrounds/Day7_Pizzeria_15a.jpg"
image Day7_Pizzeria_15b = "backgrounds/Day7_Pizzeria_15b.jpg"
image Day7_Pizzeria_16 = "backgrounds/Day7_Pizzeria_16.jpg"
image Day7_Pizzeria_17a = "backgrounds/Day7_Pizzeria_17a.jpg"
image Day7_Pizzeria_17b = "backgrounds/Day7_Pizzeria_17b.jpg"
image Day7_Pizzeria_18a = "backgrounds/Day7_Pizzeria_18a.jpg"

if I put all the Day6 and Day7 images together seperately, does it matter? Basically, what I'm asking is: can I make these all the same by moving them around?
 

DaClown

Member
Sep 12, 2020
172
276
I'm trying to rework a game from the original to my Modded version and would prefer all the lines, aside from dialogue, to look similar. Does it matter if the images are disorganized according to the day and does that make a difference in game? For example:

image Day7_PhoneCall_06 = "backgrounds/Day7_PhoneCall_06.jpg"
image Day7_PhoneCall_07 = "backgrounds/Day7_PhoneCall_07.jpg"
image Day7_PhoneCall_08 = "backgrounds/Day7_PhoneCall_08.jpg"
image Day7_PhoneCall_09 = "backgrounds/Day7_PhoneCall_09.jpg"
image Day7_PhoneCall_10 = "backgrounds/Day7_PhoneCall_10.jpg"
image Day6 = "backgrounds/Day6.jpg"
image Day6_MohoHouse_01 = "backgrounds/Day6_MohoHouse_01.jpg"
image Day6_MohoHouse_02 = "backgrounds/Day6_MohoHouse_02.jpg"
image Day6_MohoHouse_03 = "backgrounds/Day6_MohoHouse_03.jpg"
image Day6_MohoHouse_04 = "backgrounds/Day6_MohoHouse_04.jpg"
image Day6_MohoHouse_05 = "backgrounds/Day6_MohoHouse_05.jpg"
image Day6_MohoHouse_06 = "backgrounds/Day6_MohoHouse_06.jpg"
image Day6_MohoHouse_07 = "backgrounds/Day6_MohoHouse_07.jpg"
image Shirt = "Shirt.png"
image Thong = "Thong.png"
image Day6_AssAnimation_00 = "backgrounds/Day6_AssAnimation_00.jpg"
image Day6_AssAnimation2_00 = "backgrounds/Day6_AssAnimation2_00.jpg"
image Day6_MohoHouse_PoolDream01 = "backgrounds/Day6_MohoHouse_PoolDream01.jpg"
image Day6_MohoHouse_PoolDream02 = "backgrounds/Day6_MohoHouse_PoolDream02.jpg"
image Day6_MohoHouse_PoolDream03 = "backgrounds/Day6_MohoHouse_PoolDream03.jpg"
image Day6_MohoHouse_PoolDream04 = "backgrounds/Day6_MohoHouse_PoolDream04.jpg"
image Day6_MohoHouse_PoolDream05 = "backgrounds/Day6_MohoHouse_PoolDream05.jpg"
image Day6_MohoHouse_PoolDream06 = "backgrounds/Day6_MohoHouse_PoolDream06.jpg"
image Day7 = "backgrounds/Day7.jpg"
image Day7_CinemaOut_01a = "backgrounds/Day7_CinemaOut_01a.jpg"
image Day7_CinemaOut_02a = "backgrounds/Day7_CinemaOut_02a.jpg"
image Day7_CinemaOut_01b = "backgrounds/Day7_CinemaOut_01b.jpg"
image Day7_CinemaOut_02b = "backgrounds/Day7_CinemaOut_02b.jpg"
image Day7_Pizzeria_01a = "backgrounds/Day7_Pizzeria_01a.jpg"
image Day7_Pizzeria_01b = "backgrounds/Day7_Pizzeria_01b.jpg"
image Day7_Pizzeria_02a = "backgrounds/Day7_Pizzeria_02a.jpg"
image Day7_Pizzeria_02b = "backgrounds/Day7_Pizzeria_02b.jpg"
image Day7_Pizzeria_03a = "backgrounds/Day7_Pizzeria_03a.jpg"
image Day7_Pizzeria_03b = "backgrounds/Day7_Pizzeria_03b.jpg"
image Day7_Pizzeria_04 = "backgrounds/Day7_Pizzeria_04.jpg"
image Day7_Pizzeria_05a = "backgrounds/Day7_Pizzeria_05a.jpg"
image Day7_Pizzeria_05b = "backgrounds/Day7_Pizzeria_05b.jpg"
image Day7_Pizzeria_06 = "backgrounds/Day7_Pizzeria_06.jpg"
image Day7_Pizzeria_07 = "backgrounds/Day7_Pizzeria_07.jpg"
image Day7_Pizzeria_08a = "backgrounds/Day7_Pizzeria_08a.jpg"
image Day7_Pizzeria_08b = "backgrounds/Day7_Pizzeria_08b.jpg"
image Day7_Pizzeria_09 = "backgrounds/Day7_Pizzeria_09.jpg"
image Day7_Pizzeria_10a = "backgrounds/Day7_Pizzeria_10a.jpg"
image Day7_Pizzeria_10b = "backgrounds/Day7_Pizzeria_10b.jpg"
image Day7_Pizzeria_11a = "backgrounds/Day7_Pizzeria_11a.jpg"
image Day7_Pizzeria_11b = "backgrounds/Day7_Pizzeria_11b.jpg"
image Day7_Pizzeria_12a = "backgrounds/Day7_Pizzeria_12a.jpg"
image Day7_Pizzeria_12b = "backgrounds/Day7_Pizzeria_12b.jpg"
image Day7_Pizzeria_13a = "backgrounds/Day7_Pizzeria_13a.jpg"
image Day7_Pizzeria_13b = "backgrounds/Day7_Pizzeria_13b.jpg"
image Day7_Pizzeria_14a = "backgrounds/Day7_Pizzeria_14a.jpg"
image Day7_Pizzeria_14b = "backgrounds/Day7_Pizzeria_14b.jpg"
image Day7_Pizzeria_15a = "backgrounds/Day7_Pizzeria_15a.jpg"
image Day7_Pizzeria_15b = "backgrounds/Day7_Pizzeria_15b.jpg"
image Day7_Pizzeria_16 = "backgrounds/Day7_Pizzeria_16.jpg"
image Day7_Pizzeria_17a = "backgrounds/Day7_Pizzeria_17a.jpg"
image Day7_Pizzeria_17b = "backgrounds/Day7_Pizzeria_17b.jpg"
image Day7_Pizzeria_18a = "backgrounds/Day7_Pizzeria_18a.jpg"

if I put all the Day6 and Day7 images together seperately, does it matter? Basically, what I'm asking is: can I make these all the same by moving them around?
I assume you mean transforming the list presented so that it looks like:
Code:
image Shirt = "Shirt.png"
image Thong = "Thong.png"
image Day6 = "backgrounds/Day6.jpg"
image Day6_MohoHouse_01 = "backgrounds/Day6_MohoHouse_01.jpg"
image Day6_MohoHouse_02 = "backgrounds/Day6_MohoHouse_02.jpg"
image Day6_MohoHouse_03 = "backgrounds/Day6_MohoHouse_03.jpg"
image Day6_MohoHouse_04 = "backgrounds/Day6_MohoHouse_04.jpg"
image Day6_MohoHouse_05 = "backgrounds/Day6_MohoHouse_05.jpg"
image Day6_MohoHouse_06 = "backgrounds/Day6_MohoHouse_06.jpg"
image Day6_MohoHouse_07 = "backgrounds/Day6_MohoHouse_07.jpg"
image Day6_AssAnimation_00 = "backgrounds/Day6_AssAnimation_00.jpg"
image Day6_AssAnimation2_00 = "backgrounds/Day6_AssAnimation2_00.jpg"
image Day6_MohoHouse_PoolDream01 = "backgrounds/Day6_MohoHouse_PoolDream01.jpg"
image Day6_MohoHouse_PoolDream02 = "backgrounds/Day6_MohoHouse_PoolDream02.jpg"
image Day6_MohoHouse_PoolDream03 = "backgrounds/Day6_MohoHouse_PoolDream03.jpg"
image Day6_MohoHouse_PoolDream04 = "backgrounds/Day6_MohoHouse_PoolDream04.jpg"
image Day6_MohoHouse_PoolDream05 = "backgrounds/Day6_MohoHouse_PoolDream05.jpg"
image Day6_MohoHouse_PoolDream06 = "backgrounds/Day6_MohoHouse_PoolDream06.jpg"
image Day7_PhoneCall_06 = "backgrounds/Day7_PhoneCall_06.jpg"
image Day7_PhoneCall_07 = "backgrounds/Day7_PhoneCall_07.jpg"
image Day7_PhoneCall_08 = "backgrounds/Day7_PhoneCall_08.jpg"
image Day7_PhoneCall_09 = "backgrounds/Day7_PhoneCall_09.jpg"
image Day7_PhoneCall_10 = "backgrounds/Day7_PhoneCall_10.jpg"
image Day7 = "backgrounds/Day7.jpg"
image Day7_CinemaOut_01a = "backgrounds/Day7_CinemaOut_01a.jpg"
image Day7_CinemaOut_02a = "backgrounds/Day7_CinemaOut_02a.jpg"
image Day7_CinemaOut_01b = "backgrounds/Day7_CinemaOut_01b.jpg"
image Day7_CinemaOut_02b = "backgrounds/Day7_CinemaOut_02b.jpg"
image Day7_Pizzeria_01a = "backgrounds/Day7_Pizzeria_01a.jpg"
image Day7_Pizzeria_01b = "backgrounds/Day7_Pizzeria_01b.jpg"
image Day7_Pizzeria_02a = "backgrounds/Day7_Pizzeria_02a.jpg"
image Day7_Pizzeria_02b = "backgrounds/Day7_Pizzeria_02b.jpg"
image Day7_Pizzeria_03a = "backgrounds/Day7_Pizzeria_03a.jpg"
image Day7_Pizzeria_03b = "backgrounds/Day7_Pizzeria_03b.jpg"
image Day7_Pizzeria_04 = "backgrounds/Day7_Pizzeria_04.jpg"
image Day7_Pizzeria_05a = "backgrounds/Day7_Pizzeria_05a.jpg"
image Day7_Pizzeria_05b = "backgrounds/Day7_Pizzeria_05b.jpg"
image Day7_Pizzeria_06 = "backgrounds/Day7_Pizzeria_06.jpg"
image Day7_Pizzeria_07 = "backgrounds/Day7_Pizzeria_07.jpg"
image Day7_Pizzeria_08a = "backgrounds/Day7_Pizzeria_08a.jpg"
image Day7_Pizzeria_08b = "backgrounds/Day7_Pizzeria_08b.jpg"
image Day7_Pizzeria_09 = "backgrounds/Day7_Pizzeria_09.jpg"
image Day7_Pizzeria_10a = "backgrounds/Day7_Pizzeria_10a.jpg"
image Day7_Pizzeria_10b = "backgrounds/Day7_Pizzeria_10b.jpg"
image Day7_Pizzeria_11a = "backgrounds/Day7_Pizzeria_11a.jpg"
image Day7_Pizzeria_11b = "backgrounds/Day7_Pizzeria_11b.jpg"
image Day7_Pizzeria_12a = "backgrounds/Day7_Pizzeria_12a.jpg"
image Day7_Pizzeria_12b = "backgrounds/Day7_Pizzeria_12b.jpg"
image Day7_Pizzeria_13a = "backgrounds/Day7_Pizzeria_13a.jpg"
image Day7_Pizzeria_13b = "backgrounds/Day7_Pizzeria_13b.jpg"
image Day7_Pizzeria_14a = "backgrounds/Day7_Pizzeria_14a.jpg"
image Day7_Pizzeria_14b = "backgrounds/Day7_Pizzeria_14b.jpg"
image Day7_Pizzeria_15a = "backgrounds/Day7_Pizzeria_15a.jpg"
image Day7_Pizzeria_15b = "backgrounds/Day7_Pizzeria_15b.jpg"
image Day7_Pizzeria_16 = "backgrounds/Day7_Pizzeria_16.jpg"
image Day7_Pizzeria_17a = "backgrounds/Day7_Pizzeria_17a.jpg"
image Day7_Pizzeria_17b = "backgrounds/Day7_Pizzeria_17b.jpg"
image Day7_Pizzeria_18a = "backgrounds/Day7_Pizzeria_18a.jpg"
This should not break the code.

If that is not what you meant then I need further clarification to be able to help you.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,971
16,226
Those :
image Day7_PhoneCall_06 = "backgrounds/Day7_PhoneCall_06.jpg"
[...]
image Day7_PhoneCall_10 = "backgrounds/Day7_PhoneCall_10.jpg"
And those:
image Day6_MohoHouse_01 = "backgrounds/Day6_MohoHouse_01.jpg"
[...]
image Day6_MohoHouse_07 = "backgrounds/Day6_MohoHouse_07.jpg"
As well as those:
image Day6_AssAnimation_00 = "backgrounds/Day6_AssAnimation_00.jpg"
image Day6_AssAnimation2_00 = "backgrounds/Day6_AssAnimation2_00.jpg"
image Day6_MohoHouse_PoolDream01 = "backgrounds/Day6_MohoHouse_PoolDream01.jpg"
[...]
image Day6_MohoHouse_PoolDream06 = "backgrounds/Day6_MohoHouse_PoolDream06.jpg"
and finally those:
image Day7_CinemaOut_01a = "backgrounds/Day7_CinemaOut_01a.jpg"
[...]
image Day7_CinemaOut_02b = "backgrounds/Day7_CinemaOut_02b.jpg"
image Day7_Pizzeria_01a = "backgrounds/Day7_Pizzeria_01a.jpg"
[...]
image Day7_Pizzeria_18a = "backgrounds/Day7_Pizzeria_18a.jpg"
Are totally useless. Their name clearly imply that they are unique, therefore will do its job without problem, and an "image" displayable named according to the image file (without the extension) will exist without the need to explicitly declare it.

It can also be the case for the image I haven't quoted, but their name aren't explicit enough to be sure that they are unique.
 
  • Like
Reactions: Basilicata

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,608
2,256
I'm trying to rework a game from the original to my Modded version and would prefer all the lines, aside from dialogue, to look similar. Does it matter if the images are disorganized according to the day and does that make a difference in game?

[...]

if I put all the Day6 and Day7 images together seperately, does it matter? Basically, what I'm asking is: can I make these all the same by moving them around?
Nope. RenPy doesn't care.
Before RenPy does anything else, it scans the code for certain commands and deals with them straight away, before the game really gets going. image: is one of those statements. It doesn't matter where in the code the line is (it could be the last line of code for all RenPy cares), it could be in script.rpy or any other .rpy file.
The only consideration is where there are duplicated image: statements, where the "latest" line will effectively overwrite the previous one. That "latest" is also impacted by the filename of the .rpy file - which are processed alphabetically. So a duplicate image statement in zzz-myfile.rpy will overwrite a previous one in aaa-myfile2.rpy.

Python:
image Day7_PhoneCall_06 = "backgrounds/Day7_PhoneCall_06.jpg"
[...]
Are totally useless. Their name clearly imply that they are unique, therefore will do its job without problem [...]

I have one caveat to add here (because it came back to bite me in the ass recently).

RenPy will auto-generate image: statements for every image it recognizes in the /games/images/ folder and any sub-folders.

So a file called /game/images/folder1/chars/wednesday/eileen_happy.png will automatically generate a line that I assume looks something like:

Python:
image eileen_happy = "folder1/chars/wednesday/eileen_happy.png"

BUT... the generated displayable name will always be lowercase, even if the filename is mixed case or uppercase.

As a result... /game/images/folder1/chars/wednesday/EileEN_SAD.png would look like:

Python:
image eileen_sad = "folder1/chars/wednesday/EileEN_SAD.png"

My advice... you'll make your life 99% easier by using only lowercase filenames and letting RenPy auto generate the displayable ID's for you.

... not that you can do much about it, since it sounds like it's already someone else's mistake - and you're just having to deal with their crap code.
 
Last edited:

Masgara

Newbie
Nov 15, 2020
61
48
I actually started one in February. Wrote about 70% of it in 3 days... then... well... it's September now and I still haven't done that last 30% yet. It's RenPy only, no graphics advice, no story advice. Purely a combined introduction and how-to guide. Then occasionally, I PM people the incomplete version if it looks like it might help them even in it's incomplete state.
Interesting, I have been thinking to learn RenPy, just because I am interested. Maybe I someday will be involved on some project in it. Like I am "accidentally" right now on Godot.
I read your quides on your signature and I liked your touch

My advice... you'll make your life 99% easier by using only lowercase filenames and letting RenPy auto generate the displayable ID's for you.
I hear lot of complains on my code because of my camelCase and PascalCase style of naming. I smirked. :sneaky:
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,971
16,226
I hear lot of complains on my code because of my camelCase and PascalCase style of naming. I smirked. :sneaky:
It's another subject.

Here, he recommend you to have the same case for both the image files, and the image objects that you'll use in the game ; following for this the name convention that will be forced on you for the said image objects. It's, before anything else, a question of constancy when you'll develop the game.
By having two different naming conventions for what is the same thing (the images) but seen from two different point of view (the computer and the code), you'll open the gate to many writing errors. This simply because you'll have the tendency to use in the code the same convention that you've used when creating the image files. A convention that is not the right one since PyTom used snake_case (the recommended naming convention for Python) where he should have kept the file name with their original case.
Therefore, in the end, your game will be full of "image missing" errors, that you'll not understand at first, because the files are effectively present, just named differently in the code.
 

recreation

pure evil!
Respected User
Game Developer
Jun 10, 2018
6,327
22,776
BUT... the generated displayable name will always be lowercase, even if the filename is mixed case or uppercase.

As a result... /game/images/folder1/chars/wednesday/EileEN_SAD.png would look like:
:unsure: I think it's not only converting them to lowercase, but completely ignoring filenames with uppercase. Everytime I accidently add a uppercase letter to an image name it will just throw "does not exist" or "not found" errors.
 

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,608
2,256
:unsure: I think it's not only converting them to lowercase, but completely ignoring filenames with uppercase. Everytime I accidently add a uppercase letter to an image name it will just throw "does not exist" or "not found" errors.
Nahh.

I tested it before I posted.

I created an image called /game/images/JustTesting.png and ran my "throw everything in there to test" test project. As soon as it started, I opened the console and used the scene JustTesting command... nothing obviously. Then I did scene justtesting and it worked fine.

So yeah... it's just ignoring the case when searching the folders and building the full list of displayables using lowercase only.

Anyone wanting to bite the bullet and mass convert their existing image folders to lower case, this batch script works on Windoze:

Code:
@echo off

rem -call it ren-lcase.bat or something -

for /f "Tokens=*" %%f in ('dir /l/b/a-d') do (rename "%%f" "%%f")
for /r /d %%x in (*) do (
    pushd "%%x"
    for /f "Tokens=*" %%f in ('dir /l/b/a-d') do (rename "%%f" "%%f")
    popd
)

Just be careful to only run it in your /images/ folder. I made the mistake of running it in the /game/ folder and then ran fowl of the fact RenPy really DOES care about the case of some filenames in other sub directories.

It only does files and not folder names (it probably could, but I couldn't be arsed testing it when I only had 1 sub-folder to rename manually).

... and THEN you'd had to do a LOT of rework of your RenPy code to use the new lowercase filenames in places where you'd specified it manually.
 

recreation

pure evil!
Respected User
Game Developer
Jun 10, 2018
6,327
22,776
Nahh.

I tested it before I posted.

I created an image called /game/images/JustTesting.png and ran my "throw everything in there to test" test project. As soon as it started, I opened the console and used the scene JustTesting command... nothing obviously. Then I did scene justtesting and it worked fine.

So yeah... it's just ignoring the case when searching the folders and building the full list of displayables using lowercase only.
:unsure:....
:unsure: weird, I definetely had this happen several times already... :unsure:
Might've been video names, or a screen added image, don't remember anymore. I'll post back if it happens again.