Addon SDK v2

From the Asset Store
Data+ is the best Data Management solution for Construct 3. It contains 4 Addons (Plugin & Behavior).

    Ashley

    As I've said before, I am keenly aware of the amount of work this will create, and that is regrettable. However, please understand that we are not doing this for fun: the current compatibility disasters and future risks are in my view so severe, that this is very much necessary, despite the magnitude of the problem it will create in the short to medium term. If you don't believe me or disagree with that judgement, I'm there's not much more I can add, other than to say that you either learn the lessons of history, or you are doomed to repeat them. The industry came up with encapsulation to solve these kinds of problems, and we are moving towards that industry-standard approach. If we postponed this by a few years and then were forced to do it anyway, it would be even more difficult and even more addons would need updating. So if it's going to happen - and in my view it absolutely has to - then the sooner we act the less bad it will be.

    Why are you trying to convince or gaslight everyone into believing that the developers are too lazy to update the plugins? That's not the issue here; the issue is that you are pushing for Addon SDK v2, making it look like it will solve all our problems with encapsulation when it barely has any API in it.

    You are launching an Addon SDK v2 with an incomplete API and blaming plugin developers that we do not cooperate. We're aware of what you're trying to do; you are making yourself look good and making it look like you have every customer's best interest in mind. 

    When, in reality, you are the one not cooperating. How are we supposed to port the existing plugins into the latest Construct 3 editor where, otherwise, other engines would work?

    Well... let's try something. Here's one of my addons, "group handler".

    construct.net/en/make-games/addons/159/grouphandler

    - It uses undocumented features, although relatively simple in nature

    - Somewhat popular with 1000+ downloads (aka could be used in several thousand projects)

    - Last updated 6 years ago (still working as of today btw.)

    - Solves certain usecases for group enabling/disabling (mostly in terms of convenience)

    - Can sort of in part be done with events, but not really

    Of course feel free to point the finger at me since I ignored the warning and now the addon is going to implode with literally no alternative. You couldn't stop me, I can't stop you, let's call it even.

    I know this is the exact thing you want to avoid. Because if you ever changed something about how groups work in the engine, the addon could also have broken. I still think it's a neat addon that offers a neat set of handy features. It would never have existed in the first place if I couldn't tap into the engine (which is kinda sad to think about because again, I think it's a neat little addon)

    So what's the course of action now? What do we do? Of course it inevitably has to be deprecated... then what?

    I know this is the exact thing you want to avoid. Because if you ever changed something about how groups work in the engine, the addon could also have broken.

    So essentially they are breaking all the addons now so just in case in the future if engine changes break the addon, they are technically not at fault?

    That's not sound logic, because engine change always have a chance to break your project regardless?

    Which is why if u have a game that's going to be released you stick with one version to mitigate those risk factors?

    So essentially they are breaking all the addons now so just in case in the future if engine changes break the addon, they are technically not at fault?

    Let's be fair here, they want to avoid engine changes to break addons in the first place, at least that's the promise behind this. And addons that don't use undocumented features need some porting, I'd not call them broken per se. No doubt, it's sucky still... but at least they CAN be ported. The group handler plugin will be actually broken with no replacement, period.

    That's not sound logic, because engine change always have a chance to break your project regardless? Which is why if u have a game that's going to be released you stick with one version to mitigate those risk factors?

    That is very true, but I kinda feel like doing version freezes is not common practice at all. And even then it still creates problems. If I have an addon that breaks after r391 and Ashley fixes a bug in the engine in r392 that I ALSO really need fixed for my game... I can have one or the other, if I really really need both, the project dies right there.

    None of this is ideal, I don't know what ideal would actually look like.

    Industry Standard

    Please understand that any mention of "Industry Standard" does a disservice to Construct here. The industry standard in game engines is to remove as many obstacles as possible when it comes to making our games (by being able to extend the engine capabilities for example) and to support and endorse third-party developers. Regarding vanilla features, there is also much to say about the industry standard: for example, the industry standard is to provide some in-editor tools to create UI for our games.

    Encapsulation

    Regarding encapsulation, perhaps indeed, many tools are doing that. But you must realize that popular engines were often designed from the start to provide a vast set of APIs. Because in those engines, the exposed API are used to develop many vanilla features (while again C3 vanilla features don't and won't use SDK2 but the SDK1...)

    Even worse : most of the other engines mentioned here offer significantly more power thanks to their exposed APIs than what the undocumented features of the C3 runtime have allowed us to do until now

    That's right: being able to access 100% of the undocumented features of C3 Runtime/SDK1 is still not as powerful as the publicly exposed APIs of other game engines that do encapsulation. So what about SDK2, which only exposes 1 or 2% of it?

    Given the fact that you're such a small team with limited resources and you have no time to implement popular community suggestions requested for 5-6 years + the track record of rejected suggestions for exposing existing hidden APIs for both the Runtime and the Editor (which sometimes would take a few seconds/minutes) + the overall lack of acknowledgment from Scirra about the issues we're facing in our production:

    How could anyone believe we will still be able to do anything relevant with addons once SDK2 is enforced as the only way to extend the engine ? The current process is already incredibly tedious and painful using 100% of C3 power.

    It looks like the balance that existed with SDK1/Undocumented feature wasn't perfect but at least it was a good compromise

    "Group Handler" addon

    This is a perfect example of what won't be achievable at all soon, and how small the compatibility break issue was before all of this SDK2 madness started. The plugin is 6 years old, totally based on undocumented features, and still works perfectly and would probably keep working as long as Construct exists since the Event Group feature will never be deprecated. (Worst case scenario, a method would have to be renamed in a few years, that's all.)

    This WackyToaster plugin inspired me to create a similar Group Management addon with different features to make it more modular and usable for large games, and it allowed me to solve several major performance issues that I had with my game. Soon it will just be impossible to do that, and my game performance will suffer a lot.

    I made a bunch of private addons that use at least some undocumented features, but those features are used extensively by the C3 codebase and are very unlikely to ever change (I never had to fix any of them since I started making addons). These addons allowed me to solve all the performance and usability issues I was facing when making my Roguelike game using Construct. They also allowed me to get rid of some systems that required 500+ events (unreadable/impossible to maintain) and involved a bunch of weird tricks and workaround, or to overcome many limitations such as the lack of modularity in many aspects of C3 or things that are just 100% impossible to achieve with vanilla stuff.

    >>> This is why I really think you should let advanced users access undocumented features forever at their own risk if they enable the hidden Developer Mode. <<<

    ^ This would be the perfect solution and would solve the issues for Scirra + Addondevs + Gamedevs users, for the reasons i explained in my previous posts : SDK2 would be the default way of doing things, and most of the users would only use SDK2 addons, but powerusers/complex game productions can still use C3 to make their games with the help of SDK1/C3Runtime (because the alternative is that we're forced to use an other engine to make those games)

    Overall the C3 runtime code (SDK1 + undocumented features) is just far more pleasant to use than SDK2/Scripting interfaces, because SDK1 is used across the whole C3 codebase, as Scirra itself is using it to make any features of the engine, it provides a bunch of handy things that are useful to create new stuff.

    SDK2/ScriptingInterfaces on the other hand, is incredibly limited because it's not written by someone who will actually have to use it to create relevant stuff, it's incredibly verbose and the APIS often assume way too much about how the user might want to use them, there is many situations were it does way too much things under the hood VS what i actually wanted to do, so it's sometimes not performant enough for no reason.

    Also Scripting interfaces have been here for 4+ years and they still lack a bunch of obvious APIS, so SDK2 isn't even on par with the most basic stuff we could find in the already very limited documented features of the SDK1

    Among the many many obvious things missing in SDK2 : what about all the methods to manipulate the SOL/picking of an ObjectType in the current eventblock ?

    Even if in several years, the SDK2 implements enough APIS to port the publicly released SDK1 addons that already exists (such as Spriter/Spine/ProUI among many other), with a time-consuming and tedious dialogue between Scirra who have no time for this, and addon dev who have no time for this either, arguing for days/weeks for every single missing APIS :

    What about all the private addons that were made for ambitious productions ?

    What about the wasted potential of all the addons that could have been created and largely enhance the capabilities of C3 in the same spirit as 3DObject/ProUI/Spriter/Spine ?

    What about all the private addons that were made for ambitious productions ?

    This is exactly what Ashley doesn't seem to understand. Theres already games live that had used a private addon to surpass a C3 limitation, those projects may have an income committed, and Scirra is killing them abruptly. I'm sure any addon used by those projects will be kept up to date and won't break "customer's projects", which is the main reason Ashley is giving to deprecatr sdk v1. I have several private addons too that I use in my live games, those games have revenue, killing the sdk v1 will be a catastrophic action because of the simple fact that I can't go to the an older version of construct because sdk v1 will be totally retired. Those projects are expected to live for several years ahead. Using older versions with permanent backwards compatibility is the industry standard, which construct won't provide.

    Ashley you are going against what the industry is doing. Look at Unity Hub, I can still access older versions of the engine and keep my games running. Scirra is deciding to unsupport that compatibility? Even when addons like funky quads, which used unsupported features, paved the way for you to introduce 3d capabilities. Scirra is forcing devs to invest time and money on a tool whose reliability and support to the community is in question because of decisions like this. Even when these addons leveraged the popularity of the engine and Scirra got the benefits of it. It feels like a shot in the back. The good will of the community to expand the engine and help your company is being directly aggravated by this.

    I can't go to the an older version of construct because sdk v1 will be totally retired

    No one has ever said anything about older versions ever becoming unaccessible.

    In fact, Ashley has seemed fairly keen on providing an LTS version to keep compatibility for the last stable that supports V1.

    github.com/Scirra/Construct-feature-requests/issues/261

    if your worry is that you want to keep opening your projects in r388, you will still be able to do that, in the same way you can still open Construct 2 projects in C3 if you go back far enough in the releases

    I understand being mad at this, but I really want everyone here to be mad for the right reasons, so make sure you understand what's going on. Otherwise all you do is create noise that makes the communication muddier for everyone else.

    You are launching an Addon SDK v2 with an incomplete API and blaming plugin developers that we do not cooperate.

    The new SDK is not even out of beta and has had a single week of updates, so IMO it really does not count as "launched". Missing features and requests are being added to the feature request board. If you need a feature, add it there please.

    Once the SDK reaches stable in a few months, you will still have a full year to port the addons and request any missing features you might need. Sure, it's a pain to port the addons, but it's not like anyone is asked to start porting immediately. If the LTS does happen, this can buy everyone even more time before they absolutely have to update.

    No one has ever said anything about older versions ever becoming unaccessible.

    I'd better have Ashley to clarify that, it must be an official pronunciation from Scirra, not from the community devs trying to make conclusions. We must have a guarantee that it will work permanently at r388, and that all our old projects will be able to access the internal features to freeze any updates to the lates c3 stable on our side when this goes live.

    Here's some quotes of the milestones:

    Milestone 4: Construct will remove support for SDK v1 addons. The addons will no longer be loaded in the editor, and projects using them will fail to open and report that the addons are not supported and need updating. This will be at least 6 months after milestone 3 (and so at least 12 months after milestone 2).

    Construct will ultimately drop support for the Addon SDK v1, so addon developers should consider starting updating their plugins and behaviors to use the Addon SDK v2.

    skymen None of the quotes above indicate that what I state won't happen.

    Ashley's comments about LTS.

    It's infeasible to keep supporting one version forever. Eventually we will have to stop supporting it. As far as I'm aware nobody else in the industry supports LTS versions forever - everyone has some schedule of eventually retiring old LTS versions and introducing new LTS versions, sometimes with overlap between them. The question is what schedule is being proposed here

    Ashley please clarify.

    So just to understand this, if we uses a 3rd party ad-on like Chadori's and they decide not to update it to SDK v2, our projects will break?

    So just to understand this, if we uses a 3rd party ad-on like Chadori's and they decide not to update it to SDK v2, our projects will break?

    You can always use an older version of c3 to build whatever worked before. All the older versions are out there (take a look and see).

    I am sure I am not alone when I say I would really like to see Ashly post everything he has said about this on this thread over again, and then copy that and post it again and sign it in blood.

    yours

    winkr7

    So just to understand this, if we uses a 3rd party ad-on like Chadori's and they decide not to update it to SDK v2, our projects will break?

    You can always use an older version of c3 to build whatever worked before. All the older versions are out there (take a look and see).

    I am sure I am not alone when I say I would really like to see Ashly post everything he has said about this on this thread over again, and then copy that and post it again and sign it in blood.

    yours

    winkr7

    I don't understand why you're being rude because I asked a question for clarification.

    The next stable will include a demo using the flowcharts feature to show users which version they can use for each api. 😜

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads

    if your worry is that you want to keep opening your projects in r388, you will still be able to do that

    And this is what most 'big' developers will do - stay on r388 forever.

    I'm saying forever, but in fact it won't be a long term solution. This means no official support, no bug fixes, no new features. If WebView2 becomes available on Mac and Linux - we won't get it. A new version of NWJS is released (which requires updated Steam plugin) - we won't get it. Scirra adds Switch export (haha, I know) - we won't get it. Google or Apple introduce some breaking change - we won't be able to export for mobile. And so on and so on.

    Another possible path where it can go - people will start using hacked versions of C3. I don't say they will necessarily stop paying the subscription. But if the choice is between abandoning the project they've spent years to develop because it uses SDK v1 addons, or using a hacked version of the software where SDK v1 is available - it's a no-brainer..

    > if your worry is that you want to keep opening your projects in r388, you will still be able to do that

    And this is what most 'big' developers will do - stay on r388 forever.

    I'm saying forever, but in fact it won't be a long term solution. This means no official support, no bug fixes, no new features. If WebView2 becomes available on Mac and Linux - we won't get it. A new version of NWJS is released (which requires updated Steam plugin) - we won't get it. Scirra adds Switch export (haha, I know) - we won't get it. Google or Apple introduce some breaking change - we won't be able to export for mobile. And so on and so on.

    Exactly! Yet people is still thinking that r388 LTS is the solution. Ashley already stated LTS won't have support forever... eventually, our long term projects that uses undocumented features won't open. With his latest reactions, what's the real guarantee that he won't change his mind later on. This whole SDK v2 thing came from a simple question to access engine internals 2 months ago, which suprinsingly rushed Ashley to launch v2.

    The real solution will be to allow SDK v1 to coexist indefinitely, at the same time rolling out v2, or creating Construct 4 with all the new architecture for further projects, instead of thrashing the existing ones.

    So just to understand this, if we uses a 3rd party ad-on like Chadori's and they decide not to update it to SDK v2, our projects will break?

    If the addons you use do not use any undocumented internal references to the engine they will be very easy to port to v2. So I do not think you need to worry actually.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)