Beta versions are not as thoroughly tested as stable

Beta versions are not as thoroughly tested as stable

Beta branch

Construct 3 r380

PWA installs; WebGPU updates; several additions; loads of bug fixes

20 February, 2024 ()

Email Me New Releases

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

Create an Account

Notes

It's the start of a new release cycle and we have a huge update for you this week! It's hard to summarise all the changes (see the full list below), but a key highlight is you can now use Progressive web app (PWA) installation with the Browser object. While all web exports from Construct are already PWAs, this allows you to use the same 'Install as app' feature that Construct itself provides, prompting the user to create an icon on their desktop/home screen. It's currently only supported in Chrome and Edge. There's also a new ability to add screenshots in the Project Bar, which is intended for PWA installation: if you add at least one screenshot in both the wide and narrow form factors, you'll get the richer install UI for your PWA.

We've also done a lot of work on the WebGPU renderer. By now we think it is close to complete in terms of having similar features and reliability to WebGL, and soon we may start enabling it by default. While we were working in the rendering engine, we also added a new option for effects to opt-in to direct rendering with 3D objects, which potentially provides new capabilities for 3D shaders. The GPU profiler in the debugger now also includes both the self and total time for layers, which is useful when using sub-layers.

There's loads more, including new additions based on feature requests in all sorts of places, including Find All References, the Timer behavior, and the Touch plugin. We've also added autocomplete for animation frame tags to help make it easier to type them in event sheets. There's an absolute boatload of bug fixes and other changes and improvements, notably including that worker mode is now disabled by default again in Safari due to Safari bugs that cause problems with it. Happy testing!

Like this Release?

Let us know with a thumbs up!

39
Launch r380

New Features

18 favourites
Browser object: Progressive Web App (PWA) installation

New Additions

13 favourites
New examples 'Chess board designer', 'Classic raycaster', 'Family tree'
9 favourites
Project Bar: 'Screenshot' image purpose under 'Icons & screenshots'
9 favourites
Context menu option for Tilemap instances to open Tilemap bar
15 favourites
Find All References: 'Show ambiguous' setting
13 favourites
Timer behavior: 'Pause/resume all timers' action
13 favourites
Touch: start/end parameter for 'On touched object'
11 favourites
ShadowLight: 'Set light position' action
11 favourites
Sprite: allow passing tag to 'Set repeat-to frame'
13 favourites
Add autocomplete for animation frame tags in relevant Sprite conditions/actions
19 favourites
WebGPU: support for GPU profiling
12 favourites
Debugger: add 'Self time' column to GPU profiler

Changes

8 favourites
Enable WebGPU for Android exports
4 favourites
Android exports: remove 'External storage write' permission, as it is no longer used on Android 11+
7 favourites
SpriteFont: default invalid colors to white
5 favourites
Windows WebView2: update WebView2 SDK to v1.0.2277.86
2 favourites
Disable worker mode in Safari due to Safari bugs

Bug Fixes

5 favourites
Project Bar: possible crash if copying too much data to clipboard
3 favourites
Project Bar: fix a link to the flowcharts section of the manual
4 favourites
Import audio: could not import tagged FLAC files
5 favourites
Properties Bar: did not always correctly apply min/max values
5 favourites
Properties Bar: incorrect initial animation could be shown while editing timelines
7 favourites
Data editor: pasting content from Microsoft Excel produced unwanted results
4 favourites
Text editor: possible crash closing a text file after making changes
3 favourites
Flowcharts: delete options not working as expected in some situations
3 favourites
Timeline bar: give same feedback as Project Bar when opening/closing folders
4 favourites
Timeline bar: ensure adding behaviour/effect properties generates unique subfolder names
4 favourites
Timelines: possible crash pasting timelines
8 favourites
Timelines: Z elevation not previewed correctly in the editor
8 favourites
Hierarchies: parents with a size of 0 where not producing useful results
7 favourites
Hierarchies: arrows sometimes not drawn correctly with global layers
5 favourites
Hierarchies: some hierarchies not restored properly from JSON
4 favourites
Tweens: tween state not restored properly when using 'Set from JSON string'
4 favourites
Tweens: runtime crash restoring value tweens from JSON
5 favourites
Tweens: looping sale tweens producing unexpected results
5 favourites
Tweens & Hierarchies: size/opacity tweens modifying hierarchy instances not restored properly from JSON
6 favourites
Tweens & Hierarchies: angle tweens not producing expected results when modified by mirrored/flipped parent
6 favourites
Tweens & Timelines: loop and ping-pong accumulating error over time
6 favourites
Particles: sometimes not restored properly when loading JSON
6 favourites
Drawing Canvas: possible jittery rendering when viewed in 3D
7 favourites
Improve precision of log10 expression
6 favourites
Background-blending effects did not always render correctly on rotated layer/layout
6 favourites
Mesh distortion with effect did not always render consistently between editor/runtime
6 favourites
'Polka dot' effect dot size could change depending on spritesheet size
8 favourites
WebGPU: possible error rendering effects with some objects
8 favourites
WebGPU: possible incorrect rendering of Particles in some specific circumstances
7 favourites
WebGPU: Lens2 and bumpmapping effects not rendering equivalently to WebGL
7 favourites
WebGPU: ensure swirl effect rotates clockwise
8 favourites
WebGPU: ensure proper handling of device loss

Performance Improvements

13 favourites
Optimize rendering of 3D objects with certain kinds of effects

SDK updates

10 favourites
Effects can now specify "supports-3d-direct-rendering" to skip pre-draw with 3D objects
10 favourites
WebGPU: define f16or32 type for shaders (which is f16 when supported)

Scripting updates

8 favourites
Add IShadowLightInstance.lightX/Y
8 favourites
Add ITimerBehaviorInstance.setAllTimersPaused()
8 favourites
TypeScript: fix type definition of IWorldInstance.effects
8 favourites
Add I3DCameraObjectType.rotateCamera()

Share Construct 3 Release r380 Now

  • 13 Comments

  • Order by
Want to leave a comment? Login or Register an account!
  • Thanks for all the QoL additions! Those really add up.

  • Wonderful news on opt-in to direct rendering with 3D objects! This will allow us some interesting effects with 3D shapes and objects.

    We need one more thing for 3d shape fragment lighting.

    Can you please add a varying output to the default vertex shadet, just passing through aPos, so we know the world position of the fragment.

    So please add in webgl2 vertex shader: out highp vec3 pos; and in main(): pos = aPos. Also, please do the equivalent for webgl and webgpu. This will get the frag shader the world coordinates needed for world based frag lighting.

    If the following shader does not use pos, it will allow the shader compiler too compile it away. Even if it does not compile it away, it would seem to have small impact.

    I will also add this to the c3 2024 suggestion platform.

    Thank you for the consideration and great beta release.

  • I love the huge amount of bug fixes and am very intrigued by the direct 3D rendering option!

    • So we have to define it in the addon.json and then should handle the depth writing ourselves (i.e. discard pixels) I guess? Sounds very useful!

      (I always wish there was some temporary documentation for some beta features so it's easier to test)

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

        Add "supports-3d-direct-rendering": true to addon.json and the effect compositor will not force a pre-draw. There could be other cases where it forces a pre-draw though, it depends on the effect.

        Load more comments (1 replies)
  • Thanks a lot for litteraly double-release :)). I appreciate the endless passion and persistence in development.

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

    I love update. this big update. thank you :D

  • Thank you for so many changes and the on object touch end action! Seeing WebGPU finally arrive on android is awesome too, I‘m excited to see how it performs :)

  • Woah, that's an update and a half! I especially love the DX improvements, please keep 'em coming :)

  • Nice "touch" option.

  • Wohoo \o/ very excited about my PWA install suggestion already getting implemented.

    I didn't even know about the "richer install UI" stuff, looks really good.

  • Huge bugfix batch!