Ren'Py 6.18 Pre-Released

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Post Reply
Message
Author
User avatar
PyTom
Ren'Py Creator
Posts: 16093
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:

Ren'Py 6.18 Pre-Released

#1 Post by PyTom »

Ren'Py 6.18 is currently in private pre-release, to let people help test it. Please do not share these links widely. Please do not release games using Ren'Py 6.18 until it's officially released.

Announcement
I'm pleased to announce Ren'Py 6.18 "... Through Shared Popular Culture". Major improvements in this release include:
  • A full rewrite of screen language that has the potential for significantly improved performance.
  • Self-voicing support that provides a level of accessibility to blind users.
  • A high-level Android in-app purchasing framework.
  • New Italian, Portuguese, and Simplified Chinese translations.
This release also includes many other features and improvements.

This release has been brought to you by:
  • Koichi Akabe
  • Duanemoody
  • Emmannuel Marty
  • Helloise
  • Huanxuantian
  • Daniel Luque
  • Javimat
  • Kyouryuukunn
  • Mrstalker
  • Oshi-Shinobu
  • Renoa
  • Shiz
  • Tom "PyTom" Rothamel
  • Winter Wolves
Downloads of 6.18 can be found at:

http://www.renpy.org/release/6.18

A full list of changes to Ren'Py can be found at:

http://www.renpy.org/dev-doc/html/changelog.html

A list of changes that may require you to update your game can be found at:

http://www.renpy.org/dev-doc/html/incompatible.html
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
PyTom
Ren'Py Creator
Posts: 16093
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 6.18 Pre-Released

#2 Post by PyTom »

6.18.0.536)

First off, there are a number of things I have left to do before I can call Ren'Py 6.18 complete. A big thing is that I haven't written the documentation for the new features yet.

I'm pre-releasing now because the new screen language implementation could use more testing. I've done what I can to test sl2 - it works to the point where it can run my code, and play through a large chunk of Sunrider, as well as a half-dozen simpler games its worked with. But now I need people to try it on a wide variety of project, and to use the eyes of a creator to tell if sl2 has caused changes to your code.

To test sl2 on a project:

* Make a backup copy of the project. This is important because the addition of sl2 to .rpyc files will make those files un-loadable by Ren'Py 6.17, and you'll certainly want to preserve the ability to go back to a stable version.
* Select the project in the launcher.
* Choose the new "Force Recompile" option. This will recompile all of the screens, upgrading them to use sl2.
* Run the game.

When you do this, let me know if you see any changes in screen behavior, and also a general perception of performance issues. While I think SL2 should be significantly faster in many cases, it's possible it could slow some games (RPGs) down, at least until I write the documentation that explains how to annotate actions and variables so SL2 can optimize them.

The new self-voicing mode is activated by pressing 'v', and then using up/down and enter to navigate through your game. I'll write better documentation over the next week or so, about the new alt style property that can be used to add voicing to hotspots and displayables that do not have text.

Let me thank, in advance, people who chose to download and test this pre-release. The screen language rewrite is one of the most interesting and difficult changes to Ren'Py I've implemented. I've done all the testing I can, and now I need others to try it with their games, so we can gain confidence, and eventually get the final release out there.

Oh, and a note on the name:
It's part of "World Peace Through Shared Popular Culture", the motto of Central Park Media, a now-defunct anime licensing company. It's my hope that people throughout the world work together to provide the latter, we'll eventually get the former.
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
jack_norton
Lemma-Class Veteran
Posts: 4084
Joined: Mon Jul 21, 2008 5:41 pm
Completed: Too many! See my homepage
Projects: A lot! See www.winterwolves.com
Tumblr: winterwolvesgames
Contact:

Re: Ren'Py 6.18 Pre-Released

#3 Post by jack_norton »

The speed improvement should also be visible on Android right? It seems faster indeed :)
On desktop now with the bugfix I made on my own code I can't really notice any slowness :mrgreen: need to get some older computers to test it, or Android.

Anyway got several problems when I tried:

Code: Select all

        $lastsave=renpy.newest_slot(r"\d+")
        if lastsave!=None:
            textbutton _("Continue") action Jump("loadlastsave") style "default" xcenter .5 text_size 25 at tfadein(.1)
gave me "nameerror: last save not defined". Also:

Code: Select all

screen OnScreen_Menu:
    if not False:
        imagebutton idle "gfx/gui/charmenu_open.png" hover "gfx/gui/charmenu_open_select.png" xalign 1.0 ypos 0.0 action Show("Char_Screen_Main")
'str' object can't be called or something (forgot to write down while testing on android!)
Another bug, though no crash:

Code: Select all

screen skillschoice:
    zorder 1
    add "main/mainbase.jpg"
    use FrozenMagic(txt="CHOOSE %s SKILLS" % PC.name.upper() ,x=.5,y=.05)
    frame at tfadein(.5):
        xcenter .62 ypos .275 xmaximum 768 xfill True
        background None
        use guiSkillTree(NoTraits=True)
the screen guiSkillTree doesn't show at all :shock: (before worked fine of course). Might just be a position problem though, like is displayed offscreen now?

Will do more testing as I have time, since I think my game is probably the one that uses all the most impossible cases of screen language :lol: thanks
follow me on Image Image Image
computer games

User avatar
Tayruu
Regular
Posts: 141
Joined: Sat Jul 05, 2014 7:57 pm

Re: Ren'Py 6.18 Pre-Released

#4 Post by Tayruu »

Oh wow, good. It seems that the character art weirdness I posted about is fixed with this? I recompiled my test demo and it functioned nicely.

Meanwhile in my main project...

There were minor instances where I had to turn "else" into "else:". I dunno how these worked in the first place. I also got errors in my keymap changes because I didn't have the new keybindings, that was easy enough to add them in too.

There was something interesting about extend. To create an effect like menus are displayed at the end of a message, I do this:

Code: Select all

    tay "What do you want to do...?"
    menu:
        extend ""
    # followed by normal menu things
Before, all this would do would create a minor flicker at the end of a message. Now, the extend has the whole message re-type, along with ignore its callback.

ToggleSingleTrack() seems to have been deprecated (returns not defined), and my work-around is non-functional. However the music screen may be generally broken, as once music starts playing, all hover styles fail to work until click, which may be a sign of other issues. Removing on "replace"/on "replaced" that change the music entering/leaving the screen didn't change anything once music was played manually.

Two screens with scrolling viewports appear to run into this error when trying to close them. Removing the vbar value YScrollValue stops the error.

Code: Select all

While running game code:
  File "renpy/common/00barvalues.rpy", line 383, in get_adjustment
    raise Exception("The displayable with id %r is not declared, or not a viewport." % self.viewport)
Exception: The displayable with id 'track_list' is not declared, or not a viewport.
Both them look pretty much the same.

Code: Select all

            viewport id "track_list":
                draggable True mousewheel True
                vbox:  
                    for tr in sound_list:
                        if music_test.is_unlocked(tr.track):
                            button:
                                style_group "track"
                                action music_test.Play(tr.track)
                                has hbox
                                frame:
                                    text tr.title
                                frame:
                                    text tr.artist
                        else:
                            textbutton ("{=tgr}? ? ? ?{/=tgr}")
            vbar value YScrollValue("track_list")
Readback is non-functional at moment of scrolling up. I don't see any reference to the scene, so I'm not sure what's doing it. (The two references to ui.close don't seem to be the issue.)

Code: Select all

Exception: Spurious ui.close().

Full traceback:
  File "renpy/common/00gamemenu.rpy", line 163, in script
    $ ui.interact()
  File "C:\renpy\renpy\ast.py", line 770, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "C:\renpy\renpy\python.py", line 1382, in py_exec_bytecode
    exec bytecode in globals, locals
  File "renpy/common/00gamemenu.rpy", line 163, in <module>
    $ ui.interact()
  File "C:\renpy\renpy\ui.py", line 247, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "C:\renpy\renpy\display\core.py", line 2145, in interact
    repeat, rv = self.interact_core(preloads=preloads, **kwargs)
  File "C:\renpy\renpy\display\core.py", line 2393, in interact_core
    root_widget.visit_all(lambda i : i.per_interact())
  File "C:\renpy\renpy\display\core.py", line 335, in visit_all
    d.visit_all(callback)
  File "C:\renpy\renpy\display\core.py", line 335, in visit_all
    d.visit_all(callback)
  File "C:\renpy\renpy\display\core.py", line 335, in visit_all
    d.visit_all(callback)
  File "C:\renpy\renpy\display\core.py", line 337, in visit_all
    callback(self)
  File "C:\renpy\renpy\display\core.py", line 2393, in <lambda>
    root_widget.visit_all(lambda i : i.per_interact())
  File "C:\renpy\renpy\display\screen.py", line 365, in per_interact
    self.update()
  File "C:\renpy\renpy\display\screen.py", line 511, in update
    renpy.ui.close()
  File "C:\renpy\renpy\ui.py", line 325, in close
    stack[-1].close(d)
  File "C:\renpy\renpy\sl2\slast.py", line 129, in close
    raise Exception("Spurious ui.close().")
Exception: Spurious ui.close().
I'm not sure, but there could also be a performance fix with quitting to the title, of which I've noticed before. There's an obvious pause, but the transition no longer trips up.

... er, these are useful reports, right? :D;;

User avatar
xela
Lemma-Class Veteran
Posts: 2481
Joined: Sun Sep 18, 2011 10:13 am
Contact:

Re: Ren'Py 6.18 Pre-Released

#5 Post by xela »

jack_norton wrote:Will do more testing as I have time, since I think my game is probably the one that uses all the most impossible cases of screen language :lol: thanks
I'd take that wager :D
Tayruu wrote:... er, these are useful reports, right? :D;;
Prolly more useful than mine :roll:

But in all seriousness... atm this is buggy as hell :twisted:
Ren'Py 6.18 wrote:Please see the new Screen Language Optimization documentation for information on how to maximize screen language performance.
Where can I find it or is this what hasn't been written yet? (google search of the documentation came up empty)

So far:

Edit: Updated after a bit more testing. Instead of using "recompile", I've just deleted all bytecode files and started the games in 6.18.

- All of the projects I managed to recompile worked at the very least as well as they did before!
==============================================================================================

- One of the projects sent Ren'Py launcher into recursive loop when trying to recompile (some rpg concept I downloaded off lemma Q&A long time ago).
Update: This project compiled and ran without any issues at all after simply deleting all bytecode files and launching the game in 6.18!
==============================================================================================

- One of the projects failed to recompile asking me to ensure that the project is launching normally before doing so. Well... it does launch normally. In fact it not only launches normally, game is playable (up to the point where new Ren'Py cannot find a Style object inside of the path to file... during a battle)

Update (after deleting bytecode files):

Code: Select all

I'm sorry, but errors were detected in your script. Please correct the
errors listed below, and try again.

File "game/library/room management.rpy", line 236: end of line expected.
    use r_TextButton(txt=u"{color=#191}%s"%(workname),return_value=["work",entry["name"]], x=300,y=40, img="gfx/interface/buttons/0321_cg00154.QNT.png"))
                                                                                                                                                        ^

File "game/library/room management.rpy", line 228: 'continue' not properly in loop

File "game/library/room management.rpy", line 232: 'continue' not properly in loop

File "game/library/town - full.rpy", line 8: 'continue' not properly in loop

File "game/library/week report.rpy", line 59: expected ':' not found.
    else weekReportPage == 'info':
         ^

Ren'Py Version: Ren'Py 6.18.0.536
==============================================================================================

- In my main project, screens seem to be failing to pass recompilation process on a simple for loop with a continue clause done inside of the screen.

Update (after deleting bytecode files):

Code: Select all

I'm sorry, but errors were detected in your script. Please correct the
errors listed below, and try again.


File "game/library/screens/locations/pyt - screens - forest entrance.rpy", line 89: 'continue' not properly in loop

File "game/library/screens/pyt - screens - mc-setup.rpy", line 297: end of line expected.
    else::
         ^
File "game/library/screens/standalongs/pyt - screens - item transfer.rpy", line 224: end of line expected.
    use it_paging(root='left_inv', ref=pytfall.it.left_chr.inventory) align (0.5, 0.5)
                                                                      ^

Ren'Py Version: Ren'Py 6.18.0.536
==============================================================================================

There are two projects that send Ren'Py into recursive loop when shutting them down.**Same thing under 6.17 so not applicable to this thread.
==============================================================================================

Update: **All of these projects obviously work under the 16.7.xxx.

There likely is a bunch of code required to be rewritten to run the game in 16.8 that was working in 16.7, I would like to know what those cases are. Then I'll try to optimize things as well. There are a couple of interesting cases with paging that I couldn't properly predict before, it'd be an interesting task trying to do so with all the new possibilities. (As usual I am quite thick on the uptake after just reading about it but it'll get better once I've tried stuff out in a game)

Anyway, I'll revert back to 6.17 and copy all the projects into a new dir so I can test 6.18 without hindering development...
Last edited by xela on Wed Aug 13, 2014 11:42 pm, edited 1 time in total.
Like what we're doing? Support us at:
Image

User avatar
xela
Lemma-Class Veteran
Posts: 2481
Joined: Sun Sep 18, 2011 10:13 am
Contact:

Re: Ren'Py 6.18 Pre-Released

#6 Post by xela »

Oh man... I'll make this a new post :D

Ok, so:
- I've restructured data in order to remove all the continue in the for loops.
- Removed useless alignments after calling use screen(*args, *kwargs)
- Removed the second : after else *It should be noted that it does work under 6.17.xxx and parser doesn't catch the syntax error.

but... my game became completely unplayable, I cannot enter most of the screens and I am getting the weirdest errors that I've never seen before. the most common one right now is this:
Last edited by xela on Wed Aug 13, 2014 11:43 pm, edited 1 time in total.
Like what we're doing? Support us at:
Image

User avatar
xela
Lemma-Class Veteran
Posts: 2481
Joined: Sun Sep 18, 2011 10:13 am
Contact:

Re: Ren'Py 6.18 Pre-Released

#7 Post by xela »

Sorry for the third post in a row, I don't want to create a mess in the other posts:

This one doesn't throw an error but there is a difference in behavior as compared to 6.17.xxx

Basically I have a screen, code would be too confusing and too long to post as it is poorly written but the problem is this:


This is sort of a minigame where a picture is constructed out of frames, length of which is determined by a whole bunch of conditions, in the end it looks like this:

Image

Value is adjusted by timers and the arrow is flying left/right really fast. The idea is to click stop when arrow is pointing at one of the areas in the middle. It is working just fine BUT while the minigame is active, other buttons on the screen cannot gain focus. They can still be clicked but their hover options are non responsive. This is working perfectly well in the 6.17.xxx

I'll post more if I find more bugs BUT the trouble is that I cannot access most of my game in 16.8 due to the bugs from the previous post :(


Update:

Drag&Drop issues reported by me in this and a couple of other posts persist in 16.8.

Update 2:

Positions of drags no longer updated into draggroup correctly if one is removed, this was not the case with 6.17.xxx with the Drag&Drop fix applied from Git repo!

Update 3:

I found one screen where the positioning is utterly messed up under the exact same code (6.17 vs 6.18). There may be something wrong with viewports...

I think this is it (for now at least).
Last edited by xela on Wed Aug 13, 2014 11:44 pm, edited 4 times in total.
Like what we're doing? Support us at:
Image

User avatar
nyaatrap
Crawling Chaos
Posts: 1824
Joined: Mon Feb 13, 2012 5:37 am
Location: Kimashi Tower, Japan
Contact:

Re: Ren'Py 6.18 Pre-Released

#8 Post by nyaatrap »

Thanks for update.
Screen performance improved significantly in different level. Though I couldn't run my games with the following error:

Code: Select all

While running game code:
  File "game/script.rpy", line 123, in script
    call screen party_screen
  File "renpy/common/000statements.rpy", line 457, in execute_call_screen
    store._return = renpy.call_screen(name, *args, **kwargs)
AttributeError: 'NoneType' object has no attribute 'style'
It might be a same error xela got. It occurred when hovering a button which has a hover function: 'ShowTransient("status",who=who)'

User avatar
xela
Lemma-Class Veteran
Posts: 2481
Joined: Sun Sep 18, 2011 10:13 am
Contact:

Re: Ren'Py 6.18 Pre-Released

#9 Post by xela »

nyaatrap wrote:Thanks for update.
Now I feel bad after all that b!tching :)

Thanks for the update!
nyaatrap wrote: While running game code:
File "game/script.rpy", line 123, in script
It might be a same error xela got. It occurred when hovering a button which has a hover function: 'ShowTransient("status",who=who)'
It looks the same, but I got it when jumping to a complex label/screen, not when hovering over a button.
Like what we're doing? Support us at:
Image

User avatar
xela
Lemma-Class Veteran
Posts: 2481
Joined: Sun Sep 18, 2011 10:13 am
Contact:

Re: Ren'Py 6.18 Pre-Released

#10 Post by xela »

LoL

My game crashed but voicing continued and went over the whole error report talking for like 5 minutes.

Voicing is excellent by the way, I cannot properly implement it as it keeps jumping to screens/Text transforms and there is no documentation on how to prevent that but it's working really well otherwise.
Like what we're doing? Support us at:
Image

User avatar
xela
Lemma-Class Veteran
Posts: 2481
Joined: Sun Sep 18, 2011 10:13 am
Contact:

Re: Ren'Py 6.18 Pre-Released

#11 Post by xela »

PyTom wrote:When you do this, let me know if you see any changes in screen behavior, and also a general perception of performance issues.
General performance is definitely better all over the place but in some screens difference in behavior is absolutely amazing. Under the exact same code, under 6.17 screens are jerky and updates/reloading to/of them is very rough. Under 6.18 updating/reloading screens isn't even in the same league, it's fluent, all transitions are working properly and amount of logic/sorting done inside of the screen doesn't seem to effect screen's performance (in 6.17.xxx and below this definitely wasn't the case). Overall, SL2 is doing it's job marvelously, well done! At places the difference in quality is mindblowing. (I am running the same game under 6.17 and 6.18 simultaneously)
Like what we're doing? Support us at:
Image

User avatar
xela
Lemma-Class Veteran
Posts: 2481
Joined: Sun Sep 18, 2011 10:13 am
Contact:

Re: Ren'Py 6.18 Pre-Released

#12 Post by xela »

Another bug:

Code: Select all

label start:
    "This is a reasonably long line that will be {b}repeated{/b} with the following extend {i}unless text speed is at it's maximum{/i}..."
    extend " see what I mean?"
I'll add that I am finding ways to mitigate some of the errors and getting access to more and more screens. I've found yet another screen with a viewport contents of which utterly and completely messed up by 6.18.[/s]
Last edited by xela on Wed Aug 13, 2014 11:45 pm, edited 1 time in total.
Like what we're doing? Support us at:
Image

User avatar
PyTom
Ren'Py Creator
Posts: 16093
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 6.18 Pre-Released

#13 Post by PyTom »

I really don't want you solving these problems yourself. 6.18 should have the same visible behavior as 6.17, so anything you have to fix is probably a bug.

There are a few things that were never supported, like:

Code: Select all

python:
    continue
But outside of those, I need to fix the problems.
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
xela
Lemma-Class Veteran
Posts: 2481
Joined: Sun Sep 18, 2011 10:13 am
Contact:

Re: Ren'Py 6.18 Pre-Released

#14 Post by xela »

I've narrowed all of the errors down to the isolated code now (will post all of it soon). I am not trying to fix them myself by rewriting Ren'Py, I am trying to narrow down exactly which lines of code are responsible for throwing these errors so you have better idea of what needs to be fixed :)
Like what we're doing? Support us at:
Image

User avatar
xela
Lemma-Class Veteran
Posts: 2481
Joined: Sun Sep 18, 2011 10:13 am
Contact:

Re: Ren'Py 6.18 Pre-Released

#15 Post by xela »

Code: Select all

side "c r":
                viewport id "heroprofile_attack_vp":
                    ...
                vbar value YScrollValue("heroprofile_attack_vp")
Viewports declared in this way will throw the viewport error unless vbar is deleted (replaced by null) when leaving the screen and going to a screen that has a transition. Not sure what conditions are required exactly. This will work in 6.17 without fail.[/s]
============================================================
This may not be useful :(

Code: Select all

    if hasattr(pytfall, "it") and pytfall.it.populate_character_viewports()[0]:
        if pytfall.it.left_chr and isinstance(pytfall.it.left_chr, Girl):
            frame:
                xpos 0
                ypos 5
                xysize(320, 35)
                xfill True
                yfill True
                background Solid((0,0,0,100))
                text ("{size=-7}%s | %s"%(pytfall.it.left_chr.occupation, pytfall.it.left_chr.action)) xalign 0.5
Code will work under 6.17 and 6.18.

Code: Select all

        frame:
            xpos 0
            ypos 5
            xysize(320, 35)
            xfill True
            yfill True
            background Solid((0,0,0,100))
            if hasattr(pytfall, "it") and pytfall.it.populate_character_viewports()[0]:
                if pytfall.it.left_chr and isinstance(pytfall.it.left_chr, Girl):
                    text ("{size=-7}%s | %s"%(pytfall.it.left_chr.occupation, pytfall.it.left_chr.action)) xalign 0.5
The exact same thing but with conditioning inside of a container will cause None has no style error in 6.18. It will work perfectly well in 6.17!
============================================================

Code: Select all

        for key in pytfall.maps['MainStreet']:
            python:
                if key == 'attr': continue
                map_point = pytfall.maps['MainStreet'][key]['attr']
                x = map_point['x'] / float(config.screen_width)
                y = map_point['y'] / float(config.screen_height)
                if "rx" in map_point:
                    rx = map_point["rx"]
                    ry = map_point["rx"]
                else:
                    rx = 25
                    ry = 25
This loop will work just fine in 6.17 but will throw a continue outside of a loop error in 6.18.[/s]
============================================================

Code: Select all

else::
    # code
Will work in 6.17 but will not get past (smarter) parser in 6.18.[/s]
Not fixed but in this case it's a good thing!
============================================================

Code: Select all

use screen_name(*args, **kwargs) xalign 0.5
would be a valid (perhaps not very useful syntax for 6.17). This will not get past parser in 6.18 unless xalign is removed.[/s]
Same as above.


I think this along with other bugs reported in will more more than enough for some time :twisted:
Last edited by xela on Wed Aug 13, 2014 11:48 pm, edited 1 time in total.
Like what we're doing? Support us at:
Image

Post Reply

Who is online

Users browsing this forum: Alex