Beta versions are not as thoroughly tested as stable

Beta versions are not as thoroughly tested as stable

Beta branch

Construct 3 r381

More Tween triggers; Animations Editor settings; framerate mode control & more

27 February, 2024 ()

Email Me New Releases

Don't miss out on the latest and greatest new features in Construct 3

Create an Account

Notes

In this week's release we've updated how settings work for the Animations Editor. You can now click the three-dot icon in the caption of the Animations Editor - next to the close button - to open settings specific to the Animations Editor. This includes the 'guess collision polygon' setting that was previously in the main Settings dialog, and also a new setting to use file names to determine animation names, and possibly other settings in future. In other animation-related features, the Tween behavior now has triggers for when a tween loops or ping-pongs, so you can have event sheet logic that reacts to this happening.

Another update is now you can change the framerate mode at runtime, and also set not just a minimum framerate but a maximum framerate too. If a maximum framerate is specified, then if the project runs at a higher framerate, it starts to go in to fast-forward (imposing a minimum delta-time, whereas the minimum framerate imposes the maximum delta-time). One use for this is for another technique to simulate the project running in the background. Browsers or operating systems usually force the project to suspend when it's in the background, so it does not keep running (and doing so wastes battery anyway). With these new features you can force the project to run in fast-forward when it resumes, quickly simulating the amount of time passing had the project kept running while in the background. The new 'Catch-up time' example demonstrates this. There are other techniques that are simpler, such as advancing in-game timers, but this provides another option while still preserving battery and system resources by allowing the app to suspend when in the background.

As ever there's a few more other new examples, and a set of bug fixes. Happy testing and stay tuned for more updates!

Like this Release?

Let us know with a thumbs up!

39
Launch r381

New Additions

16 favourites
Tween behavior: add loop and ping-pong triggers
21 favourites
System 'Set framerate mode' action
8 favourites
Animations editor: new 'Miscellaneous settings' dialog
9 favourites
New examples 'Catch-up time', 'Fruit merger', 'Pixel data reader', 'Traffic jam'
7 favourites
Animations editor: setting to use the file name for created animation name

Changes

13 favourites
Change 'Set minimum framerate' action to 'Set min/max framerate' with maximum framerate option
7 favourites
Animations editor: move 'guess collision polygon' setting to Animations Editor settings

Bug Fixes

7 favourites
Advanced Random: savegames did not include random number generator state
5 favourites
Tiled Background: savegames did not include image transform/tile randomization state
5 favourites
Animations editor: avoid reading folders named '__MACOSX' when importing folders/zips
5 favourites
Animations editor: copying and pasting animation frames in the editor producing unexpected results at runtime
4 favourites
Flowcharts: unexpected elements being highlighted
4 favourites
Flowcharts: crash copying nodes with the keyboard shortcut if there are only outputs selected
6 favourites
Find all references: possible crash showing from 'View used addons' dialog
7 favourites
Global layers: crash moving instance from overridden layer (regression r377)
4 favourites
Hierarchies: runtime crash loading some hierarchies from JSON

Scripting updates

5 favourites
Add IRuntime properties framerateMode, minFramerate, maxFramerate

Share Construct 3 Release r381 Now

  • 15 Comments

  • Order by
Want to leave a comment? Login or Register an account!
  • Nice to have limit framerate.

  • change the maximum framerate That's crazy!! Very impressive features! Thank you for your work!

    • It seems confusingly named to me, since isn't changing framerate normally expected to change the FPS?

      Since when I set it to 30, the FPS was still going at 144 (my monitor's maximum framerate).

  • It would be great if there was a setting to change the number of points for "guess the polygon shape". It often builds a polygon with too many points and we have to remove most of them manually.

  • Setting the maximum framerate is pretty cool :) I‘m not sure how different it is to setting the timescale to achieve a fast-forward effect. A framerate limit would also be kinda nice for the future to save battery / reduce heat on mobile devices

      • [-] [+]
      • 3
      • Ashley's avatar
      • Ashley
      • Construct Team Founder
      • 3 points
      • (1 child)

      A high timescale means you get large delta-time values, so things like moving objects move in large steps, which can result in things like missed collisions and unstable gameplay. An unlimited framerate using a maximum framerate to limit delta-time means things move in small steps but faster than realtime, which can be a better option for a "fast-forward" mode (as in the 'catch-up time' example).

      • Thank you, that makes sense. So for anything that depends on collisions or precise interactions this is the superior option, if I understand correctly.

  • So so happy to see FPS stuff!! Can't wait to test! And the vsync changing at runtime, so happy!! Thank you!

    Could I ask, I should prob test myself but project is upside down:

    The whole "browser suspends when minimised", does this tamper with Multiplayer at all? Like if the host minimised for too long, would it disconnect? Or is multiplayer something that's treated differently whilst suspended?

    Will test myself but thought to ask in case there's some special case for multiplayer in the runtime of C3.

      • [-] [+]
      • 2
      • Ashley's avatar
      • Ashley
      • Construct Team Founder
      • 2 points
      • (0 children)

      I think browsers have a couple of things that exempt a page from being suspended in the background, and IIRC they include having an open WebRTC connection (which covers the Multiplayer object when connected to peers/host), as well as a couple of other things like having an active camera/microphone feed.

  • Framerate settings is a nice surprise! Does this mean we can optimise for multiple devices without needing to faff about with deltatime or am I misunderstanding?

  • When will you make it possible to loop the Timeline animation?

  • How change the maximum framerate works?

    i set in my game maximum to 15 and i receive 3x faster gameplay ? similiar to set timescale 3x So when i can exacly should use this? this needs an a example project

  • I love updating examples. It's the right way to use them correctly. Thank you very much for improving the quality.