Ren'Py Gripes

In this forum we discuss the future of Ren'Py, both bug fixes and longer-term development. Pre-releases are announced and discussed here.
Message
Author
User avatar
Kia
Eileen-Class Veteran
Posts: 1037
Joined: Fri Aug 01, 2014 7:49 am
Deviantart: KiaAzad
Discord: Kia#6810
Contact:

Re: Ren'Py Gripes

#526 Post by Kia »

I've been tinkering with an easy way to fade backgrounds into each other based on a time keeping function and it turned out to be more complicated than I expected. I can think of several ways to do it using screens, but I have an idea that will make it much less complicated: Multiple timelines

This is the gist of it:
Alongside the main timeline we make (or define) side timelines:

Code: Select all

label backgrounds timeline bg:
    show bg1 morning with with dissolve
    pause
    show bg1 noon with with dissolve
    pause
    show bg1 afternoon with with dissolve
    pause
    show bg1 night with with dissolve
    pause
    jump backgrounds
These timelines only advance through direct commands:

Code: Select all

init python:
    def advance_bg():
        renpy.timeline.bg.advance()
    def bg_jump(label):
        renpy.timeline.bg.jump(label)
this way we can dissolve images into each other (specially backgrounds) without interrupting the game's flow.
Another advantage having multiple timelines can have, is ability to have multiple conversations happening at the same time but with different paces. the character can be answering text messages while the story is going on, or leave answering those text messages for a later time.
or it can be like playing multiple games at once if we let the player have multiple say or NVL screens.

lewishunter
Newbie
Posts: 13
Joined: Sun Aug 01, 2021 8:06 pm
Contact:

Re: Ren'Py Gripes

#527 Post by lewishunter »

Hi! I am using the gui.text_properties() and gui.button_properties () documented in https://www.renpy.org/dev-doc/html/gui_ ... hlight=gui

I would like if this functions could return all the properties (ike position) instead of only standart style properties. This way the code would look more simpler and tidy.

lewishunter
Newbie
Posts: 13
Joined: Sun Aug 01, 2021 8:06 pm
Contact:

Re: Ren'Py Gripes

#528 Post by lewishunter »

A PRESSED STATE FOR BUTTONS.

I realized that the lack of a pressed state for buttons (like many software and OS. e.g. Windows) makes Ren'Py feel somewhat unresponsive to the user, giving it an 'amateurish' feel.

It would be grate writing something like "pressed" or the "selected" image be the same as the "pressed" image, or having two pressed states, one for when idle and another when selected.

I found a japanese user (akakyouryuu) who made a plugin trying to solve this but only for imagebuttons. The downside is that it's buggy when toggling fullscreen and you cannot use screen language.
imagebutton2.rpy
(7.25 KiB) Downloaded 47 times
EDIT:

I found a code made by Asceai in this post: viewtopic.php?t=26961

It's more simple to apply but still buggy.

Still it would be great if Ren'Py could do it as a basic feature.

bloobeary
Regular
Posts: 36
Joined: Fri Oct 04, 2019 3:02 pm
Deviantart: bloobeary
Soundcloud: user-212448702
Contact:

Re: Ren'Py Gripes

#529 Post by bloobeary »

The biggest gripe for me at the moment, and honestly, I feel this rises to the level of being a bug, is that the character name and dialog will vanish from the screen if a transition is used on a character sprite.

A subtle dissolve between character expressions really looks good, and helps to add polish to a game, but not if it causes the character's name and dialog to keep blinking on and off. I've searched for a solution to this and seen tons of people asking how to make this stop happening. And the few suggested fixes that I've seen for it appear to be ineffective.

I'd also like a new tag, similar to {nw} but which doesn't cause dialog to vanish from the screen. I'd like to be able to have a character speak with a pause before their sprite appears onscreen, and there's just no way to do that without forcing the player to click first. So, give us a tag, maybe {nwt} (for "no wait, transition") that acts like an automatic mouseclick.

lewishunter
Newbie
Posts: 13
Joined: Sun Aug 01, 2021 8:06 pm
Contact:

Re: Ren'Py Gripes

#530 Post by lewishunter »

It's not a bug. I changed it doing this:

Code: Select all

define config.say_attribute_transition_layer = 'master'
This works by applying the attribute transition to the master layer only (or other if you want) thus avoiding applying it to the dialogue layer (screen layer). You can change the layers too. Check the documentation.

bloobeary
Regular
Posts: 36
Joined: Fri Oct 04, 2019 3:02 pm
Deviantart: bloobeary
Soundcloud: user-212448702
Contact:

Re: Ren'Py Gripes

#531 Post by bloobeary »

Ok, my current gripe and again, if there's just something I'm not seeing here, please tell me how to fix this one too:

I can do:
Dissolve(2.0)
to slow down a dissolve.

Why can I not also do:
ease(2.0)
...to slow down an ease?

I've tried it. It throws an error.

User avatar
Kia
Eileen-Class Veteran
Posts: 1037
Joined: Fri Aug 01, 2014 7:49 am
Deviantart: KiaAzad
Discord: Kia#6810
Contact:

Re: Ren'Py Gripes

#532 Post by Kia »

alongside align .5,.5, I often find my self typing fit_first True every time I use fixed. I think this setting should be True by default since the main use of fixed is overlapping two things on top of each other.
Also, since putting two object inside frames and buttons would distort the frame size, perhaps forcing them to fit the first child would be the more sensible option for all of them.
I don't know if I've suggested this one before, but it would be grate if bars accept a child so we can overlap a text or image on them without resorting to fixed.
And, style for images please.

Code: Select all

style battle_add:
    align (.5,.5)

luoying
Newbie
Posts: 7
Joined: Wed Apr 06, 2022 8:31 pm
Contact:

Re: Ren'Py Gripes

#533 Post by luoying »

I built a music room. I hope it can adjust the music progress. It's complicated, but I succeeded in the end.

I hope it can be made simpler. Of course, there is a video player. I hope it can adjust the playback progress through the progress bar. This function is very good. There are many video games now.

My English is very poor. I can only communicate with you through translator. I'm really sorry.

camzgr8game
Newbie
Posts: 12
Joined: Fri Sep 16, 2022 9:32 pm
Contact:

Re: Ren'Py Gripes

#534 Post by camzgr8game »

Id like to have a better particle system + documentation on how to use it, probably not top priority, but something a bit easier to use and with more tools.
Specifically Id like to be able to birth particles from a black and white map so that I can have particle effects coming off layers.
Better controllers for spin/velocity, drag, scale over life, life randoms, direction, etc.
It would be super cool to have colliders as well and bounce events, second events, depth sorting but not sure if they would be totally crucial.
Second events being particles being able to emit sub particles, so you could have better trails/magicy type fx.
Bounce events being killing a particle that collides with a collider and then spawning in a bunch of particles at the collision point.
Depth sorting as in if you have 2d sprites in a 3D space, you could have the particles go behind and in front of things. Like a teleporter effect from the JJabrams Masterpiece Star Trek, having the particles swirl in a cylinder in front and behind your character.

Also Id like a tool or something that could do minimum spec testing. This is probably easier to do than a particle engine overhaul.
But basically something that pins the framerate of the game at a specific framerate, then auto plays the game on full power on your computer, and then decreases resources like CPU/GPU/Memory each playthrough it does until the framerate isn't sustainable.
The user would have to set up a cheat system for the engine to use so that if you had things locked behind a value ie You need 500$ to click this button the game could just ignore it and click the buttons etc. From this you'd also be able to spit out a nice treeview of every path mapped out and what links to what in some sort of graphical display.

All that being said, the engine is amazing for being free and the community around it is amazing, I just wish I knew more python so I could take better advantage of it. But im getting there slowly.

User avatar
Kaji
Regular
Posts: 87
Joined: Thu Nov 17, 2022 10:17 pm
Github: Kaji01
Discord: Kaji#7767
Contact:

Re: Ren'Py Gripes

#535 Post by Kaji »

Would it be possible to get a simplified furigana syntax? {rb}日本{/rb}{rt}にほん{/rt} is functional, and matches HTML, but it is extremely hard to read, especially if you're trying to do Japanese learners a favor and add furigana for the full script of your game.

Case in point, this is simply unreadable in any casual manner when trying to review or edit the script:

Code: Select all

"{rb}全国{/rb}{rt}ぜんこく{/rt}の{rb}神様{/rb}{rt}かみさま{/rt}が{rb}出雲{/rb}{rt}いずも{/rt}へ{rb}集{/rb}{rt}あつ{/rt}まって、{rb}一ヶ月{/rb}{rt}いっかげつ{/rt}にわたる{rb}会議{/rb}{rt}かいぎ{/rt}を{rb}開{/rb}{rt}ひら{/rt}きます。"
An alternative to this could be to adapt the syntax used over at Japanese.SE, where you put the kanji in [brackets] and reading in (parentheses) (their system is a bit more sophisticated and can intelligently parse thinks like kana in between kanji, but I'm not looking for that much here).

The example above would look like so, using the suggested format:

Code: Select all

"[全国](ぜんこく)の[神様](かみさま)が[出雲](いずも)へ[集](あつ)まって、[一ヶ月](いっかげつ)にわたる[会議](かいぎ)を[開](ひら)きます。"
While it's fair to note that brackets are already reserved for "[variables]", it perhaps a similar alternative syntax can be worked out, like all parentheses? (日本)(にほん)

User avatar
Kia
Eileen-Class Veteran
Posts: 1037
Joined: Fri Aug 01, 2014 7:49 am
Deviantart: KiaAzad
Discord: Kia#6810
Contact:

Re: Ren'Py Gripes

#536 Post by Kia »

Every time I forget to remove .rpyc files before sending a folder to somebody, their anti-virus goes bananas over them, it would be great if renpy would generate them inside a parallel folder tree instead.
Maybe keep the save and cache folders there as well. That way they wouldn't be in the way anymore, and won't find themselves where they shouldn't be.
Also, in launcher, a button to delete all rpyc files would come in handy in rare occasions that they cause an error.

User avatar
PyTom
Ren'Py Creator
Posts: 16088
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: Ren'Py Gripes

#537 Post by PyTom »

Kaji >>> This seems doable, though I'd have to find a syntax. I'm sort of thinking something like:

"{rp}(kanji|furigana){/rp}"

Where there are a lot of ways you could automate the {rp} (ruby-parens) tag. What do you think?

Kia >>>

.rpyc files are important to how Ren'Py saves and load games. If an antivirus system detects them, it's defective and should be replaced by one that works.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

User avatar
Kia
Eileen-Class Veteran
Posts: 1037
Joined: Fri Aug 01, 2014 7:49 am
Deviantart: KiaAzad
Discord: Kia#6810
Contact:

Re: Ren'Py Gripes

#538 Post by Kia »

PyTom wrote: Fri Dec 09, 2022 2:55 am .rpyc files are important to how Ren'Py saves and load games. If an antivirus system detects them, it's defective and should be replaced by one that works.
That's what I say to everybody. Still, if it's possible, keeping them separate would make developing complex games a bit more pleasant.

User avatar
Kaji
Regular
Posts: 87
Joined: Thu Nov 17, 2022 10:17 pm
Github: Kaji01
Discord: Kaji#7767
Contact:

Re: Ren'Py Gripes

#539 Post by Kaji »

PyTom wrote: Fri Dec 09, 2022 2:55 am Kaji >>> This seems doable, though I'd have to find a syntax. I'm sort of thinking something like:

"{rp}(kanji|furigana){/rp}"

Where there are a lot of ways you could automate the {rp} (ruby-parens) tag. What do you think?
That definitely looks a lot cleaner! It's nice in that it's still easy to put into the script with search/replace once I'm done editing the script. Current process looks like the following:

Code: Select all

[日本語](にほんご)                      Use [brackets] around kanji and (parentheses) around kana when editing in text editor
{rb}日本語](にほんご)                   Replace '[' with '{rb}'
{rb}日本語{/rb}{rt}にほんご)            Replace '](' with '{/rb}{rt}'
{rb}日本語{/rb}{rt}にほんご{/rt}        Replace ')' with '{/rt}'
Your idea can reduce that to just a simple search to add the {rp} tags outside of parentheses and then a quick check ensuring that nothing got marked by accident in the search/replace process

Another possibility to streamline it just a step further, if it's not already in use, might be {{double braces}}?

Code: Select all

{{日本語|にほんご}}

brunoais
Newbie
Posts: 2
Joined: Thu Oct 20, 2022 3:34 pm
Contact:

Re: Ren'Py Gripes

#540 Post by brunoais »

Kia wrote: Fri Dec 09, 2022 3:33 am
PyTom wrote: Fri Dec 09, 2022 2:55 am .rpyc files are important to how Ren'Py saves and load games. If an antivirus system detects them, it's defective and should be replaced by one that works.
That's what I say to everybody. Still, if it's possible, keeping them separate would make developing complex games a bit more pleasant.
As a workaround, you may use a version manager and tell the version manager to ignore the .rpyc files.

For example, if you use git on linux (or git-bash on windows):

Code: Select all

# Make sure git exists
touch .gitignore
# Ignore rpyc
cat << 'EOF' >> .gitignore

# rpyc files are causing antivirous to go haywire. This avoids that
*.rpyc
EOF
# Remove .rpyc files from git but don't delete them
git rm --cache '*.rpyc'
Then you can commit and push.

Post Reply

Who is online

Users browsing this forum: No registered users