Version 0.11.1


Only one week after the release hiatus ended, and we're already on a new version. Today, I'm bringing you version 0.11.1, providing a foursome of new features, as well as numerous bug fixes, including a big one. 

The big new feature is the ability to pass along arguments and keyword arguments to events called by the Pink Engine. For this, four new object attributes have been added: 'event_on_touch_args' and 'event_on_activate_args' allow you to pass along a list of arguments to touch and activate events respectively, whereas 'event_on_touch_kwargs' and 'event_on_activate_kwargs' allow you to pass along a dictionary of keyword arguments to the same. To demonstrate this functionality, all doors in test hallways A and B have been updated to make use of a single event. This event is called 'pink_otm_transition', and can be found in the new standard_events.rpy file. This file is also present in the empty version of the project, since it's such a universally applicable event. In addition to the currently utilized functionality, it also offers the option of playing a sound effect on transition. 

The other interesting new feature is a partial reversal of last patch's changes to auto-saving. During testing, it became apparent that auto-saving on every choice while a pink engine screen was open resulted in severe FPS spikes. For last release, I decided that it would be better to, by default, just turn off the auto-save functionality entirely to prevent that. I was not entirely satisfied with that though. What 0.11.1 does instead is offer a new configuration option, 'pink_otm_autosave_on_choice', which overrides the default 'config.autosave_on_choice' only when a pink engine screen is visible. Once you use 'pink.otm.leave_otm()' to return to a regular ren'py context, autosaving is restored to its default functionality.

The third new feature is comparatively more minor. It used to be that if you had dialogue open at the end of an event, and ended that event with a 'pink.otm.go_to_map' statement, it resulted in a smooth rather than an instant transition between maps. This was sometimes desirable, but just as often not. For that reason, I added a new function by the name of 'pink.otm.force_instant_transition_on_event_end()' (yes, it's a bit of a mouthful). If you run this function during an event, it will ensure that the event ends in an instant transition. The function is used in the updated script for the elevator (which now no longer hide the pink engine screen). 

The fourth feature is also relatively minor. Reference names now also work for non-sprite collections, allowing you to focus the camera on a regular object. 

Okay, on to bug fixes. There is one important bug fix that I made that pertains to the call stack. Because the pink engine made use of the renpy's call function rather than its jump function, it resulted in a slow growth of the call stack. This could have caused significant problems for very long games, resulting in slowdown and even crashes once you're dozens of hours into one. While the Pink Engine's use of the call function could not be cut, the engine now prevents junk data on the call stack by automatically popping any calls it makes. 

A list of more minor bug fixes:

  • Auto-centered sprite collections with a reference name but no set movement no longer lose their auto-centering if you leave and re-enter the map they are on. 
  • The game will no longer freeze if you change the player's sprite collection during a static event. 
  • Touch events no longer occasionally trigger twice. 
  • Image size on non-orthogonal maps is now correctly determined, so tiled map display viewports now have the correct limits. 
  • Holding the run key during the end of an event on a map where the player is not allowed to run no longer results in the player running. 

Aside from the new features and bug fixes, I also did some maintenance on the various test maps so that they're up to standards (and can thus be used as a template by new developers). All shadows make use of the scaling introduced in version 0.11.0, and no longer needed the 'occultates_as_y' attribute as a result. All doors now make use of the new 'pink_otm_transition' event, passing along different keywords.  Layer names have been updated to be more informative. 

Up next, I'll be working on updating the tutorials, and writing some new ones. For the next Pink Engine version, I'll be adding a long-anticipated feature: Followers. Yes, that means you can finally have characters following you around. I will also be looking into adding gamepad support to the engine. 

Get Pink Engine

Leave a comment

Log in with itch.io to leave a comment.