dop2000
I still think you are wrong.
You are basically asking to implement a hack.
I can see how this feature can be useful in some projects, but I also see how many people (especially beginners) will abuse it and this will result in very poor code organization, and could potentially cause more harm than good.
It's not a hack. It's like saying the MM_Preloader or the MM_Unloader is a hack.
Which it isn't. It is fully compatible with the SDK like the Function_Advanced.
The Function_Advanced is fully compatible, just not available.
It's a very simple plugin, yet a masterpiece. Try to read the code of the Function_Advanced, you'll see how impossible for it to be a hack.
On this link :
https://construct3.ideas.aha.io/ideas/C3-I-504
The feature :
The feature is the action "Call Function on Event Sheet". This eliminates the need to include an entire event sheet just to call a single function from another event sheet. This would be very useful for complicated projects that require branch events. Games with Multiplayer, Open-World, Map Generator, Procedural Generation or any large projects that requires complex and modular game management and in-game design.
Modular design capability is the most important part of this feature, which as of now, Construct 2 / Construct 3 doesn't have. With this 'simple action', the limitation is lifted.
Wait. How can it be harmful and how can you abuse it? I don't find anything on the plugin that can be abusing or harmful. If it were, we could have done it on Construct 2 long ago. It is just a simple call function from another event sheet. That is actually very convenient considering it has all the benefits without having to make a messy game event design.
It doesn't lead to bad code organization, as a matter of fact, it improves it since we can then make modular game event designs. AKA, removes messy redundant events, removes unnecessary more event sheets, everything can be modular, build things by parts and not involve global variables which are messy with modular events and especially bad for performance.
And worrying about beginners, they have to learn it anyway, especially if they want to be serious developers. It is the same with actual programming.
So to conclude.
Benefits :
- Modular Events, game designs built by parts/modules. Better event management.
- Less event sheets. No more redundant event sheets.
- Avoid use of global variables as an alternative means for modular events.
- More organized events. Clean looking with less redundant events.
- More performance in avoiding global variables for modular designs.
- Modular Debugging.
- Multiplayer Games to separate the Server Module with only 1 function to call all clients.
- 1 function call to toggle/initialize all modules. This is my favorite feature.
- There are so much possibilities! Not surprising though.
Disadvantages :
- 1 action more confusing for a beginner.
- Call a function from an event sheet, must not call another function.
There are only 2 disadvantages. Which are very easy to overcome.
The first disadvantage is that it can be confusing to beginners. But aren't functions confusing to beginners. And that is not a problem since they can learn.
The second disadvantage is easy to manage. The Function_Advanced has a red-icon indicator, if you see that function, don't call another function within a red-icon function.
Although, I can see a potential on Construct 3 to overcome that. I believe Construct 3 can make a better version of the Function_Advanced plugin which can remove all those limitations. Which isn't really bad, if you ask me. It's a very very small trade-off for a better Function Plugin.
For anyone interested in having this on Construct 3, please vote here :
https://construct3.ideas.aha.io/ideas/C3-I-504
Thank You.