Beta versions are not as thoroughly tested as stable

Beta versions are not as thoroughly tested as stable

Beta branch

Construct 3 r321

Tiled background tile randomization; increase free edition scripting limits; new script APIs & more

06 December, 2022 ()

Email Me New Releases

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

Create an Account

Notes

This release introduces a useful new feature for Tiled Background! Tile randomization is a new option you can enable that will randomly offset and rotate each tile, while blending the edges to keep a seamless appearance. With the right art style this is a great way to break up repetitive tiling. This option is built-in to the Tiled Background object, and a similar result can be achieved for other kinds of content with the new 'Randomize tiling' effect.

We're also pleased to increase the free edition scripting limits! Previously you could only go up to 75 lines of code (50 as a guest) with the free edition, with further limits on the number of script files and scripts in event sheets. We're now increasing this to 500 lines of code in the project (250 as a guest) with no other limits on number of script files or scripts in event sheets. Construct now has fantastic support for coding which is highly competitive with other tools, and we're excited to allow more people to try out the impressive features and performance of JavaScript coding in Construct with the increased free edition limits.

Other updates include a wide range of new script APIs to set or get pairs of values at once for convenience. For example as well as setting and getting the X and Y positions of instances individually, you can now also use setPosition() and getPosition() to set and get both at the same time. There are also some new options for timelines, tweens and the Animations Editor. The Properties Bar can now autocomplete string instance variable values in a similar way as when typing expressions. And as ever there are some bug fixes.

Last but not least, developers interested in writing custom effects can now write WebGL 2 variants of their shaders, as well as making use of some new WebGL 1 extensions. This allows taking advantage of more advanced shader features where supported. We'll be updating the effect SDK and publishing some preliminary documentation shortly to help developers get started with that.

Like this Release?

Let us know with a thumbs up!

41
Launch r321

New Features

21 favourites
Tiled Background: tile randomization option to break up repetitive appearance

New Additions

8 favourites
Timelines: option to change Sprite animations via 'Initial animation' property
8 favourites
Tween behaviour: add 'Repeat count' option
8 favourites
Animations editor: option to resize all animations in an object type
15 favourites
New 'Randomize tiling' effect
4 favourites
Project statistics dialog: add total lines of JavaScript code
4 favourites
Account dialog: add allowed lines of JavaScript code when using free edition
14 favourites
Properties Bar: suggest string instance variable property values (similar to expression autocomplete)

Changes

11 favourites
Increase free edition scripting limits to 250 total lines of code in project for guests, or 500 if logged in, with no other restrictions
10 favourites
Layout view: don't show polygons of Sprite instances with disabled collisions

Bug Fixes

5 favourites
Event sheet view: could incorrectly leave behind references to deleted objects if used with a call function expression
5 favourites
Layout View: use project near/far distance, and set minimum/maximum zoom levels accordingly
4 favourites
Expressions dictionary: did not always resize correctly on first show
2 favourites
Tweens: minor error produced by some easing functions (regression r310)
3 favourites
Timelines: runtime crash using 'keyframe reached' conditions (regression r319)
5 favourites
Hierarchies: possible crash when saving a hierarchy that was generated at runtime
4 favourites
Tilemap brush editor: crash setting tiles 45 and 47 of a 47 tile auto tiling brush (regression r320)

Performance Improvements

16 favourites
Somewhat improve performance of autocomplete in very large projects

SDK updates

13 favourites
Add support for WebGL 2 shader variants for effects
9 favourites
Enable WebGL 1 extensions OES_standard_derivatives and EXT_shader_texture_lod (where available)
6 favourites
Add editor setting to limit editor/preview to WebGL 1, to help test shader variants
6 favourites
Add effect category "tiling"

Scripting updates

5 favourites
Add ILOSBehaviorRay methods getHitPosition(), getNormal(), getReflection()
5 favourites
Add setVector(), getVector() methods for 8 Direction, Car & Platform interfaces
5 favourites
Add IPathfindingBehaviorInstance.nodes() iterator
5 favourites
Add IAnimationFrame.getOrigin(), IImageInfo.getSize()
4 favourites
Add ILayer.getScrollPosition(), ILayout.getScrollPosition()
4 favourites
Add ILayout methods setSize(), getSize()
4 favourites
Add IWorldInstance methods setPosition(), getPosition(), setSize(), getSize()
4 favourites
Add IRuntime.getViewportSize()
5 favourites
Add getImageSize() for Sprite & Tiled Background interfaces
6 favourites
Add getTextSize() for Text & Sprite Font interfaces
4 favourites
Add ITiledBackgroundInstance methods setImageOffset(), getImageOffset(), setImageScale(), getImageScale()
4 favourites
Add ITilemapInstance methods getMapSize(), getMapDisplaySize(), getTileSize()
4 favourites
Add IDrawingCanvasInstance method getSurfaceDeviceSize()
5 favourites
Add "repeatCount" to the options available when starting a tween

Share Construct 3 Release r321 Now

  • 17 Comments

  • Order by
Want to leave a comment? Login or Register an account!
  • Tried out new tiledBG. Overall it is nice, but to make it random, it also needs the tile empty randomizer. I seen alot of tileBG shaders, they all include option like this to make it cool. The rotate,x,y are the basic thing and the tileEmpty randomizer is almost always there. It is usually the basic thing for snow, rain etc, but currently empty tile option is missing. So one could rotate tile and shift image, to simulate snow - because christmas coming, would make nice addon for it.

  • Thank you so much for the webgl effects options, this is very much appreciated. dfDy and dfDx can be so useful and performant for certain shaders! With these features, a useful new addition for effect uniforms would be arrays. For example for sending in a lot of light positions or a matrix.

  • good but, I was very disappointed, I thought the number of events had increased.

  • A feature of Construct is the event system. But you increase the number of lines of code in the free version. I don't understand it.

      • [-] [+]
      • 0
      • DiegoM's avatar
      • DiegoM
      • Construct Team Construct 3 Developer
      • 0 points
      • (3 children)

      When you compare code and events, events handle a lot of the heavy lifting so you can do a lot more with a few events than what you can do with a few lines of code. In fact, a few lines of code won't get you very far.

      The free version is meant to serve as a test drive and with the previous limit to the lines of code you could use, it wasn't really good enough to try out the feature.

      • Beginners come to C3 to work without code. This distinguishes C3 from other programs. If the user knows JS enough to test it, then he has already worked in another program that does not require constant "Scripting updates". But I have no experience in promoting such programs, maybe I'm wrong.

        Load more comments (2 replies)
  • Stellar update !

    Regarding "Properties Bar: suggest string instance variable property values (similar to expression autocomplete)"

    It would be amazing if we could right click an element in the list of suggested values to open a context menu

    - Right click > Replace Value : it would allow to modify the string of the selected value (pop up menu ? or maybe it would be better and faster if the selected value cell would turn into a text input field with the value already blue-highlighted/selected)

    => It would replace the previous value with the new value everywhere it was used : both in all instance properties + in all places in eventsheet where this string value was used for this variable

    It would enhance the enum emulation aspect of this feature :)

    Later this right click context menu could be useful for other things such as :

    - Right Click > Select all instances with this string value

    - Right Click > Find all references of this string value

  • Best update!

  • I'm looking forward to see what the shader god will be able to do with the support of webGL2 shaders. Very nice!

  • Thank you for this update, it fixed the issues I had with opening project that was saved on oldest version of construct (R308)

  • I love it when businesses increase the free access to features, etc. That's extremely generous of you guys and I'm always happy to promote Construct any time I can. Now there's even more incentive!!

  • Load more comments (2 replies)