Ashley's Forum Posts

    • Post link icon

    As per the Forum & Community guidelines promoting piracy is not allowed, so closing the thread.

    There is a free edition of Construct, and we're happy for anyone to use that indefinitely as much as they like.

    • Post link icon

    Every year, Apple and Google change the publishing requirements to be able to upload an app. Sometimes the changes are quite onerous and involve a lot of work to comply with. Where details are changing rather than being removed, they would say all existing apps are still supported, but you need to change some details and upgrade your code to comply with the new requirements. It's a pretty normal thing to do in the software industry. In principle that is what we're doing here: everything that was supported still is supported, but you need to upgrade your code to the Addon SDK v2 to continue using it. I realise that is disruptive and sometimes a lot of work for addon developers, which is regrettable, but personally I have a clear conscience on this. I accept people might want to complain about all the extra work they have to do - and I've outlined why we feel this is absolutely necessary - but having to do extra work does not mean that things that were supported have become unsupported. For that to be the case, previously supported APIs would have to be removed with no forward support path available. In my mind there is a clear difference between those two things: it is normal that something remains supported, but you have to do work to continue using it in its newly supported manner.

    As I've described previously, we cannot meet the goal of preventing addons breaking user projects if we keep supporting Addon SDK v1. The current situation is there are loads of "timebomb" SDK v1 addons being used widely with which it is only a matter of time before they break and cause disaster. We face the prospect of this happening over and over again in an uncontrolled manner. Rather than sit around and wait for disasters to strike and keep ruining loads of people's projects, we're making difficult choices and taking action now to avoid this outcome. I realise some addon developers might not like this or disagree with it no matter how much time and effort I put in to making our case, but as I strongly believe the current situation genuinely threatens the usability of Construct and the viability of thousands of customer's projects in the long term, if some useful addons are not ported, as regrettable as that may be, in my view it is still better than continuing on a path that inevitably ends in disaster.

  • Yes, broadly speaking that's the plan. We're currently working on a new Linux wrapper with the long-term aim of improving support for the Steam Deck by using the same extension system as WebView2 to provide Steamworks integration. If it works out, we'll then likely extend the extension system to macOS WKWebView as well. After that (very long term here) I'd want to drop support for NW.js if possible, but that depends on any outstanding compatibility issues. But if our own custom wrappers can do everything NW.js can, and with easier maintenance and better customisability, then I don't think there's any reason to continue supporting NW.js. But anyone using NW.js now shouldn't worry - this is long term speculation, we're going to keep supporting NW.js for a while yet and only switch over if we have new options that cover everything people want.

    • Post link icon

    I think this thread has run its course and it looks like any further discussion is not going to be helpful, so closing.

  • The point is about traditional programming languages, not event sheets, though. There isn't yet any visual system that is comparable in reach across the industry to languages like C# and JS. Maybe one day that will change, but until then, if you are going to learn a traditional programming language, there are very good reasons to use an industry-standard language. That's the point it's making.

  • C# and C++ are also industry-standard languages. The point also applies to them, in the sense that those are also better languages than tool-specific languages - which it seems you agree with. It's talking about the disadvantages of tool-specific programming languages like GDScript and GML where that programming language is only used by one piece of software.

    For example, if you want to write some server-side code, you'll have a much easier time with an industry-standard language - C# and JavaScript in particular are great for that (ASP.NET, node.js etc). Suppose you want to branch out in to some other part of the tech world - those skills are far more useful and have far more jobs available than any tool-specific language.

    Education is also an important part of the business for us, and so we're also posing the question to teachers: do you want your students to learn an industry-standard language they can directly get a job working with? Or will they be learning some tool-specific language that won't provide as easily transferable skills?

    Perhaps you think C++ and C# are better languages than JavaScript for game development, but that's not the point we're making: I'd also say C++ and C# are much better options than tool-specific languages, for the same reasons.

    For me "don't invent your own programming language" is the hill I will die on - I think it's a big strategic mistake, even though it seems lots of people disagree. We're making the point that for developers writing code, there are a lot of benefits to using an industry-standard language, be it C++, C#, JavaScript, or any other major existing language.

  • Usually the manual is only updated at the next stable release in order to avoid documenting things that don't work in the latest stable release, and so possibly resulting in addon developers releasing addons that don't work for the majority of customers using the latest stable release. That method is currently only available in beta releases, but I did describe how it works in this forum post.

    • Post link icon

    I've already spend many posts and thousands of words in this thread explaining in as much detail as possible our rationale for this and why we feel it is absolutely essential despite the serious disruption that we are keenly aware it will cause. I'm afraid I'm not going to be drawn in to writing all that out again, so I would suggest you go back and read my previous responses in this thread.

    • Post link icon

    For anyone looking for a solution to a major engine issue and not unhelpful misdirection or shifting of blame

    Repeatedly blaming us for issues that are not our fault or responsibility, even after we've done our best to explain the situation, are against the Forum & Community guidelines, in particular in the section regarding bad faith discussion:

    Demanding impractical measures or infeasible solutions. If we say we can’t do something, it’s not because we don’t want to, or we’re being difficult, we genuinely can’t do everything!

    Therefore closing this thread. I've already indicated the best way to approach this problem and fix the root cause, which is the only good long-term solution.

  • As far as recreating vanilla behaviors, The runtime for Collision engine is missing the calls for pushing objects from collisions. I put a feature request in back in april maybe.

    These are ~10 lines of code for a completely-customizable version. See Collision methods

  • We don't publish any usage limits other than stating it's a free service that works on a best effort basis for reasonable usage, with the interpretation of those terms at our discretion. If you are not comfortable with that, you should set up your own TURN server.

    It's hard for anyone to tell what the usage would be anyway, as it is only used when direct connections fail, and it's difficult to guess what proportion of devices will be resorting to TURN for any particular game audience.

  • The only major difference between SDK v1 and SDK v2 is how you write the runtime scripts. Therefore the Runtime scripts part of the Addon SDK documentation is split in to two sections for each SDK version. There's also a porting guide.

    Am I able to simply use the same calls from the scripting reference for use inside construct 3?

    example:

    runtime.collisions.testoverlap(...)?

    Yep, exactly. One of the major design improvements with SDK v2 is it unifies all the scripting APIs so you can use the same calls as you would in Construct itself.

    I'd also recommend getting TypeScript support set up for addon development - it gives you precise autocomplete for all the available APIs, and is another new feature of SDK v2.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I've updated the addon SDK on GitHub to configure all addons to use modules. Then I can successfully test a module import by:

    1. Add mymodule.js in c3runtime folder, and add references (this._info.AddC3RuntimeScript("c3runtime/mymodule.js"); in plugin.js, add "c3runtime/mymodule.js" to file list in addon.json

    2. Write content of mymodule.js:

    export function GetMessage()
    {
    	return "Hello world!";
    }
    

    3. Import mymodule.js somewhere - I tried adding this to the top of instance.js:

    import * as MyModule from "./mymodule.js";
    
    console.log(MyModule.GetMessage());
    

    That successfully logs "Hello world!" to the console on startup for me.

    • Post link icon

    These points have all already been discussed at length in this thread. In short:

    The issue is this: If you can't make the built in behaviors with sdkv2, then the sdk isn't robust enough

    I believe you could make all the built-in behaviors with the SDK v2. Sufficient APIs should already be implemented. If they are not, you can submit a feature request.

    I feel like shutting off sdk1 in December

    It's not December: the plan is support will be dropped next summer, after an LTS release which will be supported for another 18 months - so there's over 2 years of support still to go with the Addon SDK v1.

    I've spent the last half year making behaviors using only the official api, and now I am being told that even though my addons were permitted and done the official way, I still have to go back and re-work everything!?!?!?!?

    If you are referring to v1, then I'm afraid the great extent to which other developers have ignored the warnings in the SDK documentation have forced us to act on this to prevent disaster in future, and I can only apologise that addon developers who have always abided by our advice are impacted by this. For what it's worth, there are a range of new features in the Addon SDK v2 such as TypeScript support which may help with future addon development, as well as a wider official documented API surface that will be improved more quickly in future too, as it's the same APIs as the JavaScript coding feature in Construct uses.

    You promised that if we used the official sdk, you would support it forever.

    Again, the intent is that everything officially supported in the Addon SDK v1 is still supported in the Addon SDK v2. If something is missing, please file an issue. These features all remain supported indefinitely, but will need to move to the Addon SDK v2 to continue using them in future releases.

  • The latest beta release is still r404. Click the link where it says r404 and it will open it.