Chadori's Recent Forum Activity

  • IJCT

    you dont need to use include event sheet to call functions from other sheets o_o

    Of course you need to.

    Scoremonger

    ..but I suppose it comes down to how people want to organize their event sheets and name their functions.

    I just keep thinking I"d rather have that effort go into a scene graph, animation timeline, and event sheet-authored behaviors that we can share between projects. Those are things that would be widely useful and I find myself wishing for them on every single project.

    First of all I understand but I don't want to add more problems for the Construct Team before the new C3 runtime is released. I already have a C2 plugin ready for it called "Function_Advanced", and what you are suggesting would do more work when we already have a solution that only needs a port to Construct 3 because the current C3 SDK isn't available for this feature. And I can see the potential that Construct 3 can overcome the limitations with Function_Advanced had on Construct 2.

    dop2000

    I would probably like to see a different feature implemented - a Global Event List. When you mark an event list as Global and it becomes "visible" from all other event lists, without the need to include it. Would be useful for generic events and functions.

    That is very bad for the editor. I don't know if you've ever made a large project on Construct 2 or Construct 3 or any game engine. But as by experience, the more visual popups you have, the slower the editor becomes.

    That would slowdown the editor so bad. The key point for every game engine is to limit the performance overhead as much as possible and avoid redundant visual windows / visual lists that can have the potential to reach the number of thousands of object loads.

    With my current project with 2686+ objects :

    Construct 2 :: Visual Popup, Undo, Redo, Change Events, Image Editor.

    It takes 5 seconds to load.

    Construct 3 :: Visual Popup, Undo, Redo, Create/Change Events, Image Editor.

    All Objects Expanded: It takes 5 seconds to load.

    Some Objects Expanded: It takes 1 second to load.

    dop2000 So, what you are suggesting can really do more harm than good.

    Reference just in case you are curious:

    https://www.construct.net/ph/forum/construct-2/closed-bugs-22/poor-c2-editor-performance-on-131074

    I made the reproducable .capx there so I myself have witnessed the dire effects of too many visual popups.

  • You already have a thread going on this, why start another?

    The other thread got lost. Then I made another one. Then suddenly, someone replied to the previous one. So, it ended up looking like that.

  • dop2000

    > The Function_Advanced is fully compatible, just not available.

    > It's a very simple plugin, yet a masterpiece.

    > [...]

    > If it were, we could have done it on Construct 2 long ago.

    What are you talking about? What function_advanced, what plugin?

    Does a plugin that allows calling functions from another event sheet already exist in C2?

    It's on the link. Included on the Feature Request. I wouldn't have asked something that is not possible and tested.

    construct3.ideas.aha.io/ideas/C3-I-504

  • 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.

  • Guys, if you have the time, I need your help to get this officially included in Construct 3.

    This is the Function plugin with an 'Call on Event Sheet' feature, an advanced but very useful feature.

    We have a Construct 2 plugin version sample on the link below and the useful features are also explained there.

    https://construct3.ideas.aha.io/ideas/C3-I-504

    Because the Construct 3 SDK doesn't cover the references to port the said plugin, we would need help from the Construct Team to either provide us the Function Plugin SDK References or make the plugin itself official.

    This will become easier if you help in the Feature Request voting too.

    Thank you for your time.

  • While the Construct 3 version still isn't available. Here is a temporary version :

    C3adon with Sample Cap3:

    onedrive.live.com/redir

    Since Construct 3 doesn't support JQuery, you still have to use the Valerypopoff JS Plugin and use it to include the JQuery file. And a custom initialization is also used.

  • This Converter is very great. But a reminder for anyone using this to convert C3 'world' plugins. Please don't just let it be after conversion even though it is working. Please manually tweak some parts of the plugin and also consider reading the Construct 3 SDK.

    Some porters forget or miss to convert some essential features needed for the plugins to reach its full potential. Even Behaviors too.

    Some examples that might be needed to get manually coded :

    1) Edit-Image

    2) Make-Original-Size

    3) Set Hotspot/Origin

    4) Live Previews

    5) Possibly more...

    Please do comply, to make it easier for everyone. Thanks

    blackhornet can you help me out by trying to give this out by including an additional note on the front page. Thanks.

  • When I use a webfont of Kanji,or the chinese character.

    Its Byte is 1650 times that of the roman/latin alphabet (spritefont).

    This is terrible.

    You are talking about WebFonts. A different thing.

    In Spritefonts, only include the characters found in your game dialogues.

    Because there are thousands of Kanji and Chinese Characters that would bloat your game so fast that it won't even be practical. And the images won't even work since it would be bigger than the maximum image size.

    Terrible is a bit of an exaggeration since most of the pioneer/classic digital games were made in Japanese.

    And their games were just KBs or 1 to 2 MBs in size. And those are big Nintendo RPG Games.

    So, it is really very possible to make light, just needs some learning.

  • What I mean is, I made a really cool spritefont but I only know latin characters, so if a person who dosen't use the latin alphabet like russian or korean, no characters will show up when they try to enter a name for their character and that kinda ***** you know ?

    Well. I do definitely think that the current situation is for the best. Because there is no way to find out the direct translation of a different writing system to the roman/latin alphabet.

    https://i.imgur.com/fjeFSYO.png[/img]

    https://i.imgur.com/fjeFSYO.png

    For example, Chinese & Japanese:

    Chinese have these 1 character per meaning/word. So there would be no a,b,c,d,e,f,g... and etc. on the Chinese Written Language. There would be 火 for fire.

    Japanese in the other hand is more complicated, there are 3 written scripts called Hiragana, Katakana and Kanji. And Fire has 3 different versions of writing :

    1) Hiragana has the alphabet style like the roman/latin characters. Used for Japanese words.

    Like A = あ,I = い、E = え and etc.

    So fire would be : かさい

    But it could also be in this form :

    2) Katakana has the alphabet style like the roman/latin characters. Used for borrowed Foreign words.

    Like A = ア、I = イ、E = エ and etc.

    So fire would be : ファイア

    But with words it can either be Hiragana, Katakana or Kanji.

    3)Kanji is like the Chinese Characters, 1 character per meaning/word.

    Like the 'Moon' = 「月」。

    So fire would be : 火

    In conclusion, there is no assurance for a direct written translation from the roman/latin alphabet to other written languages, so this is a matter of fact by design and should even be helpful for localization.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • What do you mean? Just in case you are not aware, you can just design the SpriteFont in latin characters.

  • dop2000

    So in the event sheet A you call a function from event sheet B, without including B.

    What if that function relies on other events from the event sheet B? Say, calls other functions or triggers some delayed events defined in B?

    This can cause problems that will be very difficult to troubleshoot.

    Of course there won't be any problem since in the first place you are calling only a single function. And no one is forcing you to use a more advanced feature, but what is important is that it is at least available.

    Anyway, if Ashley wants to, he could work around that depending on how he prepared Construct 3.

    I do expect the Construct Team that they will improve the feature anyhow they can especially if it is going to get official.

    Hard to troubleshoot? Actually this is not a big deal to troubleshoot especially when we have situations similar to this case that still no one to an extent did complain about changing. Like Nested Groups, Wait(), Includes and etc...

    Nested Groups for example can have deactivated groups withing a parent group and this can cause problems in troubleshooting, but this makes sense to have as a feature since we need block scoping.

    Wait() in loops and functions and etc. can cause problems too and hard to troubleshoot but we just need to learn to use it properly.

    And Includes can actually be complicated as this function feature since they act as branch nodes and unexpected event sheets might get included and run without even the developer noticing, since includes can go spaghetti.

    So if another event sheet have initialization events there, it could run even when not supposed to. Then, that would be harder to troubleshoot.

    They all can go haywire on specific situations but we just need to learn to manage it. Construct is made easy but it shouldn't be limited to complex creativity just to avoid confusion in troubleshooting.

    If you support this kind of mentality, then Construct Games will continue to be seen by users as a game engine limited to typical game functions made mostly with built-in behaviors. Which Construct is not, it is way better than that and it has very good potential to do a lot of complex and advanced things.

    Besides, this is actually quite beneficial. It would prevent and avoid redundant techniques to very complex situations. Imagine this, if you include an event sheet instead of calling only a function from an event sheet.

    It would be way harder to troubleshoot when you face these problems:

    1) Duplicate Functions

    2) Include Spaghetti, includes that are spread across event sheets.

    3) Unorganized events

    Now here, you either pick to 'Duplicate a function' or 'Include Event Sheets' repeatedly until you lose track of their sources. For example :

    i.imgur.com/HiW2lqi.png

    Click the link to see the image.

    Imagine if Event Sheet (Green) has the functions. It is haywire!

    Either way, it is messy. The best solution, is the "Function Call : On Event Sheet".

    We have been using this feature on the background of Construct 2 for a while now and nobody has ever gotten any problems including me. But now, I am not sure if the SDK documentation references for the function plugin on Construct 3 is available, so i think asking Ashley to support it officially is better.

    Or, if he can't or won't, I would like to ask the Construct Team the 'Editor' and 'Runtime' documentation reference guide on how I could achieve making a customized function plugin for Construct 3.

    Thanks.

  • Hello Construct Team. I have a feature request that won't require much time to add and if you wanted to, you could even add it immediately on the next release. With that said, this feature would still be very beneficial with developers who have complex projects.

    I have a sample Construct 2 plugin that might be a good basis on how it could be achieved and to show its practical use. Although I expect improvements from Construct team as it will be an official 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 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.

    Thank You.

    Ashley

    Reference : construct3.ideas.aha.io/ideas/C3-I-504

Chadori's avatar

Chadori

Member since 10 Oct, 2014

Twitter
Chadori has 50 followers

Trophy Case

  • 10-Year Club
  • Entrepreneur Sold something in the asset store
  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • x2
    Coach One of your tutorials has over 1,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • Enduring Visitor Visited Construct.net 90 days in a row
  • Unrelenting Visitor Visited Construct.net 180 days in a row
  • RTFM Read the fabulous manual
  • x2
    Great Comment One of your comments gets 3 upvotes
  • Delicious Comment One of your comments gets 10 upvotes
  • Email Verified

Progress

24/44
How to earn trophies