Ashley's Forum Posts

  • Ah, OK. That looks about right, and is a similar pattern we use in Construct itself. It's true there is some documentation missing for this. I've updated the docs to cover SDKInstanceBase AddDOMMessageHandlers and a new page for the DOMHandler base class which has the runtime messaging features. As per our support policy, now these are documented we promise to support them.

  • This is a common misunderstanding of "Wait": it doesn't pause all event execution. (It wouldn't be much use if it did, since it would just hang your game.)

    It really means "schedule the remaining actions and subevents to run after a delay, then carry on". So the loop still completes immediately, and the wait schedules a bunch of actions/subevents to run afterwards.

    However in this case, there are no actions or subevents after the wait, so it schedules to do nothing after a delay.

  • What do you need this for? If it's related to this thread, as per my reply, you may be able to entirely avoid having to use a DOM-side script. If you can, that is definitely preferable, both for you and for us as we don't have more runtime code that risks breaking third-party addons whenever we change it.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • By far the easiest solution is to load the SDK on the runtime side (i.e. in the web worker). If all the SDK does is use fetch/XHR/WebSockets etc., there's no reason it can't run in a worker: all those features are available in workers too. It may be that the SDK only needs a few minor changes, such as replacing window with self or globalThis, and then it may just work. You should ask the Photon developers about it.

    The issue is that I don't know a way for the domSide.js and instance.js to communicate synchronously.

    It's currently impossible, because when the runtime is hosted in a Web Worker, it has to communicate through postMessage which is fundamentally async. You have to design around it. For example instead of directly accessing the "Is connected" state, post messages when the state changes to update a boolean on the runtime side, which can be accessed synchronously. This can end up being very complicated for more advanced state, and especially so when there is a real-time aspect. In Construct that was the case for both Audio and Multiplayer, and both were extremely challenging to implement in worker mode due to the complexity of async message passing and state management. In comparison, the WebSocket plugin was easy to implement since it just uses the same APIs directly in the worker. So it will be far easier to adjust the SDK to support workers, which from a glance, looks like it may be easy, so I'd suggest trying that first.

    • Post link icon

    Please don't repeatedly bump old threads - closing this thread. The suggestion platform is the official place to post feature requests.

  • I tried doing exactly what you did in the video and it worked fine for me.

    Maybe it's something to do with your network configuration, or maybe one of your browser extensions is interfering somehow (I see you have several).

  • The server is returning 404 Not Found for the file box2d.wasm. Check it is uploaded. If it is, check the server MIME types are set up correctly, since some servers return 404 Not Found if they don't have a MIME type set up.

  • The review process only checks existing translations, no changes will be made unless you or another contributor makes them.

    • Post link icon

    When I drag a GIFs in layout,a sprite is made. But when 2 or more GIFs are dragged, construct 3 just "combines" them in same animation frame.

    The problem with dragging multiple animated image files in one go is it's ambiguous - do you want two sprites, one sprite with two animations, or something else?

    You can also import animated images in to the Animations Editor to import all their frames, so I think that's the best approach for handling separate animations.

    I can't wait for it to work with the "Load image from URL" action, with an automatic adjustment / adaptation of the total number of frames relative to the one in the GIF file.

    Please note this is an editor feature and isn't supported in the runtime.

  • You do not have permission to view this post

    • Post link icon

    I think this thread has served its purpose and risks turning in to an argument, so closing.

    The OP issue was filed here and it will be investigated in due course as per our normal procedures.

    • Post link icon

    I mean, the OP of this post is clear as anything - The GIF shows the issue, Sine behaviour + jumpthru on the platform, platform movement on the player.

    I've already set out additional reasons why it works best to post directly to the issue tracker. I'd also point out another user has already filed this specific issue, and they said it was straightforward to do so.

    and eventually get a reply saying "Ah it's complicated" and that's it, no workaround offered or anything.

    Some bugs really are complicated and difficult to work around. Software systems are incredibly complicated and if it looks easy or simple, it's usually because an enormous amount of effort has gone in to managing a great deal of internal complexity. Unfortunately this is just the reality of software development - no developer can guarantee every single problem anyone faces will be solved quickly and easily, it's just not realistic.

    • Post link icon

    I find that pretty objectionable since we've been working super hard on Construct for years. We put in a ton of time and effort to craft what I hope is some really great quality software, and I truly care about making it work smoothly. I hope the number of posts I've made on this forum - over 27,000 now - goes some way to demonstrating the time and effort I spend talking directly to customers, finding out more about what they want from the product, and trying to help them with any problems where possible.

    However, as I said, this is about whether it's possible or impossible to help you. As I said, unfortunately most issues only mentioned in passing are impossible to do anything about, because they are missing essential information.

    We could go and chase down every passing mention of a possible problem on the forum, comments and social media, and 9 times out of 10 it's a waste of time. Doing that would also take up so much of our time, that it would mean cutting new features, skipping optimisation work, and having the product move forward at a much slower pace. Imagine not having the scene-graph feature, no timelines, no mesh distortion or mesh editor, no tween behavior, no Drawing Canvas, and no auto-tiling for tilemaps. That could easily be the case if we did what you ask. Then possibly significant numbers of customers switch over to competing software that does have those features.

    Maybe you would be happy with that - but I doubt the vast majority of our users would want that.

    Meanwhile we have a clear process for filing issues that many customers are perfectly happy to co-operate with, and is pretty good at actually solving problems.

    • Post link icon

    We already deal with thousands of issue reports, and there are mountains of forum posts every day on the forum. If you only mention something on the forum, it will easily be quickly buried and lost. Posting it to the issue tracker helps keep it all organised in one place. The issue tracker also has good tools specific for dealing with issues, such as assigning to a developer, adding tags, tracking releases, and more. All of this ensures we can effectively help you.

    If you post straight to the issue tracker, you'll avoid having to post in two places.

    And as I said before, if you only mention something on the forum and skip the required information, 9 times out of 10 the information is not enough to do anything. It's a great deal of work even just checking every possible thing that might have gone wrong based on passing mentions on comments and forum posts, and most of the time it's a waste of time because we're missing important details. As a small team with limited resources, we just can't afford to waste our time chasing impossible bug reports. So we ask people to go directly to the issue tracker and provide all the requested details, so we don't end up wasting so much time trying to achieve the impossible. Unfortunately I'm not telepathic - we need all the key details to be able to help.

    As I said we've been doing exactly this for years and years, and have gradually refined the process based on what provides the greatest chance of actually solving customer's problems. If you find this process objectionable for any reason, you don't have to file any issues - but then it is much less likely the specific problem you're having will be solved.

  • Thanks for your contributions!

    (Note there is one outstanding term text.tours.beginnersguide.steps.add-bullet-behaviors.pick-behavior-1 due to missing BBcode, but I guess that will be fixed quickly.)

    Once a translation reaches 100% the next steps are it will be shipped in beta releases of Construct, and subsequently the next stable release behind a confirmation prompt, while it undergoes review. Assuming it completes review, the confirmation prompt will be removed and then translation rewards issued. This can take several weeks so please be patient.