Beta versions are not as thoroughly tested as stable

Beta versions are not as thoroughly tested as stable

Beta branch

Construct 3 r393

Event variable improvements; scripting/SDK improvements; new examples; bug fixes

28 May, 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 have some improvements for event sheet variables. These include the ability to reset a single global variable to its initial value, as well as being able to reset all static local variables. The Parameters Dialog now also lists event variables in its dropdown ordered by scope, so the variables you are most likely to want to refer to are nearer the top of the list.

Other improvements include a new script interface for the Platform Info object, and the ability to get the wrapper element for a HTML layer. Together this allows the scripting feature to integrate custom content with HTML layers - and a great example of this is the new Integrated 3D engine example which uses the three.js library to render a 3D model in between two Construct layers. This provides another avenue to use advanced 3D content in Construct. Further, as the Addon SDK v2 is based on the scripting feature, third-party addons can potentially also use the same technique to use a full 3D engine in Construct and make its various features accessible via event sheets. This may be a better direction than trying to get more pieces of a 3D engine implemented in Construct's predominantly 2D engine.

As ever there are more changes including some bug fixes, some additional SDK methods, and a couple of other new examples. Happy testing!

Like this Release?

Let us know with a thumbs up!

36
Launch r393

New Additions

26 favourites
System: 'Reset' action to reset a single variable to initial value
10 favourites
New examples 'Blacksmith forge', 'HTML layers', 'Integrated 3D engine'
12 favourites
System: 'include static' option for 'Reset global variables' action
8 favourites
Parameters dialog: group event variable dropdown by scope
5 favourites
Add check for modern JavaScript support when starting project

Bug Fixes

5 favourites
Editor could get stuck exporting deduplicated and optimized WebP images (regression r389)
4 favourites
Flowcharts: crash duplicating flowcharts
4 favourites
Flowcharts: some properties were not copied after duplicating

SDK updates

5 favourites
SDK v2: Add IRenderer.setBlendMode()
7 favourites
SDK v2: Add IRenderer.drawMesh()

Scripting updates

2 favourites
Add IPlatformInfoObjectType script interface
2 favourites
Add IRuntime.platformInfo
3 favourites
Add IRuntime.getHTMLLayer()

Share Construct 3 Release r393 Now

  • 32 Comments

  • Order by
Want to leave a comment? Login or Register an account!
  • What does "being able to reset all static local variables" mean? Aren't local variables always reset when they go in/out of scope? The word static also confuses me since I've never seen that used in the context of C3.

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

      The manual covers static variables: they don't reset, and act more like a global variable with a limited scope. The term "static" comes from the keyword used in C++ which does the same thing for local variables there.

  • 3D could already be done this way in C3. It's the opposite of integration and more like sticking a piece of paper between 2 other pieces of paper.

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

      It's a pragmatic option. If you'd rather see a 3D engine as powerful as Three.js integrated directly in Construct, you may find yourself waiting a very, very, very long time. Or you could use that option now. It allows layering other Construct content both above and below the 3D content, and it was not easily possible before the new APIs added in this release.

      • No, it is not a pragmatic option. Nobody with even the slightest insight into how game development works is asking for what you're providing. Why use C3 at all if we're just slapping three.js into it? At that stage, Construct provides exactly zero benefits. Your statement around it not being easily possible is, at the most charitable reading, wildly disingenuous - because it's already been done. Repeatedly. For years. With three.js!

        What has been asked for are a handful of things in SDK v2 that 3rd-party developers can use to create an INTEGRATED way to include 3D content that doesn't involve the hacks they've had to do that you're actively trying to prevent them from doing in SDK v2, making v2 come off more as the efforts of a control freak to prevent progress, not make it easier, officially supported, or remotely useful for those same 3rd-party developers v2 is ostensibly being developed to support. 1 step forward, 50 steps back.

        Load more comments (8 replies)
  • Thank you for the drawMesh() addition! It will prove helpful for Spine integration with SDK V2 overtime, in particular if it gets improved mesh render performance and per quad color (in a later update.)

  • Thank you very much for adding the group event variable dropdown by scope! Could you also differentiate the parameters of the function from the sub-event block? Currently, they are merged together, which I think could be very helpful to distinguish, especially when there are more local variables and parameters.

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

      Ah, I think I missed function parameters when implementing this. I'll add that for the next beta.

  • It's a very big update. I look forward to the day when the Integrated 3D engine makes Construct 3 even better. Especially if there is an example or community that is interested in creativity. Examples of how 3D model object manipulation helps create 3 games or projects of excellent quality. Not inferior to other engines, I love you very much. Thank you very much.

      • [-] [+]
      • 1
      • tha's avatar
      • tha
      • 1 points
      • (0 children)

      I love Construct 3 because it empowers people, including children, to bring their imaginative games to life without the need for complex coding knowledge. While it may not be the most powerful engine, it provides an excellent way to integrate various JavaScript engines into projects. Despite the potential for numerous errors, it also opens up the possibility for creating highly powerful capabilities.

  • Wow! That reset action is going to be handy!

  • sugooooy <3

  • three.js is a great library. Good work.

  • Is there no new beta version today? Could you please let me know when the next version will be available this week?

  • Thanks for the awesome update! Really like the way global variables are accessible now.

    I dislike asking for features in comments like this, because I get many feature requests myself for our software products and a lot of them are likely duplicates and maybe this has been requested a lot before, but we would be extremely grateful if there was a way to quickly downscale images without messing with their size on layouts, as that would be very handy for expanding to different platforms (switch, mobile etc.).

    This could work by being able to re-scale all instances of an object by a factor (something like self.Width * 2) in the inspector. Another approach would be to have the option to re-calculate object sizes so that they stay the same when changing the size of an image in the animations editor. We would really appreciate that :)

    Thanks for the consideration!

  • Load more comments (8 replies)