Ashley's Forum Posts

  • I thought PWAs hid the back button if you use the standalone display mode. So it's not clear to me what you're actually doing.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It seems positioned audio is to blame. I had the thought, then googled to see if anything came up, and found this C3 bug report.

    That bug report refers only to Chrome and also only appeared to happen with unlimited framerate mode, which you shouldn't be publishing an app with, and also has different consequences to the problem you previously described. So my best guess is that is not related to your problem.

    BTW AsinineGames - unless you describe the particular problem you are having, it's also not clear if you are experiencing the same issue as described in this thread. This often happens with forum threads, where lots of people pile in with their own questions and issues, which are often unrelated, and it becomes so confusing it's impossible to make any progress on the problem. So to all involved, I would advise that you keep focused on the originally described problem, and be thorough in checking what is really relevant or not, otherwise you'll all be going on a wild goose chase and never get anywhere. Again, this is why we have bug report guidelines, to try to avoid wasting time like that.

  • I would avoid speculating on what causes issues until it is proven. Bugs are often very complicated and falsely correlate with irrelevant things.

    Given that, I'm afraid it's not clear what the problem could be. This is pretty much always the case with forum posts that just describe problems, because there's too little evidence to work with. This is exactly the thing our bug report guidelines are aimed at solving, by requiring that you provide enough information that we can actually help, so I would advise to follow those and file an issue accordingly if you think we should investigate this further. However if something works in iOS 14.5 and is broken in iOS 14.6, that is very good evidence that the iOS update broke it, since nothing else has changed. In that case, it's probably better to just get in touch with Apple directly.

  • FWIW I just tried exporting Space Blaster to iOS and running it via Xcode on an iPhone with iOS 14.6. Audio playback worked just fine. So there doesn't seem to be any kind of fundamental issue with audio playback on iOS 14.6, at least as far as I can tell from that test. Xcode did log a message about "Required client entitlement is missing", but it did not seem to affect anything, and all audio playback worked fine regardless. Frankly I don't know what that message means or why it would appear, but it doesn't seem to cause any problem in my test.

  • I'm aware only apple/webkit can fix this bug, but presume you'd have some inkling as to the cause of this

    I'm afraid I have no inkling whatsoever. Apple regularly break things with iOS updates, and they often break in bizarre and unpredictable ways. It's their code which is broken, and I can't predict how or why it's gone wrong.

    I'd expect Scirra to have an existing relationship with iOS support built over the years you've been in operation, and a more efficient way of contacting apple than I have.

    I'm afraid no such relationship exists at all. I'd love to have such a close relationship with Apple. But they are an incredibly opaque company who rarely seem to talk to anyone on the outside at all.

    I shouldn't have to point out that this is potentially affecting all games published on your engine

    It's not yet clear that is actually the case. If only games that are 5 years old are broken, it's possible it was something we already fixed a long time ago, and thus the impact should be pretty limited. If all games are affected, we could potentially have a big problem, but even then what can we do? We can't fix iOS, only Apple can. It's often extremely difficult to find workarounds as we have to rely on sheer guesswork. If you can reproduce the problem in a new Construct 3 project, that would signify a wider problem. If you then share that project I could try testing this further myself, but once again, I can't guarantee that anything can be done until Apple fix the problem.

  • By default, audio should automatically stop when the page is hidden or closed.

    If it doesn't, please file a bug.

  • I'm not aware of any intentional change regarding how audio playback works on iOS. If an iOS update breaks something, you need to report it to Apple - we can't fix bugs in iOS, only Apple can.

  • It looks like some kind of bug when using the C2 runtime. But I'm not sure there's any point in fixing it - we're removing it in about a month, as per the sunsetting Construct 2 plan. So you should upgrade to the C3 runtime as soon as possible anyway.

  • WebM Opus is the only audio file format that is guaranteed to play on all platforms. If you let the user choose their own audio file and the platform doesn't support that format, it won't work.

  • As I said, tab crashes are browser bugs. I'm afraid I simply cannot speculate because we aren't responsible for browser development - such issues need to be filed with the browser makers and only they can deal with them.

  • As stated in the documentation, do not use any undocumented features. I can't stress this enough - it's a really terrible thing for support and compatibility which pretty much always ends in disaster for everybody, but it still seems to be hard to keep getting this message across. Undocumented features are not guaranteed to keep working as they are internal details of the engine and are subject to change at any time. If you use them, your code could break at any time and we won't offer support if that happens either. The official documentation also stresses this, which also points out:

    The only reason these can be found is because the way JavaScript works makes it difficult to hide them.

    Just make your own, especially as these functions are really simple. For example distanceTo is just Math.hypot(x2 - x1, y2 - y1), angleTo is just Math.atan2(y2 - y1, x2 - x1), toDegrees is x * 180 / Math.PI... I'm sure you can find many more equivalents with a quick web search.

  • The scripting reference covers what you can access directly from JavaScript, e.g. IRuntime. Some system expressions already have equivalents, which may be on different interfaces (e.g. how the layout width and height is part of ILayout), rather than in one big list, as is appropriate for a JavaScript API. Others are straightforward to implement with built-in JavaScript features or your own small functions. Some others may not be supported yet. So the answer depends on the specific system expressions you intend to use.

  • It's probably just a historical artefact of the original codebase from years ago. I think it was also probably not covered because skipping frames implies wasting memory, since if you have loaded frames in to memory that aren't displayed, then it would be better to reduce the number of animation frames. I can see how it's still problematic if you want a dynamic animation speed that varies widely, though.

    It's also difficult to change things like this without breaking existing projects, since for example if there are lots of projects out there that set an animation speed to 999 in events and just use that for a kind of maximum speed playback, then changing it to do frame-skipping will change how those projects work, and possibly break them.

    You should be able to work around it by controlling the animation in events and using 'Set animation frame'.

  • If you want to customise the loading screen, use a loader layout.

  • Restore a backup. If you don't have backups, this is a lesson on why backups are important for any kind of digital work you do, with any software.

    I can try to restore the project if you share it, but corrupt projects are not always recoverable. For example if there was hardware failure, it's possible the entire file has been wiped with zeroes and so nothing can be recovered at all.