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!
  • sugooooy <3

  • 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!

  • 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!

  • Ashley, adding some features for 3D would be very difficult? I am not mad, just curious. It is hard to make it compatible for other platforms?

    I mean, a lot of things can already be done using the current 3D feature and C3 events. Like:

    - Raycasting.

    - AABB collision (there is already a proj example)

    - Fog (already implemented)

    But there is other things that could be made if C3 offered better support, like ambient lighting by having the ability to [[change vertexes colors]] (it doesn't need to be updated everytime since is too heavy to load all of this stuff of lighting)

    And also could add ability to rotate the Y and Z value.

    - SAT collisions can also be made using C3 events, it's a bit complicated, I am working to solve it, but looks possible to achieve. But a plugin to support SAT would prevent a lot of headaches...

    - Load 3d models (.obj) [I'k a workaround to use animation just by having the ability to load each 3D model to create a animation, a.k.a motion animation]

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

      Developing enough features for a full 3D engine in Construct is likely many years worth of work. There is an endless list of complex features that true 3D engines usually support: 3D collisions, 3D physics, animated 3D models, screen-space ambient occlusion, lighting, shadows, deferred rendering, physically modelled materials, various 3D-specific optimizations, and on and on and on. So yes, adding more features for 3D is very difficult and an endless amount of complicated and time-consuming work. Construct remains primarily a 2D engine with some basic 3D features which you can often use to good creative effect (take a look at examples tagged 3D in the Example Browser). If you want more advanced 3D, and you can make things work by embedding three.js, then you get a fully-featured 3D engine with all that already available right now. Otherwise if you want more advanced 3D built-in to Construct, you may be waiting for many years to come.

      • I have managed lighting, shadows, 3d collisions and 3d physics to a certain degree purely in vanilla events. Aslong as the current batch of 3d plugins remain supported can still do some interesting things without touching code. :)

        It is pretty OK as-is with 3d features imo for mobile and browser games, but anything additional always appreciated.

        Load more comments (1 replies)
  • Load more comments (6 replies)