This wiki is very out of date, and only exists for historical reasons. For more modern information, see the new documentation and cookbook forum.


From Ren'Py Visual Novel Engine

Jump to: navigation, search

Please consider linking to the Download Ren'Py page, which will be updated when a new version of Ren'Py is released.

Ren'Py 6.9.0 "The Long and Winding Road"


Ren'Py 6.9.0 "The Long and Winding Road" was released on March 9, 2009. The main distributions are:

(The current release is internally known as 6.9.0h.)

For your convenience, we've posted the Release Announcement and Changelog.

You only need to download one of these three files. Each of these files contains the full Ren'Py software development kit, containing everything needed to develop Ren'Py games for Windows 2000 and up, Mac OS X 10.4 and up, and Linux x86. The development environment contains the files needed to produce games for all three platforms. Each file also includes the jEdit text editor, the Ren'Py demo, and "The Question", an example game.

Java Requirement. Java 1.5 or later is required to run the jEdit text editor. If it's not installed on your computer, you'll need to download it from java.com. Java is not required to run Ren'Py games, only to develop your own.

License. Ren'Py is licensed under a very liberal license, that allows for free commercial and non-commercial use. Read the full license for details, but a short summary is that you can distribute Ren'Py games however you want, as long as you include LICENSE.txt.

Release History and Updates

Ren'Py 6.9.0 has proven to be hopelessly flawed. Please release games with 6.8.1, or wait for 6.9.1 to come out.
Ren'Py 6.9.0h has been released. This fixes a bug that triggered on Linux when a displayable moved off screen, and a bug that triggered when a RotoZoom was larger than the screen. Since the first bug isn't apparent on other platforms, all users are encouraged to upgrade before release.
Ren'Py 6.9.0g has been released, fixing more issues with the new rendering code. This also includes the pefile.py update.
An update to renpy-6.9.0/launcher/pefile.py (from here) to fixes a "RESOURCE_BASE is no longer correct" exception when building distributions that include a windows icon. (This is the second update for this problem. The first one generated incorrect executables.)
Updated the released version to 6.9.0f to fix a bug in subpixel rendering. Games using subpixel rendering should upgrade.
Officially released final version (6.9.0e).

Release Announcement

Nearly three months in the making, Ren'Py 6.9.0 "The Long and Winding Road" has been released. This release contains complete rewrite of one of the most fundamental components of Ren'Py, the rendering system, to reduce complexity, improve portability, and increase speed and framerate stability. It also adds in subpixel rendering, which can improve the smoothness of slow moves. It also allows for a new Transform class that makes it possible to use Python to script rotation, zoom, movement, and alpha blending.

Along with these core improvements, this release includes a number of new features, including several that should begin to make Ren'Py programming easier, and the usual bug fixes.

Downloads of 6.9.0 and a full release announcement can be found at:


To migrate your game from Ren'Py 6.7.0 or later, copy the directory containing your game into the directory containing the new Ren'Py. Please see the 6.7.0 release notes for information about migrating from older releases.

Changelog for Ren'Py 6.9.0

This release features a rewritten rendering system. The rendering subsystem is what manages drawing to the screen. There have been several major improvements:

  • The render system has been simplified. Although still complex, it's now easier to understand than the old system, while also being naturally a bit faster.
  • That being said, the render system now focuses more on framerate consistency than raw speed.
  • The render system now supports subpixel drawing, drawing images at locations that are not integer pixel boundaries. This is enabled by setting the subpixel style property to True for a displayable. (It makes the most sense to do this for Move and Pan, and less sense to do this for non-moving displayables.)
  • The render system supports specifying subpixel placement of displayables. This is done using the new absolute type. (A floating-point position is still interpreted as a fraction of the area in which the displayable is placed.)
  • The render system supports a rotate-zoom-alpha mode, in which allows a displayable to be rotated, zoomed, and have its alpha changed. When this mode is used, the cost remains constant, even when multiple transformations are composed. Currently, this is only used by Transform and ui.transform.
  • The render system supports rotating and scaling focusable objects.

Improved the transform routine used by RotoZoom and Transform. It's now both more accurate and faster. On Intel computers, it is now accelerated using MMX instructions.

The image statement now implicitly places itself inside an init block if it's not inside an init block to begin with. The code:

image bg world = "world.jpg"

is now equivalent to:

init 990:
    image bg world = "world.jpg"

When compiling python blocks containing strings with a unicode character in them, Ren'Py will automatically prepend a u to any string that's missing it. This should make life easier for users of non-ASCII languages.

The new ui.autobar function makes it easy to make a bar that varies between two values over time.

The new renpy.Container class can be subclassed to create a user-defined displayable thatr contains other displayables, like Transforms.

The new im.FactorScale image manipulator allows images to be scaled by a specified factor at preload time. This is generally faster than doing the equivalent scaling at display time with FactorZoom.

The new renpy.sound.set_pan function allows sound and music to be smoothly panned over time.

The new config.label_callback variable allows a function to be called whenever control reaches a label. It can distinguish between jumps to that label and control falling through.

There have been a couple of places where properly documented functions have superseded semi-documented calls into the Ren'Py internals:

The renpy.game_menu and ui.gamemenus functions are now the preferred ways of getting access to the game menu.

The ui.jumps function now takes a transition argument, allowing it to subsume the undocumented _intra_jumps.

Ren'Py now looks for the file environment.txt in the directory containing Ren'Py itself. If it finds it, it loads the file as a python file, and uses it to set the default values of environment variables. This allows things like the editor or the scale factor to be set even on platforms that don't make it easy to change environment variables globally.

The reporting of parse errors involving missing quotes has been improved.

Changed the behavior of overlays during transitions. Now, both the old and new screens will use the new overlay. Previously, the overlay was cleared out during a transition, which didn't work well, as (for example) a dissolve would cause the overlay to blink out and then dissolve back in again.

MoveTransition and define.move_transitions have been changed to take a layers argument, giving the list of layers the transition applies to. By default, this is only the master layer, which is a change in their behavior.

Calling theme.roundrect() no longer implies layout.button_menu().

Ren'Py now autosaves when entering the quit prompt, and will not actually quit until this autosave is complete.

Fixed a divide by zero error that occured when Alpha was used for 0 seconds.

The default framerate (config.framerate) has been raised to 100 frames per second.

Added renpy.partial as a version of renpy.curry that requires two function calls, rather than three.

Libvorbis has been upgraded to version 1.2.0.

To reduce distribution size, OGG Speex support was dropped.

Other Downloads

The following downloads may be useful if you want to run a windows-only Ren'Py program on other platforms, if you plan to port Ren'Py to a new platform, or if you want to build a distribution of Ren'Py. Recent versions of Ren'Py default to producing distributions for all three supported platforms, making these programs rarely necessary.

Personal tools