rexrainbow's Recent Forum Activity

  • FatesjokeStudios

    Added to TODO, but I won't port it recently, maybe several weeks later.

  • Ashley

    Here is the description of timing of calling "Draw" function (reference)

    "Called when Construct wants the instance to draw itself in the Layout View."

    I am curious when to call this draw function by IDE. (perhaps each tick?)

    The use-case is, I have a property to set to color of placeholder. Here is the code to draw that placeholder.

    		Draw(iRenderer, iDrawParams)
    		{
    			// render placeholder
    			iRenderer.SetAlphaBlend();
    			iRenderer.SetColorFillMode();
    			iRenderer.SetColor(this._inst.GetPropertyValue("color"));
    			iRenderer.Quad(this._inst.GetQuad());
    		}
    [/code:38e6ztwu]
    
    The color of placeholder is changed when I set that "color" property. It worked great. 
    But... I had not added code under "OnPropertyChanged" function. Supposing that I should invoke redrawing with new color under "OnPropertyChanged" function.
  • Ashley

    Could you please post a link of new text drawing api released in r76? I can't find it in document.

  • Ashley

    I think "fork-and-modify" is not good because of DRY (don't repeat yourself), but do nothing is worse.

    Back to the "reuse" topic (or modular), it might have two levels

    1. reuse events and related objects for normal c3 users, which could divide project into reuse-able sub-system to improve the work-flow.

    2. reuse plugin code for plugin dev, to extend plugin without forking it.

    Here I only focus on level 2. "Official sprite plugin and it's related behaviors" is a good example of reusing plugin code, it needs:

    1. ability to insert decorator addon (behavior) at another host addon (sprite)

    2. a clear interface to define public/export method or callback in host addon for decorator addon, to avoid exposing internal code as your consideration before

    For example, a shuffle behavior of an official array could add shuffle function without forking official array. But now, only "world" object could add behavior (point 1).

    It could not meet all kinds of requirements if host addon does not provide a clear interface (point 2), for example, it is almost impossible to add "load audio from url" feature in decorator addon for official audio plugin. Therefore addon should be redesign for extending.

  • Ashley

    ...It may not be as fast as in C2, but it shouldn't be terrible...

    Thank you for confirming it, you don't need to add fast trigger anymore. I should not care about performance too much.

    About "fork-official-plugin-and-tweak approach", it is not a good solution I agree, but how to add these features with best performance without "fork-official-plugin-and-tweak approach"? Will scirra improve official function plugin?

    Again, "Don't do that" does not solve any problem.

  • Ashley

    Let me explain more detail,

    I made rex_function2 plugin few years ago, to have

    • string-index parameter ( official function plugin only has number-index parameter )
    • default value if that parameter is not assigned

    These features is useful in large projects which might have large function interface.

    I started from official function plugin, try to add few logic to implement these features, so I could claim that my rex_function2 is as fast as official function plugin.

    Sure I could remove fast trigger flag in C3 plugin. But the performance will lose, performance is an urgent resource in large projects. Therefore rex_function2 is not worth to use in C3.

    Will scirra improve official function plugin to have these features? No, we all know there are too many TODO items.

    Can 3rd-party improve official function plugin by themself? No, the performance is not good as official function plugin.

    ----

    Sorry I was not in discord channel yesterday, I would like to share some ideas about "Does scirra team provide enough SDK api for 3rd-party plugin?"

    It is not a good question, imo. "What kind of feature could be implemented by plugins?" might be better.

    Someone suggest that crowdfunding to have more resource for TODO items, I agree that it is not about money only for scirra team. But what if some requirements could be made by plugins? 3rd-party plugin maker could implement these requirements into plugins and sell them in scirra store. Users could get these feature from 3rd-party developer directly, scirra team won't take any resource on them ( or take money for outsourcing ), and engine keeps growing.

    In this situation, 3rd-party plugin maker is not only an api consumer, he/she could be a partner of scirra team.

    What if most features are made by plugins? Then all developers including scirra team are plugin makers. Don't worry that no one will use these SDK api, scirra team itself will use them definitely.

  • RegPhoenix

    Added to TODO

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Phacanu

    Now I decide to stay in community and keep port c2 plugins to c3, but I won't make any new plugin this year.

  • Ashley

    Take fast trigger flag for example. It is only a flag, not specific code of implementation, you could still maintain implementation behind this flag. i.e. it does not decrease the flexible of engine code.

    (the other issue is -- official function had been released several years, why it is still unstable like a bomb in your statement?)

    I agree with you about not using engine code directly, but it is not a good solution which only said "Don't do that", it will drive 3rd-party plugin maker away. A better solution might be -- finding a way to meet user's requirement and keep engine code flexible, like, adding a new (abstract) function interface in SDK, to isolate engine code.

    (or maintain SDK first, then use this SDK to build engine/IDE)

    There might be a big trouble if 3rd-party plugin still tie to engine deeply -- 3rd -party plugin tried to improve/correct engine itself, not to extend the feature of engine, i.e. there are some defects in engine. In this case, isolate engine code won't fix it.

  • Sorry I don't have plan of making any new plugin recently.

  • newt

    Repo tool only solved problem of downloading addons, but it could not install multiple addons. Now user only could add addons one by one manually.

  • Ashley

    I could tell that nothing wrong in my rex_function2 plugin with fast trigger in c2. My friend even made some templates sold on scirra store with this rex_function2.

    ( Sure it might be broken someday, or never )

rexrainbow's avatar

rexrainbow

Early Adopter

Member since 4 Apr, 2011

Twitter
rexrainbow has 84 followers

Connect with rexrainbow

Trophy Case

  • 13-Year Club
  • RTFM Read the fabulous manual
  • Email Verified

Progress

15/44
How to earn trophies