Ren'Py 5.6.0 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.
Message
Author
User avatar
PyTom
Ren'Py Creator
Posts: 16096
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 5.6.0 Released

#1 Post by PyTom »

I'm pleased to announce the release of Ren'Py 5.6.0 "Community Property". This release contains many new features requested by the community, as well as features that make programming Ren'Py easier and bug fixes. It also features new character art contributed by Piroshki.

For the immediate future, Ren'Py can be downloaded from:

http://www.bishoujo.us/renpy/

We are in the process of migrating the documentation for Ren'Py over to a new wiki. For documentation more recent then that included with this release, please go to:

http://www.bishoujo.us/wiki/Changes_in_5.6.0

To upgrade, copy over the game directory from your old version of Ren'Py, and set the library.script_version variable to (5, 6, 0). You then need to update your script as follows:
  • Replace styles beginning with selected_ with properties beginning with selected_. For example, style.selected_button.color should be replaced with style.button.selected_color. style.selected_button_text.hover_color becomes style.button_text.selected_hover_color.
  • Buttons on the game and main menus now use the styles menu_button and menu_button_text. It may be necessary to change these style to properly position menu buttons.
  • There is now an implicit "with None" statement after many built-in interactions. The new behavior should probably be suitable for most changes, but if necessary it can be disabled by setting config.implicit_with_none to False.
  • The default font has been changed to Deja Vu Sans. Vera.ttf no longer ships with renpy, please update your script to use DejaVuSans.ttf instead.
This release is the first in a new minor series, and hence may be less stable then most. Please test Ren'Py thoroughly before making a release with it, especially in the first few days after this version has come out.

A goal of the 5.6 series is to eliminate most extras. To this end, the two_window_say and side_image extras have been replaced with parameters to the Character object. The old extras still work, but the new syntaxes are preferred.

Perhaps the neatest feature of this series is shift+R reloading. When config.developer is True, hitting shift+R will save the game, reload the script, and then reload the game. With some caveats, this makes it easy to see changes to the script.

I'd like to thank everyone in the community who contributed feature ideas and bug reports to Ren'Py. Because of you, this is a much better release. I'd also specially like to thank Piroshki for the new character art.

And now, the changelog. Please read this, as this announcement barely scratches the surface of...

What's New in Ren'Py 5.6.0.

The demo features new character art, contributed by Piroshki.


The syntax of the show, scene, and hide statements has been expression. Along with image names, these statements also can take image names and expressions evaluating displayables. So one can write:

Code: Select all

show expression "foo.png"
to show foo.png, without having to declare an image. We have also introduced an as clause that lets one specify the tag of an image, and a zorder clause that lets you control the height of images inside a layer. One can write:

Code: Select all

show eileen happy zorder 2 show eileen vhappy as eileen2 zorder 1
This shows two eileen images, and it shows the second one below the first.

+++
As part of this, "as" and "zorder" are now Ren'Py keywords.


Ren'Py now includes a bilinear scaling feature. im.Scale, Zoom, and the new FactorZoom function now use bilinear scaling by default. FactorZoom and Zoom default to a very fast scaling method that only works on opaque images, but this can be disabled usin their opaque parameter.


A new documented minigame interface has been added to Ren'Py. This interface allows programmers to write 2D minigames. These mingames take advantage of Ren'Py's screen update management code.


Character now takes two new parameters, show_side_image and show_two_windows. These parameters take the place of the side_image and two_window_say extras, which have been removed.


The default font has been changed to Deja Vu Sans. While the glyphs shared with Vera Sans remain indentical, Deja Vu improves support for Eastern European languages.


The new MultiPersistent object allows the storage of inter-game persistent data.


The same inputs that hide transient windows can be used to show them again.


Move, Pan, Motion, Zoom, and FactorZoom all take a time_warp parameter, which allows a function to be provided that changes how time is processed in those functions. This makes adding acceleration and deceleration easy.


We now support layers that comprise a rectangle that is smaller then the entire screen, through the config.layer_clipping variable.


Now, setting _window_during_transitions to True causes the narration window to be displayed during transitions.


Now, colors can be written in html-like hexadecimal notation strings, as well as 4-tuples. When a displayable is needed, an image can be specified by giving its filename as a string, and a solid color can be specified by giving a color string beginning with '#'.


+++
When config.implicit_with_none is True (the new default), the equivalent of a "with None" statement is run after each line of dialogue, menu, renpy.input() and renpy.imagemap(). This allows for transitions to be written as a single with statement, rather than a "with None/with transition" pair.


+++
There are quite a few changes in styles. A big one is that we have replaced the "selected_" styles, and replaced them with properties beginning with "selected_". For example, instead of writing:

Code: Select all

$ style.selected_button_text.hover_color = (255, 255, 0, 255)
we now write:

Code: Select all

$ style.button_text.selected_hover_color = (255, 255, 0, 255)
Using the new hexidecimal string color notation, we could also write:

$ style.button_text.selected_hover_color = "#ffff00"

The old style names now are used in a compatibilty mode, but that mode does not work with style inheritance. (So one can set style.selected_button_text, but you can't inherit from the selected_button_text style)


+++
We no longer support the activate_ style prefix, as it never really worked. (We still support activate_sound, which did.)


All buttons used by the main and game menus inherit from menu_button and menu_button_text.


Now, style properties are checked to see if they are valid, and it is an error to set a nonexistent style property. The config.style_properties variable lets one define new style properties, should it prove necessary.


Ren'Py now tries to give an accurate line number for runtime errors in python blocks found inside .rpy files.


Frame now takes a tile= parameter. When True, it will tile images rather then scaling them.


There is now a im.Color image manipulator, which is similar to im.Recolor, but takes colors as strings or tuples rather then 4 parameters. The im.Scale image manipulator is now documented. [doc]


The renpy.context_nesting_level function returns the depth of the context we are in. The renpy.count_displayables_in_layer returns the number of displayables in a layer. The renpy.showing function can be used to determine if an image tag is currently being shown on a layer.


When changing the script, Ren'Py now tries fairly hard to assign statements the same internal name they had in the previous version of the script. This means that it's now usually possible to load in a changed script, and come back to roughly the spot where you left off. (Previously, the closest we would come is the prior label.) Of course, variables are given the values they when the game was saved.

This allows us to implement a new feature. Pressing shift+R when config.developer is set saves the game, reloads the script from disk, and then reloads the game. Doing this generally brings you to the last unchanged line seen before saving, making it easy to edit the script and then see your changes in action. Like many developer features, this may not work perfectly in all circumstances.


Returning to the main menu no longer causes init code to be re-run. This improves the speed of returning to the main menu, while bringing its semantics inline with loading a game.


Ren'Py now checks, when parsing a file, that image statements are contained within init blocks. It has long been an error to run an image statement outside of an init block, so this primarily checks for useless image statements.


Ren'Py is now more forgiving of whitespace on the last line of a file.


We now look for the presplash image in the "game" and "data" directories, as well as the directory derived from the script filename.


!!!
Fixed a bug that prevented pauses from terminating when they occured in interactions beginning with a transition, when no events occured during the interaction. A symptom of the bug was that if the user moved the mouse, the pause would immediately terminate and the game would advance.


!!!
A bug with MP3 playback on Windows has been resolved.
Last edited by PyTom on Mon Oct 02, 2006 3:44 pm, edited 1 time in total.
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

Alessio
Miko-Class Veteran
Posts: 576
Joined: Fri May 07, 2004 9:40 am
Completed: GO! Magical Boy (2006), Angelic Orbs (soundtrack)
Projects: Cyberlin (in progress)
Location: Finland
Contact:

#2 Post by Alessio »

Herewith I dedicate my 300th post to 5.6.0. Great job as usual, Tom - thanks for all the work you put in!

Watercolorheart
Eileen-Class Veteran
Posts: 1314
Joined: Mon Sep 19, 2005 2:15 am
Completed: Controlled Chaos / Sum of the Parts / "that" Midna game with ZONEsama
Projects: Sparse Series/Oddments Shop original cartoon in Pevrea; Cybernetic Duels (fighting game); Good Vibin'
Organization: Watercolorheart Studios
IRC Nick: BCS
Tumblr: adminwatercolor
Deviantart: itsmywatercolorheart
Github: Watercolordevdev
Skype: heartnotes
Soundcloud: Watercollider
itch: watercolorheart
Location: Florida
Contact:

#3 Post by Watercolorheart »

I read the whole thing, and I'm completely overwhelmed ;_; Should I just download it, and pray for the best?

I guess you made a liar out of me, I was supposed to finish Chapter 4 last night instead of ... well ... sleeping ...
I'm not even the same person anymore

User avatar
mikey
Lemma-Class Veteran
Posts: 3249
Joined: Sat Jan 10, 2004 6:03 am
itch: atpprojects
Contact:

#4 Post by mikey »

Congratulations from my side as well, the 6-series should really be a good one. I think it's the millions of little things and tweaks that are going to make the difference. Kind of like Total Commander, looks basically the same, but it's always improving and moving forward, being faster and fixing issues.

Good codename (release name), BTW.

Adorya
Miko-Class Veteran
Posts: 541
Joined: Fri Aug 18, 2006 4:51 pm
Contact:

#5 Post by Adorya »

*cough* I didn't have problem with mp3 with the previous version but now it seems there, reading a mp3 file cause some shrieking sound *cough*

Is the launcher part of the update? Because if it is, I will have to redraw the icon in the exe for my project =/

User avatar
PyTom
Ren'Py Creator
Posts: 16096
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:

#6 Post by PyTom »

Adorya wrote:*cough* I didn't have problem with mp3 with the previous version but now it seems there, reading a mp3 file cause some shrieking sound *cough*
Darn it. Um... I actually experienced this once, but it was specific to that one mp3 file. Can you send me the mp3 file you're having problems with, via email?

At least this seems to be a repeatable problem, so if you find files for which it doesn't happen, it will never happen. (As compared to the old mp3 problem.)
Is the launcher part of the update? Because if it is, I will have to redraw the icon in the exe for my project =/
Yes, you shouldn't mix launchers.
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

Adorya
Miko-Class Veteran
Posts: 541
Joined: Fri Aug 18, 2006 4:51 pm
Contact:

#7 Post by Adorya »

Well, the mp3 file is in the demo of my WIP thread in the project section, of course if you don't like rapidshare I will post it somewhere else.

Oh well, too bad for the exe, I guess I will only draw it when I will finish my VN, because there might be some news version up on the way ;)

And for just completeness sake, I switched the exe (old version in new renpy folder and new version in old folder), and the mp3 bug only occur in the new folder version :roll:

shaja
Regular
Posts: 73
Joined: Sun Oct 16, 2005 8:34 am
Contact:

#8 Post by shaja »

Adorya wrote:Oh well, too bad for the exe, I guess I will only draw it when I will finish my VN, because there might be some news version up on the way ;)
Extracting an icon resource from one exe and inserting it into another is pretty easy with Resource Hacker.

Your mp3 screeching is a symptom of the fact that not all mp3 encoders and decoders are 100% compatible. If I remember right, the former decoding component used by Ren'Py, SMPEG, was known for being more widely compatible, but much 'crashier' than the new component. If you can't reencode the mp3 with another encoder or different encoder settings, you might try ripping the id3 tags (if any) off it.

yuirei
Regular
Posts: 47
Joined: Fri Aug 04, 2006 10:00 am
Contact:

#9 Post by yuirei »

Nice work Py'Tom ^-^ I'll be testing the release in a while ^-^ Took note of the changes on the syntax ^^ I'm excited to see the new graphics :D

Adorya
Miko-Class Veteran
Posts: 541
Joined: Fri Aug 18, 2006 4:51 pm
Contact:

#10 Post by Adorya »

I am refering to the exe icon modification tutorial in the Ren'py website. Even if I have an image ready, after its insertion in the exe you still have some work to do (recoloring).

I removed the idtag and it work ok for the mp3 file (though I will keep the ogg reencoded one since it is smaller :)

User avatar
PyTom
Ren'Py Creator
Posts: 16096
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:

#11 Post by PyTom »

Adorya wrote:I removed the idtag and it work ok for the mp3 file (though I will keep the ogg reencoded one since it is smaller :)
Okay, that's interesting. Can you post how you removed the ID3 tags?

And yes, going with ogg is the right decision, as they are in general much better. (People may want to consider encoding ogg at 4.99 rather then 5, as there's a big jump in bitrate at 5 due to the way stereo is encoded. Or if your files aren't stereo in the first place, be sure that they're encoded in mono.)
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

Adorya
Miko-Class Veteran
Posts: 541
Joined: Fri Aug 18, 2006 4:51 pm
Contact:

#12 Post by Adorya »

I used winamp 5 to edit the tags and I unchecked the 2 options ID3v1 Tag and ID3v2 Tag before clicking on update file (basically I removed them all).
The tags were not in non english character set, but if you want I can quickly test if there was particularly one faulty tag.

Edit: ok the ID3v2 Tag was the culprit, with ID3V1 left it work, and with at least one option in ID3v2 Tag on it screeches happen.

Watercolorheart
Eileen-Class Veteran
Posts: 1314
Joined: Mon Sep 19, 2005 2:15 am
Completed: Controlled Chaos / Sum of the Parts / "that" Midna game with ZONEsama
Projects: Sparse Series/Oddments Shop original cartoon in Pevrea; Cybernetic Duels (fighting game); Good Vibin'
Organization: Watercolorheart Studios
IRC Nick: BCS
Tumblr: adminwatercolor
Deviantart: itsmywatercolorheart
Github: Watercolordevdev
Skype: heartnotes
Soundcloud: Watercollider
itch: watercolorheart
Location: Florida
Contact:

#13 Post by Watercolorheart »

I use PhotoImpact 10 to save my GIFs as ICO files, and import them into XN Resource editor. I have never had a problem updating to a new release.
I'm not even the same person anymore

User avatar
PyTom
Ren'Py Creator
Posts: 16096
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:

#14 Post by PyTom »

Okay, I'm now confident that the sound problem is being caused by the presence of id3v2 tags. I'll look into figuring out a way to strip id3v2 tags out of mp3 streams, but until then, I suggest simply not including id3v2 tags when encoding files.
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

monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

#15 Post by monele »

Ran through the Utsukushii Planet current demo and the only bug I encountered was....... *scratches that*... ok, 2 bugs found ^^;...

First one, it seems renpy.pause has somewhat changed (unless it's the way you deal with the framerate) because previously synced parts (sound+animation) are now out of sync (by about 0.1 or 0.2 seconds but that's enough to have some sounds be out of place). It even happened with very short scenes along the lines of :

Code: Select all

$ renpy.play("sound.wav")
$ renpy.pause(1.7)
show something
The show happened too late or too soon.


The other new bug :

Code: Select all

-- Full Traceback ------------------------------------------------------------

  File "D:\Jeux\renpy-5.6.0\renpy\bootstrap.py", line 124, in bootstrap
  File "D:\Jeux\renpy-5.6.0\renpy\main.py", line 266, in main
  File "D:\Jeux\renpy-5.6.0\renpy\main.py", line 94, in run
  File "D:\Jeux\renpy-5.6.0\renpy\execution.py", line 100, in run
  File "D:\Jeux\renpy-5.6.0\renpy\ast.py", line 247, in execute
  File "D:\Jeux\renpy-5.6.0\renpy\exports.py", line 474, in say
  File "D:\Jeux\renpy-5.6.0\renpy\character.py", line 424, in __call__
  File "game/script.rpy", line 403, in side_say
  File "D:\Jeux\renpy-5.6.0\renpy\character.py", line 217, in display_say
NameError: global name 'with' is not defined

While executing game script on line 107 of game/Intro.rpy.

Ren'Py Version: Ren'Py 5.6.0
That's when I use my shift+> shortcut that skips to the next choice. Seems there's a problem with the implicit "with None" *gut feeling*.

Surprisingly, my animations routines are intact XD... That's what I thought would break ^^;

I still have to try out all the new stuff (layers and shift+R). Already looks like a nice version though ^.^

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot]