Ashley's Recent Forum Activity

  • 1. go to editor.construct.net 2. Log in to account 3. Opening via cloud (dropbox) 4. Logging into dropbox. Sometimes it just opens as normal, sometimes it says "Not a valid file, please check if it is a .c3p file"

    I tried these steps and could open a project OK. I'm afraid it's probably impossible to help further unless you can either find a way to reliably reproduce the problem, or access the developer tools - perhaps you could try a different system, or talk to the system administrator.

  • The built-in particle rendering is fairly limited, because it uses a specialized rendering mode that is more optimized. It currently only draws squares, but you can always draw a non-square shape inside a square image. If you need additional features such as truly rectangular images, or other features like rotation or animation, you can set a Sprite object to be spawned as particles instead, and change those sprites however you like.

  • OK, well glad to hear you've thought about it in detail and tried to design the system appropriately!

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I think it would be best to leave it be for the time being, because there are some details to be sorted that would probably require thinking over, such as where the content for the popup window is loaded from and what its origin should be. (I don't think such content should run on editor.construct.net.)

  • if you read through ANY issue people usually encounter with Construct performance or otherwise it's always at the point where any sort of desktop or mobile deployment happens

    Often when I see this, it's people hitting the GPU hardware limits. If you did the same thing in a different tool you'd hit the same limits because the hardware has only so much capacity. That's why our performance tips say to regularly test on target devices. If you never test on mobile, develop your entire project, and then find it's too slow, the problem probably really was your lack of testing during development. You should do that with any tool, and it's quite unfortunate if people think Construct is to blame for this kind of thing.

  • We were talking specifically about JavaScript performance. It doesn't sound like you were talking specifically about that, so that's bringing in a whole other set of discussion topics.

    I'm happy to benchmark performance issues, and usually the engine does have very good performance. If you're referring to performance problems, I'm not sure exactly what you're referring to - there could be all sorts of different things going on, ranging from GPU selection for dual-GPU systems (something I'm hoping to address in the next release cycle), graphics driver issues that are (surprisingly common) system problems rather than anything to do with Construct or browser engines, or actual issues with the Construct engine. It's helpful if you can be more specific, and file issues following the guidelines so we can properly investigate.

    No software is perfect, and all software has its bugs and issues. The number of open issues isn't necessarily a perfect measurement, but given that we currently have 53 open issues, GameMaker have nearly 5000, and Godot has over 12000, then I wouldn't say it's necessarily the case that everything is going so much smoother for everyone else.

    This is really going quite off-topic for this thread though, which is something we address in our Forum & Community guidelines - it's probably best to start new threads to branch off new discussion topics, rather than chucking everything in to one thread that was originally about the addon system, which tends to get pretty confusing and aimless.

  • As a show of good faith I have privated and removed all 3 addons and their repositories.

    Thank you - I appreciate that. I will put a warning in the addon documentation to make it clearer the editor DOM is considered internal details. So long as nobody is doing anything like that, then there isn't much need for SDKv3 or similar measures in the interim. Much like SDKv2, if the necessary encapsulation features were available from the start we'd have definitely used them from the start, but adding them in afterwards can be a lot trickier, both just to implement it and for backwards compatibility reasons. We will probably weigh up what to do next when ShadowRealms become available consistently across browsers, which may be some time away - I'm not sure there is any public schedule for it.

    Does encapsulation cause performance degradation?

    FWIW, in the first releases with SDKv2 we used WeakMap for encapsulation, which did have some performance overhead as many APIs required a map lookup. Now private fields are widely supported we have mostly switched over to using that instead, which should have minimal performance overhead.

    I don't regard this as a factor in the decision about using encapsulation though. Slower but working code is better than fast but broken code. If there is a compatibility disaster and thousands of customers have broken projects, the fact the code was well optimized doesn't matter much. That's not to say we don't take performance seriously though, and Construct's performance is already outstanding and JavaScript performance is far better than the competition.

  • I'm afraid it's not possible to help from just this information. Generally we need issues to be reported to the issue tracker following all the guidelines and providing the requested information in order to be able to help. If you press F12 and look in the browser console for a more detailed error message, that information is often very useful as well.

  • So you made a public server that executes untrusted code from anonymous users? Oof. Good luck...

  • I can reproduce no gamepad input when using both "allow-host-input-processing": false and the Steamworks plugin. However using app ID 480 (Spacewar) with the test, if I then go in to Steam, right-click Spacewar and go Properties > Controller > Disable Steam Input and try again, it works. So it seems Steam Input is preventing gamepad input from working in this case. You'll need to contact Valve about that as Steam Input is their software.

  • For what it's worth, is editor extensibility not part of what was advertised in the Construct 3 promo page before its release almost a decade ago now?

    I don't believe we ever advertised such a feature - this blog from 2017 mentions we were "planning to allow editor plugins", but unfortunately we ended up giving up up on those plans mainly because the scope of the feature is so large and potentially has very difficult maintenance concerns, as I mentioned in this post. Sorry, sometimes things don't work out as planned!

    When people try to use undocumented internals to hack features in from the outside, it ends up causing disaster. Those disasters can be so bad that they outweigh any benefit that the feature ever brought, so it would have been better to never have had it at all, rather than a hacked together version that eventually caused disaster.

  • I've explained how there are two paths: the industry-standard API approach, or things end in disaster. Here it sounds to me like you are arguing in favour of the way that ends in disaster. I'm afraid this type of thing is just very worrying to me: it represents a risk to our business, reputation, and customers. The fact you've already written code for your editor UI system using the unsupported approach - especially open source code that is beyond your control, allowing any other developer to pick it up and use it - indicates to me that you are still using the approach that ends in disaster. If you wish to propose a feature or prototype something, don't do it by using unsupported features - you can always write up a feature proposal, prototype things using supported features only if possible, or otherwise prototype them in a separate development project, or basically anything else at all except that. The very existence of code using unsupported features, particularly open source code, already poses a risk to us. This is a tough thing to say because addon developers do a great deal of good work for Construct and the ecosystem, and I believe the vast majority of addon developers are acting in good faith, but I'm afraid there is already a risk of a serious disaster from the work you've already done on the editor UI system. The prevalence of SDKv1 addons using unsupported features posed a similar risk, and we felt obliged to mitigate that, and I feel similarly obliged to mitigate the risk here. One of the ways I am trying to mitigate it is by as strongly as possible discouraging anyone from using the approach that ends in disaster.

    Unfortunately having good intentions, or even accepting lower standards of reliability, does not change the situation: as I explained, it's us and our customers who suffer the disasters, and our reputation that is hit, while sometimes the addon developer responsible isn't even aware of what happened. Regular users expect stuff to just work, and it's our job to ensure that's the case. I would assert that it is also the job of addon developers to help ensure that's the case, and the way they do that is to stick to only the supported features. Encapsulation means that good practices are enforced rather than just hoped for. We know from SDKv1 merely hoping people do the right thing does not prevent disaster.

    Using unsupported features may be fun, creative, helped some people to learn development, or whatever. I'm afraid that doesn't change things: it is not a professional way to develop software and the concept of encapsulation was invented to prevent it, because it inevitably ends in disaster. I care about software quality and ensuring paying customers have a good experience. If addons risk that for customers, I believe it's our job to fix that and do better for our customers. If other software sucks and constantly breaks things, then I aspire to do better with Construct. You can open Construct 2 projects that are well over a decade old and for the most part they should still open and run just fine in Construct 3. That's the kind of compatibility we aspire to (and was impossible to provide with SDKv1, but can now be provided with SDKv2). We don't have a perfect track record on that: there is a tension between making improvements that require breaking changes, or keeping backwards compatibility forever and the software ossifying and being surpassed by competitors. When we make breaking changes we carefully plan them and do what we can to mitigate the damage, including things like long phase-out periods with notifications. However where addons use unsupported features, it is impossible to plan for changes: breakage happens suddenly, unpredictably, and without any documentation or support, so the damage is much worse. Then lots of people blame us anyway, our reputation suffers, and a bunch of people go away thinking the staff at Scirra are both incompetent and irresponsible. If you are asking us to just put up with that so addon developers can have fun playing with internal unsupported parts of Construct, I'm afraid that's just too much to ask.

    For what it's worth, if we did an SDKv3 with editor encapsulation, I believe we could do it preserving backwards compatibility for addons that only use the supported and documented APIs. We should not have to change the APIs themselves like we did with SDKv2. So - like any responsible addon developer should already do - stick to only the supported and documented features, and you'll probably be fine. If you ignore this advice and use unsupported features, most likely only those addons risk breakage with an SDKv3 - and that should not actually be surprising, as such addons risk breakage at any time anyway. So if you use unsupported features and accept it can break permanently at any time, presumably you can just consider new encapsulation features as just another possible cause of that. So perhaps that's fine then?

Ashley's avatar

Ashley

Early Adopter

Member since 21 May, 2007

Twitter
Ashley has 1,762,105 followers

Connect with Ashley

Trophy Case

  • 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
  • Forum Wizard Made 5,000 posts in the forums
  • Forum Unicorn Made 10,000 posts in the forums
  • Forum Mega Brain Made 20,000 posts in the forums
  • x125
    Coach One of your tutorials has over 1,000 readers
  • x74
    Educator One of your tutorials has over 10,000 readers
  • x5
    Teacher One of your tutorials has over 100,000 readers
  • Sensei One of your tutorials has over 1,000,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • RTFM Read the fabulous manual
  • x42
    Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

32/44
How to earn trophies

Blogs