Beta versions are not as thoroughly tested as stable

Beta versions are not as thoroughly tested as stable

Beta branch

Construct 3 r143

New built-in functions; raycasting; visual timelines + more!

01 April, 2019 ()
Subscribe to Construct.net on Youtube!

Email Me New Releases

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

Create an Account

Notes

We have a huge update for you today! There are three major new features:

• A new built-in functions feature. This is a completely redesigned functions feature for the event sheet, with a much better workflow. See the video above for an overview! We'll be making a blog post soon too with some more details.

• Support for Raycasting in the Line of Sight behavior. This means if line of sight is not visible (so something is blocking the view), you can now obtain the exact position where line of sight is blocked. There's also a 'Cast ray' action to make it easier to use, and it also returns the angle of both the surface normal and reflection.

• You can now visually edit position timelines as paths directly in the Layout View! We're also working on adding support for bezier curves in these paths, which hopefully will come in another release soon. The timeline feature is now also enabled by default! Previously you had to enable the experimental features setting; it's now available to everyone.

There's a range of other additions and improvements detailed in the changelog below, notably a new Android target API level, support for WebGL 2 on all Android devices (at last), improvements to unicode support and autocomplete in expressions, and optimisations for general event performance in the C3 runtime. As usual there's a batch of bug fixes too.

We're excited about all these updates, but please be aware with big changes comes an increased risk of new issues accidentally being introduced. Please backup any important projects and test carefully, and as usual let us know about any problems by filing bugs following all the guidelines.

Like this Release?

Let us know with a thumbs up!

35
Launch r143

New Features

34 favourites
New built-in functions feature
31 favourites
Line of sight: full support for raycasting, including with new 'Cast ray' action, and returning hit position, normal, reflection etc.
17 favourites
Timeline feature now enabled by default (previously required enabling experimental features)
23 favourites
Timeline: support visually editing position timelines as paths directly in Layout View

New Additions

20 favourites
Bullet behavior: 'Set bounce off solids' action
12 favourites
Drag & drop behavior: 'Set axes' action
11 favourites
Tile Movement: GridTargetX/Y expressions returning the target position in grid cells

Changes

3 favourites
Android exports now target API level 28 (Android 9.0 Pie), since this will be required later this year
4 favourites
Re-enabled WebGL 2 on Android with Mali GPUs, since the underlying issue has been identified and worked around, and is fixed in a future release of Chrome
8 favourites
Expression autocomplete no longer shows while typing numbers

Bug Fixes

2 favourites
Timeline Bar: Unable to undo the addition of keyframes that were added using the keyboard shortcut
3 favourites
Timeline Bar: Crash when changing an ease function
2 favourites
Timeline Bar: Crash when adding an instance with instance variables to a timeline
5 favourites
Tween Behaviour: End values not read properly due to finished tweens not getting released
5 favourites
Tween Behaviour: Set time action not working properly when used on a tween that is scheduled to play, but not playing yet
4 favourites
Tween Behaviour: Runtime crash when setting the ease of a tween with an action
4 favourites
Z order Bar: Crash after undoing a change (regression since r141)
3 favourites
Fixed a number of issues with incorrect unicode handling in expressions (e.g. using emoji in object names)
4 favourites
Possible crash undoing container changes
3 favourites
Debugger: error if project uses circular event sheet includes
3 favourites
Desktop: Physics not working in preview with Worker mode enabled
5 favourites
8 direction: setting vector X/Y could exceed maximum speed
3 favourites
Anchor: in some circumstances could keep changing object size over time
4 favourites
Form controls: element ID could reset when other state changes
5 favourites
Stop Ctrl+Wheel zooming UI in Chrome 73+

Performance Improvements

27 favourites
Optimised general event performance (in C3 runtime)

SDK updates

15 favourites
New "boolean" parameter type for conditions/actions, which shows a checkbox

Share Construct 3 Release r143 Now

  • 27 Comments

  • Order by
Want to leave a comment? Login or Register an account!
  • Functions continue to be the bane of my C2/C3 experience, but this could REALLY help me out a lot. THANK YOU!

    And if you could SOMEHOW - I wish I knew how to articulate what I'm thinking - may raycasting more accessible throughout the editor, that would be amazing! Like, to be able to calculate a raycast position in a similar way you can calcuate distance between objects or the angle between objects. (I'll see about writing up an idea post on the idea suggestion site.)

  • The built-in functions update is fantastic.

  • Named parameters and listed as actions. Sweeeet!!

  • The new built-in function is some great news. I'm currently working on a complete dialogue editor tool and I use functions a lot. Especially I was embarrased when thinking they would be messed in own users project functions. That's settle now.

    Thanks again!

  • The Mali GPU bug returns in Remote Preview :( but randomly, and in remote preview only.

  • Hey, great feature BUT I am unable to have the same logic as before - for example I can't have an expression like Function.Param(loopindex). Also I don't have compare parameter as an expression. Are these feature going to be in?

    Also I am eager to re-write my code. Will C3 have some magic automatic refactoring for functions or we'll have to do it manually?

  • Is it possible that the new Functions feature doesn't work when you put that function inside a group?

  • The only issue I see with the new function block, is that it now behaves more like a traditional function :)

    What I mean is that I have used the old function plugin sometimes as more of an event system. So I may have more than one function with the same name. I would then call a function/event and have different logic executed on different event sheets for the same function call.

    For example I may have a function called "Player Hit" and have it in 2 event sheets, one called play manager and the other called sound manager. In one event sheet it could reduce the players' life count and in the sound manager it would play an explosion.

    For me I found it more convenient to organize my event sheets like this to isolate logic like this, but have multiple things have happen on the same function/event.

    I originally wrote my own event plugin, which worked well, but then I found it basically duplicated what the current function plugin does, making use of triggers.

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

      I think in this case you ought to be using different function calls. Otherwise you can't know what a "call function" action does only by looking at it.

  • Awesome!

  • Load more comments (16 replies)