Ren'Py 4.4 "Christmas Bonus" 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: 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 4.4 "Christmas Bonus" Released

#1 Post by PyTom »

Well, NORAD has locked its interceptors onto Santa, so I guess that means it's Christmas. And what a better way to celebrate than a new release of Ren'Py. (Well, how about with your families or something like that?)

Ren'Py 4.4 "Christmas Bonus" contains a number of feature enhancements, speed improvements, and bug fixes. Along with improved support for visual novels, this release lays the foundations for Stats-Based Dating Simulations. And it's my gift to you, downloadable from the Ren'Py website,

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

Upgrading a script from recent (4.2 or better) versions of Ren'Py should be as simple as copying over your old game directory, and perhaps deleting a line setting library.file_page_length.

This is a fairly major release, containing a bunch of new features and bug fixes. This is what you should be using if you want to make a Ren'Py game, at least until a new version comes out.

I'd like to thank Mikey for testing a pre-release of this to ensure that all the bugs with UTF-8 were well and truly squashed. Now I know what a LOWERCASE L WITH CARON is.

Anyway, as usual, feel free to post, email, or IM me if you have any questions, problems, comments, or suggestions. And have a great holiday season, everyone.

New in 4.4

Added a number of features to allow Ren'Py to support statistics-based dating simulations. The first is a new ui.bar() widget, which allows the display of a bar graph. The demo has been enhanced to include a stats and schedule screen, to show how this could be used. You can get to it by asking how to write your own games in the demo, or you can follow the below link to get a screenshot.

http://www.bishoujo.us/hosted/screenshot.jpg

Another feature that has been added were 'jump expression' and 'call expression' statements, allowing computed jumps and calls. Together with an imporoved scheduler and yet-to-be written event dispatcher, this provides the foundation for SBDSes.

Now, setting a property on a style also sets the hover_ and idle_ variants of that property. This makes changing a property of an inherited style a bit saner. In addition, hover now propagates to all children of a button. This means that hover will now work with the styles in the file chooser.

Added support for layering images. This support (invoked by passing a tuple as an image filename) allows a single image to be constructed from multiple image files, saving disk space while still keeping performance.

Improved skipping. Now, along with control causing skipping of seen dialogue, TAB toggles skip mode. An indicator displays to let you know that skip mode is enabled. Finally, if a game author wants to disable skipping, he can set config.allow_skipping to false.

(The following were also in 4.3.2, which was a private release to test the fixes for UTF-8 support.)

There were two bugs with UTF-8 support. The first was that we didn't understand the byte-order mark, and choked on the syntax error. The second was that the error-reporting code wasn't passing unicode errors through properly, so one couldn't even see the real error. Both are now fixed.

Improved the reporting of errors that occur during script loading and interpreter initialization by no longer giving a line number when none is appropriate.

Ren'Py now uses the name of the executable to choose the directory to read the script from. It does this by looking at the name of the executable that was used to run Ren'Py. It strips off the extension, and anything preceding the first underscore in the name, if such a thing exists. It then looks to see if that directory exists, and if it does, uses it. For example, if the program is named "run_en.exe", the "en" directory is used, while if the program is named "homestay.exe", the directory "homestay" is used.

The config variable config.searchpath is a list of directory that are searched for image files and other media (but not scripts, since all scripts are loaded before the variable can be set). This allows multiple game directories to share images, music, and other data files.

Once again, I redid the file chooser and default styles. The new file chooser displays 10 entries in two columns, with each entry being shown with an image. The files are now orginized into numbered slots, and it's possible to save in a slot without saving in all previous slots. There were also some changes to the non-user-visible parts of loading and saving.

Speed Enhancements:

We now precompile python blocks in Ren'Py scripts, and store the compiled code in the .rpyc files. This makes loading an unmodified script significantly faster. On my system, this more than halved the time it took for the demo script to load. On the dowside, when a script is changed, it now can take somewhat longer for it to begin running, as all the changed code needs to be recompiled. Overall, it's a win, provided you ship the .rpyc files to your users.

Did another round of profiling, and found that styles were significanly slowing the system down. So I rewrote them to be much faster. This change shouldn't be user-visible, except that your game will feel a bit peppier.

Added a 1-entry cache for solid fill surfaces. If your game uses them, this might make it go faster.
Last edited by PyTom on Sun Jan 16, 2005 3:39 pm, edited 1 time in total.

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

#2 Post by mikey »

I've added Ren'Py 4.4 to manga.sk news, you can check it out at http://www.manga.sk Hope this brings some more people :P

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:

#3 Post by Alessio »

Thanks for all your efforts, Tom! I'm dead curious to see how creative people will get using it. In the meantime, cheers and a happy new year!

User avatar
rioka
Royal Manga Tutor
Posts: 1255
Joined: Fri Jul 16, 2004 12:21 pm
Completed: Amgine Park, Garden Society: Kykuit, Metropolitan Blues (art)
Location: somewhere in NY
Contact:

#4 Post by rioka »

You know, it's very nice that you're adding all these new features PyTom but I made my game to fit one of the earlier releases and now there's all this new extra stuff I can do... Gah! Must resist adding new features to game... must keep simple... must...keep... simple...! X_X

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:

#5 Post by PyTom »

I do reccomend using a recent release, even if your game was written to an older one. The script language should be the same, but new releases include important bug fixes and speed improvements, as well as feature enhancements.

Some of the bug fixes are actually subtle ones involving saving and loading, so even if you don't encounter them, your users might. (In rare cases, but still.) There's also improved error handling in 4.4. For example, a failure to save a game now no longer dumps you out of Ren'Py entirely.

Upgrading is easy, just copy the script over and remove the line I mentioned.

Even though everything should be compatible, you should still be sure to check that everything works. :-)

Tage
Regular
Posts: 194
Joined: Mon Nov 01, 2004 2:18 am
Location: Memphis, TN
Contact:

#6 Post by Tage »

The main difference I've noticed, is just that styling menus changed. So, you'll have to restyle all the menus that throw you errors when trying to run. That is, if you did style menus. n.n

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

#7 Post by mikey »

Phew, luckily my project is very very simple.
*resists temptation of new features*
I really like the "upgrading", just copy the files, works perfectly.

metalica
Newbie
Posts: 21
Joined: Wed Jan 05, 2005 1:29 pm
Contact:

#8 Post by metalica »

wow, what a great program!! thanks a lot for it :D , you can't imagine how much time I've spent looking for a good visual novel engine that is simple to use... finally!!!! I'm only messing with it since yesterday and it seems pretty easy to use, though I'm sure I'll have lots of questions. Anyway thanks a lot for your effort, I'm really hoping to make some nice games with it :) (though till now I'm only writing the script for my first game :P, till now 32 scenes that make(50 word pages worth of script and I haven't finished day 2 yet,hehe :) )

Post Reply

Who is online

Users browsing this forum: Majestic-12 [Bot]