Beta versions are not as thoroughly tested as stable

Beta versions are not as thoroughly tested as stable

Beta branch

Construct 3 r421

MIDI plugin; improved CPU profiler; tilemap brush editor improvements & more

07 January, 2025 ()

Email Me New Releases

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

Create an Account

Notes

After a well-deserved break we're back with our first beta release of 2025! This release adds a new MIDI plugin, which allows you to receive MIDI input from and send MIDI output to connected MIDI devices - such as digital piano keyboards and synthesizers. This is a fun new option for creative musical uses ranging from "Piano hero" style games to arpeggiators! Take a look at the new MIDI examples demonstrating both MIDI input and MIDI output to help you get started.

Other improvements include an improved CPU profiler in the debugger - now it can split out "Plugin processing" and "Behavior processing" times per plugin or behavior, to help you identify which plugin or behavior is responsible for using the most CPU time. Array sorting has been improved with new sort modes for 2D arrays which can also now refer to the rest of the array for tie breakers when sorting by column/row. There's also a variety of updates for the tilemap brush editor including usability improvements, plus updates for the new sprite sheet importer for the Animations Editor.

Over time we sometimes have to phase out old features to keep Construct moving forward. In the long term we plan to phase out the NW.js exporter in favor of our own in-house Windows, macOS and Linux exporters, and to better signal this the NW.js exporter is now moved to a "deprecated" category at the end of the list. Additionally, as per milestone 3 of our transition to the Addon SDK v2, Construct will now start showing warnings with the 'Deprecated features' dialog when opening projects using addons made with the legacy SDK v1. Currently this is just a warning and the addons will continue to work as before for the time being.

As ever there's a batch of bug fixes and other updates detailed in the changelog below, as well as a new 'Pixel painter' scripting example. Happy testing!

Like this Release?

Let us know with a thumbs up!

36
Launch r421

New Features

9 favourites
MIDI plugin: handle MIDI input/output to connected MIDI devices

New Additions

9 favourites
New examples 'MIDI input', 'MIDI output', 'Pixel painter'
20 favourites
Debugger: CPU profiler now shows plugin/behavior processing time for individual plugins/behaviors
15 favourites
Array: new sort action options 'Y axis (by row)' and 'X axis (separately)'
9 favourites
Animations editor: a few new options to generate animations from rows or columns when importing sprite sheets
8 favourites
Tilemap brush editor: context menu option to set all the tiles in a brush template from a selection
8 favourites
Tilemap brush editor: context menu option to add multiple optional tiles to one position of a brush template

Changes

4 favourites
Export platform dialog: move NW.js to 'Deprecated' category
3 favourites
Show deprecation warning when opening a project using SDK v1 plugins/behaviors
5 favourites
Array: sorting by column/row uses rest of array for tie breakers
5 favourites
Tilemap brush editor: default to always showing set tiles in the template of a brush
6 favourites
Tilemap brush editor: allow resizing panes of the editor, like other similar dialogs
4 favourites
Tilemap brush editor: support scrolling with the space bar, middle mouse button and gesture in mobile
5 favourites
Show deprecation warning again if listed items change after checking 'Don't show again'

Bug Fixes

4 favourites
Turret behavior: sometimes did not shoot after loading object state with 'Set from JSON'
4 favourites
Animations editor: sprite sheet importer not showing grid properly
5 favourites
Animations editor: improve rendering in the sprite sheet importer on high-dpi displays
4 favourites
Animations editor: possible crash opening the editor to edit individual tiles (regression r417)
5 favourites
Move To: 'Set Angle' not working properly when following a curve
5 favourites
Tilemap bar: set tiles which become out of bounds as empty after changing the size of the source image
2 favourites
Flowcharts: duplicating a flowchart not copying the start node which led to an inconsistent state
5 favourites
Tilemap brush editor: show keyboard shortcuts in the tooltips of the toolbar buttons

Scripting updates

6 favourites
Add IInstance.iid
5 favourites
Disable 'Cannot access before initialization' and 'Value is never read' warnings due to false positives

Share Construct 3 Release r421 Now

  • 28 Comments

  • Order by
Want to leave a comment? Login or Register an account!
  • Very worrying to see the end of NW.js support on the horizon, especially when community concerns over WebView2 seem to have been (so far) ignored. The worst case scenario is an "ask microsoft" or "complain to Steam" attitude towards WebView-Steam compatibility issues which will force many developers to a new engine. I've never really understood why WebView2 is referred to as an "in-house" exporter in the first place.

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

      Steam has fallbacks that show the actual Steam UI instead of an in-game overlay, so Valve have an alternative implementation there that WebView2 uses. As NW.js is essentially unmaintained, may well be retired at some point, and integrating custom native code in NW.js for things like Steam integration is extremely difficult and requires constant maintenance (and has finnicky version matching requirements), I don't think it makes sense to continue to support NW.js just to get the in-game overlay instead of the fallback.

      It's not like we've ignored the community over this - we have in fact gone to great lengths to try to support the in-game overlay, but various problems and limitations with Valve's implementation make it infeasible. So while it is unfortunate we can't support that, if you want it supported the best thing to do is contact Valve, as it seems only they can solve the problem.

      • Thank you for replying, it actually wasn’t the steam overlay I was referring to specifically - I’m not saying support for it should continue forever, just that issues with the alternative export options should be addressed before NW.js is sunset. Some of these seem challenging, e.g. github.com/MicrosoftEdge/WebView2Feedback/issues/4960 and might seem like small caveats but are very important to devs.

        Either way thanks for midi support very cool!

  • the array sorting just brought a tear to my eye :-D

  • When will NW.js be shut down?

    The “new” exporter, as I understand it, is WebView2, for which there is no working plugin for Steam, and judging by the comments will not be (since the problem with the plugin not working is addressed to Valve...).

    I'm not talking about Spine, which for 2D has long been a standard, but it also will not work, because there webgl is used, and is unlikely to be used gpu. but yes, esotericsoftware has a problem there too, not in the construct...

  • Thank you very much Ashley for honoring my request for MIDI! I can’t tell you how happy I am (:

  • The MIDI plugin is so exciting. Can't wait to play around with that.

  • Thank you very much Ashley, for fixing the issue with the Turret behavior!

  • Sunsetting NW.js still seems like a shockingly poor decision, but MIDI data support is very nice to see.

    • His post said they were doing it in favor of using their own exporters, which Construct 2/3 using its own exporters has been a requested feature for a long time, but it wasn't feasible for a long time.

  • I wonder when this in-house exporter is going to be revealed!

  • As someone just focused on their game, I wasn't really keeping track of milestones or SDK transitions. Good to see a warning of depecrated features.

    I'm wondering if there will be an opportunity to get my project on a stable release before old SDK addons are disabled?

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

      The next LTS release (in ~6 months) will continue to support both NW.js and legacy SDK v1 addons, and that will be supported until the end of 2026, so you should aim to use that if you need extended support.

  • If we, as Construct 3 users, have the right to request something from you, here is what we would like to ask:

    As many users have mentioned, there should be new updates focusing on mobile optimization. For example, features like "FPS locking," which are available in other game engines, should now be included in Construct 3 as well. Additionally, ensuring FullScreen mode automatically fits the screen instead of using "scale outer" would be very useful. Just like we use "request fullscreen" with the "Browser" object for PCs, there should be a similar method for mobile devices. In the games I’ve developed, they run smoothly on some phones but perform poorly on others. It would be great to see more improvements geared toward mobile devices. Performance drops significantly as the game content increases. Thank you!

  • Load more comments (10 replies)