Beta versions are not as thoroughly tested as stable

Beta versions are not as thoroughly tested as stable

Beta branch

Construct 3 r405

Instance signals; IME/translation updates; bug fixes

03 September, 2024 ()

Email Me New Releases

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

Create an Account

Notes

This week's release introduces a new Instance signals feature! If you've used the System Signal action, this brings the same feature but working on a per-instance basis. Unlike custom actions, this allows for handling signals in multiple places, using a dynamic string for a signal, or using the 'Wait for signal' action (which with instances waits for all picked instances to signal). This provides a more dynamic and flexible approach to handling custom logic per-instance.

Other changes include improvements for IME when entering expressions, allowing translation of some previously untranslated content, and a couple of bug fixes. We're now going to focus on working towards a stable release in the next few weeks - hopefully by the end of September - so as usual the next releases until then will have changes mostly just for bug fixes and reliability. Happy testing!

Like this Release?

Let us know with a thumbs up!

47
Launch r405

New Additions

22 favourites
Instance signals

Changes

5 favourites
Improve console error messages when invalid names encountered
4 favourites
Parameters dialog: improve how autocomplete works when using IME

Bug Fixes

4 favourites
Playable ad (single file): Physics behavior not working (regression r400)
5 favourites
Properties Bar: using system expressions in calculations not working (regression)

Language updates

2 favourites
Ensure build service status messages are translated
2 favourites
Some 'Type mismatch' errors were not translated

Scripting updates

3 favourites
Add IInstance methods signal(), waitForSignal()

Share Construct 3 Release r405 Now

  • 18 Comments

  • Order by
Want to leave a comment? Login or Register an account!
  • Thanks for instance signal. This is very awesome.

    • What is it used for and how do you use it?

      • Signals will allow you to make your own event triggers. You can simply understand it as: let someone do something when they receive a message. It provides you with another way to organize your code. When receiving a signal, you don't need to pick them first. You just tell them to run action when they get a message.

        For example, when the enemy's health is less than or equal to 0, let the enemy send a "dead" signal.Then write in another place that when the enemy receives the "dead" signal, run the action, function or object action.

        Moreover, the signal is composed of strings, which is very flexible. You can do more with it

        Load more comments (1 replies)
      • Basically you decouple the event sender from the event receiver.

        So instead of using this line:

        On Player Created -> Call Enemy Jump Action

        You instead do:

        On Player Created -> Send Signal named "PlayerCreated"

        On Signal "PlayerCreated" -> Call Enemy Jump Action

        This is useful because now the player doesn't care about the enemy and vice versa. Each one of them can use its own event sheet and logic. Unlike the first example, which if you delete Enemy, or move the Player code to a project that doesn't have Enemy, the code will break (because Player and Enemy are dependent on each other).

        The event-based game architecture is well-known in the industry, and you will find lots of videos about it.

        Load more comments (2 replies)
  • I created a plugin for sale quite awhile ago (PubSub) that provided event functionality like this new signal instance feature does. I took it off the store because there was not much interest. I just updated it for SDK v2 for my own use. If there is any interest I would put it back in the store. It gives you the same functionality as instance signals but also allows you to pass parameters in your events. So, for example, if a player is hit you could publish a hit event with the players current health as a parameter and a health bar could subscribe to the event and get the data from the event to update it's display.

  • I was so excited about the signals that I even got up off the couch and went to the computer to look at them.

    Let me tell you how I plan to use them.

    I used to check the state of some events or variables every 1/10th of a second or 1/3rd so that I didn't have to do it every tick. But now there are signals and I will just wait for the right signal.

    I really missed this feature. I was planning to sit for a long time on LTS r397.2 , I hope Ashley will add them there.

  • Holy crap, instance signals are going to be super useful!

  • Will there be a possibility to pass parameters with the signal in the future? :3

  • i have to be honest i didn't find any implement for the custom actions, is just functions with owners, glad that functions are so versatile and powerfull, now this instance signal will be amazing, i'll give the custom actions a second chance.

  • Very nice. I plan to use these.