Dreaming of a future Ren'Py

In this forum we discuss the future of Ren'Py, both bug fixes and longer-term development. Pre-releases are announced and discussed here.
Post Reply
Message
Author
User avatar
gas
Miko-Class Veteran
Posts: 842
Joined: Mon Jan 26, 2009 7:21 pm
Contact:

Dreaming of a future Ren'Py

#1 Post by gas »

A: a "pressed" status for buttons.
B: create a "model", save it and use it for new projects.
C: go back, remove GUI as a default, use styles and change the gui guide with a style guide.
D: a set of extra bonus app in the launcher, like a text preview, an hex color selector, a quick todo notes collection.
E: a callback between main menu and game start (so pause, animations, whatever we need from that click and actual begin of the game)
F: an equivalent name structure for renpy file functions and screen language file actions.
G: find a way for tooltips to NOT delay so much or lagging the game.
H: revamp and rationalize of image gallery and music room (defining 3 times the same images is everything but consistent).
I: more and useful standard functions for Drag&Drop.
If you want to debate on a reply I gave to your posts, please QUOTE ME or i'll not be notified about. << now red so probably you'll see it.

10 ? "RENPY"
20 GOTO 10

RUN

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: Dreaming of a future Ren'Py

#2 Post by PyTom »

gas wrote:A: a "pressed" status for buttons.
Seems reasonable.
B: create a "model", save it and use it for new projects.
Not 100% sure what you mean by this. To some extent, we have this - there are only a small number of variables that needs to be changed between projects, and they're all confined to options.rpy.
C: go back, remove GUI as a default, use styles and change the gui guide with a style guide.
This isn't likely to happen. Screens and styles - which still exist, and the GUI is written in terms of - were too complicated to provide a coherent customization guide like the new GUI has. The new GUI is designed for three use cases - no/minimal GUI customization, retheming, and total replacement. It's better than screens-based code in all three - you're not fighting defaults from the old theme.

If you don't like the new GUI, just change it. It's all in screens.rpy, save for a single call to gui.init().
D: a set of extra bonus app in the launcher, like a text preview, an hex color selector, a quick todo notes collection.
We have the first and third of these in the launcher already.
E: a callback between main menu and game start (so pause, animations, whatever we need from that click and actual begin of the game)
This isn't necessary - label start _is_ that callback.
F: an equivalent name structure for renpy file functions and screen language file actions.
Not sure what you mean by this.
G: find a way for tooltips to NOT delay so much or lagging the game.
H: revamp and rationalize of image gallery and music room (defining 3 times the same images is everything but consistent).
I: more and useful standard functions for Drag&Drop.
All reasonable things. Many of these could be addressed by third parties before I'll have a chance to get around to them.
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
Meg'
Regular
Posts: 185
Joined: Tue Sep 27, 2011 10:37 am
Projects: Anges Démoniaques, Gang (Alex & Hugo), Le passé dans les veines
Location: France
Contact:

Re: Dreaming of a future Ren'Py

#3 Post by Meg' »

Would it be possible to separately save images and text? Because it seems ren'py saves them both together and it causes bug if we make major changes with the images.

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: Dreaming of a future Ren'Py

#4 Post by PyTom »

Meg': I'm not sure what you mean by that.
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
Imperf3kt
Lemma-Class Veteran
Posts: 3785
Joined: Mon Dec 14, 2015 5:05 am
itch: Imperf3kt
Location: Your monitor
Contact:

Re: Dreaming of a future Ren'Py

#5 Post by Imperf3kt »

Tooltips cause lag?
I hadn't noticed.
Warning: May contain trace amounts of gratuitous plot.
pro·gram·mer (noun) An organism capable of converting caffeine into code.

Current project: GGD Mentor

Twitter

User avatar
gas
Miko-Class Veteran
Posts: 842
Joined: Mon Jan 26, 2009 7:21 pm
Contact:

Re: Dreaming of a future Ren'Py

#6 Post by gas »

PyTom wrote: things
About the save name thing:
In the FileSave action, the name is the name (usually the index of the slot in the grid) + the page we are into. If the name is None, an almost random name is used. So I'm tied to the slot-page structure. I can't retrieve a file if I didn't a grid-page structure, as FileLoad work the same (need slot name and page). Those things are retrieved from the file name itself.
Now, renpy.load and renpy.save use a different name standard. They don't care of any "slot" or "page".
So, in the end, using those low level functions in the game create saves that I really don't know where they end in the grid structure.
One possible idea is to have a persistent list of saves, instead of using the save names directly. This can standardize the names.

renpy.save("tadah!",placement=first_free, kind="q")

where placement is where you want to put that file in the list. First_free is the first free space. Last_free append at the end.
Kind is a label you append to the file to identify, if needed, the file to create screens based on that id.
So I can sort all the "kind='q'" saves and show them in the 'q' page.
Those values are stored in that persistent, instead of being retrieved from the name. The index of the element in the list already give me the position in the grid.
The FileSave and FileLoad can work the same. You pass the name, the kind is the page, the index is derived by the button itself. So, in fact, there's no actual or major changes in these statements.
Wild dreams, I know.

About main menu callback:

I'm so bad at my expositions, sorry.
Actually, the Start() action exit from the main menu context instantly.
I'm aware you can code whatever at the start label, in fact I'm actually passing instant control to another screen before everything else.
I mean something that happen before the main menu is gone. You have a save callback, that happen between the save call and the actual save action. You can have a callback that happen just after Start() but before the main menu context is left (as far as I know and tried, the main menu is left anyway instantly, and everything happen just after).
Practical uses: animations, sound effects, feedbacks, pauses that you need to happen when "you're looking at the main menu after pressing START". It's easier to find more example of this behavior than the speed of light instant begin.
I'm almost sure people asked a number of times how to achieve that.

About extra stuff in the launcher:
I mean a text simulation. So you input a text, set properties with selectors, get the codes. Ren'py render the text a little differently than graphical apps, and SHIFT+R to test again the third outline is REALLY time consuming.
That could be done as a cookbook recipe and a project to launch, but having it directly in the launcher could be nice. Just a candy.
The #todo idea was more about a metadata field in the launcher. Select the project, and the "metadata" you set (stored in launcher or stripped out from a config. property) appear below. Sometime I found myself in need to know what exactly was this project about before launching. Again, just a candy.


@at Imperfekt:
yes, it does create a very little lag that became quite noticeable if you pair it with graphics and or conditionals on the screen (one example of that is Loren the Amazon Princess, where you get tooltips for units and, whatever machine I used, there's a perceivable lag when hovering things). I really dunno why, maybe 'cause tooltip can't predict his content and blit it on the fly, and the screen get updated as a whole too. Wild guess.
If you want to debate on a reply I gave to your posts, please QUOTE ME or i'll not be notified about. << now red so probably you'll see it.

10 ? "RENPY"
20 GOTO 10

RUN

User avatar
xavimat
Eileen-Class Veteran
Posts: 1460
Joined: Sat Feb 25, 2012 8:45 pm
Completed: Yeshua, Jesus Life, Cops&Robbers
Projects: Fear&Love, unknown
Organization: Pilgrim Creations
Github: xavi-mat
itch: pilgrimcreations
Location: Spain
Contact:

Re: Dreaming of a future Ren'Py

#7 Post by xavimat »

gas wrote:The #todo idea was more about a metadata field in the launcher. Select the project, and the "metadata" you set (stored in launcher or stripped out from a config. property) appear below. Sometime I found myself in need to know what exactly was this project about before launching.
Have you tried the current # TODO: feature of the Ren'Py launcher? I use it a lot. Every line in the rpy files with

Code: Select all

# TODO: whatever
is listed in the launcher (go to "Navigate script", and then "TODOs" category).
Comunidad Ren'Py en español: ¡Únete a nuestro Discord!
Rhaier Kingdom A Ren'Py Multiplayer Adventure Visual Novel.
Cops&Robbers A two-player experiment | Fear&Love Why can't we say I love you?
Honest Critique (Avatar made with Chibi Maker by ~gen8)

User avatar
gas
Miko-Class Veteran
Posts: 842
Joined: Mon Jan 26, 2009 7:21 pm
Contact:

Re: Dreaming of a future Ren'Py

#8 Post by gas »

xavimat wrote:
gas wrote:The #todo idea was more about a metadata field in the launcher. Select the project, and the "metadata" you set (stored in launcher or stripped out from a config. property) appear below. Sometime I found myself in need to know what exactly was this project about before launching.
Have you tried the current # TODO: feature of the Ren'Py launcher? I use it a lot. Every line in the rpy files with

Code: Select all

# TODO: whatever
is listed in the launcher (go to "Navigate script", and then "TODOs" category).
How embarassing!
I thought it extract the lines on external text file O_O! I never used it for that reason.
So I'm really sorry, Ren'py is already further than my dreams.
If you want to debate on a reply I gave to your posts, please QUOTE ME or i'll not be notified about. << now red so probably you'll see it.

10 ? "RENPY"
20 GOTO 10

RUN

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: Dreaming of a future Ren'Py

#9 Post by PyTom »

gas wrote: In the FileSave action, the name is the name (usually the index of the slot in the grid) + the page we are into. If the name is None, an almost random name is used. So I'm tied to the slot-page structure. I can't retrieve a file if I didn't a grid-page structure, as FileLoad work the same (need slot name and page). Those things are retrieved from the file name itself.
Now, renpy.load and renpy.save use a different name standard. They don't care of any "slot" or "page".
The names are all of the form <page>-<slot>, where page is a number, "quick", or "auto".
So, in the end, using those low level functions in the game create saves that I really don't know where they end in the grid structure.
One possible idea is to have a persistent list of saves, instead of using the save names directly. This can standardize the names.

renpy.save("tadah!",placement=first_free, kind="q")
You can also use renpy.run with FileSave, to get something like

Code: Select all

renpy.run(FileSave("4", page=2, confirm=False))
Practical uses: animations, sound effects, feedbacks, pauses that you need to happen when "you're looking at the main menu after pressing START". It's easier to find more example of this behavior than the speed of light instant begin.
You can make your own action that does this if you want to. It seems like this sort of thing would be too complicated to live in a callback, since you can't cause interactions in a callback.
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
gas
Miko-Class Veteran
Posts: 842
Joined: Mon Jan 26, 2009 7:21 pm
Contact:

Re: Dreaming of a future Ren'Py

#10 Post by gas »

PyTom wrote: uncanny display of patience
I'm really grateful you found the time to reply.
If you want to debate on a reply I gave to your posts, please QUOTE ME or i'll not be notified about. << now red so probably you'll see it.

10 ? "RENPY"
20 GOTO 10

RUN

MadEddy
Newbie
Posts: 4
Joined: Sat Jan 28, 2017 3:24 pm
Contact:

Re: Dreaming of a future Ren'Py

#11 Post by MadEddy »

7zip support would imho be useful. Publishing with significant traffic savings should for most devs a positive point. But, I am not sure if the licensing is compatible.

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: Dreaming of a future Ren'Py

#12 Post by PyTom »

The licensing is fine, but I don't know of a cross-platform 7zip library for python.
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

MadEddy
Newbie
Posts: 4
Joined: Sat Jan 28, 2017 3:24 pm
Contact:

Re: Dreaming of a future Ren'Py

#13 Post by MadEddy »

Nice thats basically possible. No libs? Uhm...? Surprising.

Looks like this stops at 2.7:
https://github.com/dsoprea/PyEasyArchive or https://pypi.python.org/pypi?%3Aaction= ... mit=search
or this:
https://pypi.python.org/pypi/pylzma or https://www.joachim-bauch.de/projects/pylzma/

I am no dev, so i don't know if this could work. Your area i would say. :wink:

Greets

Post Reply

Who is online

Users browsing this forum: No registered users