Version 0.14.0


Hey everyone, and welcome to another update. This time, we're focusing on parallel processes, with the goal of making them more convenient to use. Rather than having to define all features of your parallel process up front, you can now define them piecemeal, using map objects. I'll try to get a tutorial on this subject out in the future, but in the short term, you can look at the sample test rooms to see examples.

For the sake of posterity, these are the update's major features as are now specified on the front page changelog:

  • This update applies the model from 0.13.0 to all parallel processes, allowing individual map objects to define parallel process functionality. All parallel process test rooms have been updated to use the new model. The old 'parallel_process' map property has been defuncted, as it had been made entirely pointless due to the more broadly useful 'code_on_enter' property having been added.
  • Object properties 'start_x_coord', 'end_x_coord', 'start_y_coord', and 'end_y_coord' have been added. These properties are the first x coordinate intersected by the object, the last x coordinate intersected by the object, the first y coordinate intersected by the object and the last y coordinate intersected by the object. Among other things, these properties allows you to define areas for parallel processes using an object in Tiled. All test rooms that make use of areas now use such objects for clarity.
  • Parallel processes can now be paused during dynamic and continous events (static events will automatically pause all parallel processes). The function 'pause_parallel_process' will pause all parallel processes that you pass along. The function 'pause_all_parallel_processes' will pause all parallel processes. The 'unpause_parallel_process' and 'unpause_all_parallel_processes' can be used to unpause parallel processes again. Parallel processes are automatically unpaused at the end of an event. The new 'pink_otm_parallel_pause' ren'py variable (found in orthogonal_tiled_map.rpy) can be used to define a list of parallel processes that automatically pause during events.
  • Parallel processes automatically pause when screens defined in the 'pink_freeze_game_screens' variable are up (so timers don't continue running while you're in the menu)
  • Parallel processes areas, conditions and timers can now be created with an index, allowing those areas/conditions/timers to be easily removed. This also applies to the ConditionalCodeTriggers and ConditionalEventTriggers parallel processes from last update, which now use these indexes to remove triggers. As a result, it has become possible to have multiple events and conditions with the same trigger, and having dynamically defined conditions. 

In addition, I also fixed some test room bugs. 

  • Test room E05 now resets the moving iterations of the NPC in the same statement that the ren'py variable is updated. That means you won't have visual glitches when cycling more than a single day.
  • The reset of the sound level is now placed at the point where you enter a new map, rather than the point where you exit an old map. That means room B05 will no longer play a brief snippet of sound as you leave.

Finally, I've also added a ton of documentation to the orthogonal_tiled_map.rpy, to give a clearer explanation of what all the pink engine variables do. 

There are two known bugs in this version. 

  • The first of these is a memory leak that may occur when a VarTimes parallel process is running and the player hasn't started events for a while. It shouldn't be an issue unless a player decides to spend ten minutes standing still,, and even then it will only result in a lower FPS, but I'll still try to get a minor bugfix release out this weekend. 
  • The second bug was preexisting and discovered during release testing for this update. Occasionally, when making followers walk to the player at the end of an event, they end up attaching to the wrong coordinate, which can cause all sorts of glitches. The next major update will focus on event functionality. It may be a wise idea to use `pink.otm.teleport_followers_to_player()` at the end of your events, rather than having followers walk up to the player. 

And that's it for this update. As said, I'll try for a minor bugfix release this weekend, and then a new feature release focusing on events somewhere during the next month. 

Edit: Version 0.14.1

And the aforementioned minor update has indeed been released. Here's the changelog, for future reference:

  • The game no longer crashes when it encounters maps that make use of Tiled shapes. Note that the engine will not actually do anything with the shapes. 
  • Solved a memory leak related to the VarTimes parallel process. 
  • Solved an issue where VarTimes timers would jump about two seconds when a game was loaded during a non-static event.
  • Added tilesets with generic colors and icons, for the sake of creating more visually clear interaction layers.

That last one was done because I wasn't entirely happy with how readable my interaction layers turned out to be, with all these invisible objects being used. No colour or icon has a set functionality, just use them in a way that makes visual sense to you.

Files

pink_engine-0.14.0-pc.zip 103 MB
May 24, 2022
pink_engine-0.14.0-pc-empty.zip 223 kB
May 24, 2022

Get Pink Engine

Leave a comment

Log in with itch.io to leave a comment.