A downloadable tool

Buy Now$20.00 USD or more

A powerful ADDON PACK containing 3 new behaviors for Construct 3 
It contains :

  • ADVANCED SIGNALS Behavior - Per-instance "Functions" on steroid !
  • CUSTOM EXPRESSIONS Behavior
  • SIMPLE TRIGGER Behavior
  • Example/Documentation .c3p project

Those are the 3 addons I used in all my systems to create a highly modular and maintainable Roguelike. Thanks to this pack : you can create scalable systems easily, decouple your logic to avoid spaghetti code. It also makes the Family feature way more powerful thanks to the polymorphism support.

Above all, it allows you to "CREATE YOUR OWN BEHAVIORS" only using the eventsheet.
(In fact it's even more powerful than Behavior thanks to the polymorphism feature allowing each member of a Family to act differently)

There are many use-case and advantages of being able to create Object Signal/"Functions", Custom Triggers and Custom Expressions (supporting polymorphism and multiple parameters)  :


1. ADVANCED SIGNALS

  • "The Power of Godot Signals with the Ease of use of Construct "
  • Bringing Event Driven Design and Polymorphism to C3

The Signals Behavior allows you to create powerful instance-based Functions or Triggers for your objects and families, only using Eventsheet. You can also pass any number of parameters you want.

Here are the benefits of using the Advanced Signals Behavior instead of the vanilla Functions and Custom Actions of Construct 3 :

  • Calling a signal allows you to trigger multiple eventblock in your eventsheets while vanilla C3 solutions requires you to put everything in a single place.
  • It is very useful for decoupling logic :
    Example : you could call a "OnHit" Signal on your player Character, and Trigger logic at different places in your projects, passing a "Damage" or a "UID_DamageDealer) parameter in all relevant eventblocks :
    - one eventblock in your "UI" eventsheet to handle the heatlhbar feedbacks
    - one eventblock in your "Upgrades" eventsheet to check if the power has a Mutation that applies damage to all surounding enemies when
    - one eventblock in your "Entities" eventsheet to apply Hurt feedback to your player
    - one eventblock in your "Game" eventsheet to check if the Player has no HP left and if it's gameover
    Functions/Custom Actions on the other hand, would require you to do everything under the same eventblock, making it very messy and unmaintanable as you add more and more features to your game.
  • It is very useful for modularity : the same Signal call could act differently depending of the current layout, and the current active Groups and Eventsheets.
    Example : you could call a "OnLevelEnded" signal on your Player Object when he cleared all the enemies of the current Layout. Each Layout could have their own eventhseet including a [Player : On Signal "OnLevelEnded" Trigger] launching a different cutscene and providing a different reward depending on the current Level.
  • Signals provides you the full flexibility : you can create "dynamic functions" calls by calling Signal Names and any number of parameters depending on expressions.
  • The previous points mean that even if you want to trigger logic in a single event block as a vanilla Function would do, doing the exact same thing using the Advanced Signals behavior is more powerful.
  • It works per-instance by default, while C3 Custom Actions often requires you to add "For Each" loop conditions which are the main cause of bad performance in C3 games. With Advanced Signals, even if you have a bunch of instances of your Object currently selected, it will just trigger your logic per-instance in the most efficient way.

Note : Advanced Signals are not meant to replace all Functions and Custom Actions in every circumstance but they are way more powerful and flexible. I tend to use Advanced Signals in 60% of the situations in my main project, but vanilla Functions/CustomActions have their own strength so I still use them sometimes.


2. CUSTOM EXPRESSIONS

Create your own expression for your Objects and Families directly using your eventsheets thanks to the Custom Expressions Behavior.

It allows you to create powerful "getter" functions returning values based on any conditions, parameters and calculations you could imagine, and even executing some logic when they're called !

The big game-changer things regarding this behavior is that you could set-up a Custom Expression on your Family that would returns different stuff for each member of the family as explained in the following part 


3. POLYMORPHISM (Bringing more power to Families)

Much like with inheriting family instance variables, behaviors and effects, family Advanced Signals, Custom Triggers and Custom Expressions can also be used for every object type in the family. This allows every member of the family to share the same Signals/Triggers/Expressions.

But the most amazing thing is that your Family Signals could share some logic between all family members AND/OR let each of them trigger their own eventblocks when those Signals are called.

You can also create Custom Expressions for your Family that act differently for each family member Objet !!


4. BONUS : SIMPLE TRIGGER

As a bonus, I also added a "Simple Trigger" behavior, a very lightweight variant of the Advanced Signals behavior. (Simple Trigger also support Polymorphism btw !)

The Advanced Signals behavior gives you the full power and flexibility, as it allows you can to create as many different Signals as you want, to pass any number of parameters and set-up "dynamic function" calls by calling Signals and defining their parameters based on expressions.

But if you know you're just gonna need a "Simple Signal" without parameters you can just add a Simple Trigger behavior. This way to need to bother calling a specific signal by its string name, just use directly the action and trigger condition of this behavior. Depending on the situations and your own preferences both approach can have their advantages. Note you can add several Single Trigger behaviors on the same object and just rename the behavior themselves to the trigger name you want such as  "OnLevelUp", "OnMaxSpeedReached"

I tend to use "Advanced Signals" in 95% of the situations but sometimes I am happy to be able to just quickly add a Custom Trigger on an object. So yeah it's just a tiny extra i wanted to include in this pack, if you're not sure why you would use it instead of the Advanced Signals behavior, just don't use it :)


GOOD LUCK ON YOUR PROJECTS ! 💪 

Feedbacks, Questions & Contact in my Community Discord I'm also doing Construct 3 consulting, feel free to DM me if you're interested

   


StatusReleased
CategoryTool
Rating
Rated 5.0 out of 5 stars
(5 total ratings)
AuthorOVERBOY ツ
Tags2D, addon, behavior, construct, Construct 2, construct-3, Game engine, Modular, tool, User Interface (UI)

Purchase

Buy Now$20.00 USD or more

In order to download this tool you must purchase it at or above the minimum price of $20 USD. You will get access to the following files:

ADDON PACK V1.2 - Advanced Signals & Custom Expressions.zip 75 kB