For most users upgrading from 4.4.2 to 4.5 should be as easy as copying over the game directory. If you updated styles used in the game menu, however, you may need to change your script, as the names of some of those styles have changed. If you have problems figuring out the new names, just ask.
I'd appreciate people letting me know if they have any problems with the new rendering code.
A list of changes for version 4.5 follows:
New in 4.5
We now ship an extras directory, with interesting sample code. It includes:
- fullscreen.rpy, containing code to automatically switch the game into fullscreen on the first run, while preserving the user's preference on later runs.
- 640x480.rpy, which shows how to customize Ren'Py for a game that runs at 640x480.
- kanamode.rpy, contains the code to emulate the interface of the various Digital Object games, which display text one line at a time, but keep a page of text on the screen at once. (screenshot)
Added support for playing MPEG-1 movies. Rather than explain it all here, we'l just mention that you can read the new "Movies" subsection of the "Multimedia: Sound, Music, and Movies" section of the Ren'Py manual. We support both hardware-accelerated full-window movies and using a movie as a widget. This is also shown in the what's new section of Ren'Py.
Added ui.grid(). This is a widget that places its children in a grid. The children must have sizes that do not consider the amount of space available for the grid to work.
Added ui.pausebehavior(). This separates pausing from the saybehavior paving the way for uninterruptable pauses (a bad idea, IMO) and menus that dismiss themseleves after a certain amount of time.
A new function, renpy.exists(), can check to see if a given file can be found in the searchpath. This could be used, for example, to make a game that only tries to play music if an add-on music package is downloaded, and the files placed in the appropriate place.
Added the ability to bind mouse events to mouseup as well as mousedown, and changed some of the default bindings to be on mouseup rather than mousedown. If you make changes to config.keymaps, you'll need to change mouse_1 to mousedown_1, and so on for various other button numbers.
Moved the place we look for menu sounds from the style of the choices in the menu to the style of the menu itself, as that seems more rational. Also, gave menus their own style. (Can't believe I forgot that.)
Made a few changes to the library screens. First of all, we rationalized (to some extent, it's still pretty ugly) the names of the styles for library widgets. So some of that may have changed. We placed preferences and the yes/no dialogue inside windows, which can be styled by the user. We then routed all button and label creation through two functions, _button_factory and _label_factory. By overriding these functions, the user can (for example) replace the default textbuttons with imagebuttons.
Made 'f' toggle fullscreen at the main menu. This will help on virtual windows, where the mouse doesn't work right in fullscreen mode.
Improved rendering speed. Now, we aggressively cache things to minimize re-renders, and only draw to the screen the parts of the screen that have changed. In common cases, such as the case where only some text has changed, this can greately improve performance. In other cases (transitions), we have to redraw the entire screen anyway, so there's little improvement.
Fixed a bug in which hiding the UI was not working properly. (This broke the center mouse button behavior.)