Ashley's Forum Posts

  • I would guess these are really GPU driver issues manifesting in semi-random ways, or some other lower-level issue, resulting in mis-attribution of the real problem. It's easy to blame the wrong thing if you haven't fully diagnosed the real cause of the problem.

    As ever the only way we can make progress is if you file a bug report following all the guidelines. We need all that information to have any way of helping.

  • I can only say it should fix it for this particular old WebGL 2 bug. The problem with issues like this where there are vague reports of problems across a scatter of different devices, is it's hard to know whether it's all the same problem or a range of different problems, and if there are multiple problems, then how many devices are affected by any one particular problem. Without a full diagnosis for each device, I can't say how much this will help. I guess we will make the release, you can update your app, and then we'll find out.

    The screenshots of the phone only really deepen the mystery: the "WebView" app version 3.3.5 looks like an unofficial app, and is possibly unrelated. The "Android System WebView" app is the official one, but no version appears to be noted. The best way to check is to display the browser user agent string somewhere in the app (since you can also have multiple webview apps installed this way will clearly identify which one is in use). Note the full text of the "Software update needed" message also includes the user agent string, which is important diagnostic information to pass along if you can (it identifies the specific WebView reason and the exact features it's missing that prevent it running the app). Perhaps some Android manufacturers ship their own unofficial WebView app? I've never heard of that before, so I doubt it, but lots of manufacturers do awful things to their devices. The Android System Webview is an official component of Android and updates independently of Chrome.

  • Construct is designed for building games, so probably isn't the right tool for this type of use.

  • In general cross-domain requests have to be whitelisted by the remote server (sending the Access-Control-Allow-Origin: * header), must be secure (HTTPS), and mobile apps generally have to have any domains they communicate with specified in their configuration otherwise they are blocked by default.

  • There are no known issues with Construct 3 involving opacity or text.

    More likely culprits are that the device's software is out of date (check what the Chrome version is or what the browser UserAgent string says), or that there's a GPU driver bug (a fairly common problem that generally means you're out of luck, because the graphics vendor's software is broken).

  • I'd strongly advise against doing this if at all possible. It will waste the device battery, resulting in poor reviews for your app, and the browser or OS may fully suspend or kill the page anyway if it thinks it's using too many resources in the background, making it ineffective anyway.

    If you want to do something like give the user a reward depending on how long they've been away, just compare the time since they last used the app.

  • The problem isn't the video format. The screenshot showed some other kind of fault, perhaps a GPU driver issue. Changing the video format may not have any effect on that.

  • Just to be clear, don't leave the app actually running - it will waste battery and result in poor reviews for your app. Let the app suspend in the background, and just compare the time it was asleep for when it wakes up again.

  • OK, so I checked our code logs, and last year we had a bad bug with WebGL 2 causing blank screens on Android devices with WebGL 2+. At the time we had some really ugly workaround code. So when the fix in Chrome 75+ came out, we deleted the workaround code. However the fact that there seem to be loads of out-of-date Android WebViews out there - the reasons for which are still a complete mystery to me - means we probably need to keep that workaround indefinitely, so apps on old Android devices don't still suffer the bug.

    This probably explains at least some of the "blank screen" cases, and everything adds up with the Samsung Note 3 SN900: a Mali GPU device that had an issue with v71 which was fixed in v75 and works in v80.

    To make sure that's fixed, I've added in (slightly cleaner) workaround code for the next stable release: any Android device using Chrome v75 or older will disable WebGL 2. This shouldn't affect any device with up-to-date software, but will stop devices with out-of-date software running in to the WebGL 2 bug.

    If you see a "Software update needed" message, that means the WebView is really old (3 years old or more). As to why that happens... 🤷‍♂️ The message does include instructions to update though, which should fix it.

    To downgrade the project to the C2 runtime you may well need to make a range of changes to your project. You'll have change everything it identified if you want to take that route.

    WebView 3.3.5.

    No such WebView version ever existed, so this must be a mistake. Do you know what the correct version is? The Huawei Y9 2019 has a Mali GPU as well, so assuming its WebView version is older than 75, could be the same issue if you saw a blank screen, but since we're talking about multiple issues here, you need to make sure you're clear about how it's not working. Did you see the "Software update needed" screen, a blank screen, or something else?

  • We're going in circles here. If you set too low a latency, then you hear audio glitches instead, which is worse. So that is not a solution; it's something that works sometimes, only by chance.

    As far as I gather, the situation is that there are three classes of devices:

    1) Devices supporting low-latency audio and they say they support low-latency audio. These work fine.

    2) Devices supporting low-latency audio that don't say they support low-latency audio. These have high latency, but could have low latency if the latency is manually reduced.

    3) Devices which don't support low-latency audio and don't say they support low-latency audio. These have high latency and there is nothing that can be done about it. Manually reducing the latency will result in audio glitches.

    The only opportunity for improvement is with type 2. However these devices are lying about their capabilities, and that's the real root cause of the problem here. How do you tell them apart from type 3? I don't see any easy way to do that at all. It seems like a really hard problem. Both type 2 and type 3 say they don't support low-latency audio, and if you mix them up, type 3 will start having audio glitches.

    You can just leave it up to the user to configure the latency themselves, but most users won't bother, and they can also misconfigure it themselves, such as taking a type 1 device that works fine, and then breaking it.

    I don't see any good path to take here: the real problem is Android manufacturers misconfiguring their devices. But it is too late for devices already released. And adding user-configurable settings results in equal or worse problems.

    And even if the issue for type 2 devices is somehow fixed, there will still be type 3 devices out there with high latency, and there's nothing that can be done for them. So Android devices with high latency will continue to exist, even if the Chrome issue is fixed.

  • There are already several, take a look in the Start Page.

  • 1. Yes, the editor works offline.

    2. The addon developer needs to have published an update for C3. Most actively developed addons should have already been ported. If the addon is no longer actively developed, unfortunately this is one of the possible consequencies of relying on third parties to support your game. There may well be an alternative addon available though, or the many new features in C3 may provide built-in support for it instead.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Hmm, just thinking - the device you updated from v71 to v80 and started working - what model device is that?

    If it has a Mali GPU, this might be an old WebGL 2 bug that was fixed, but might still be affecting old devices with out-of-date software.

  • I think in the short term, the pragmatic thing to do if you just need it to work now is to downgrade the project to the C2 runtime and publish with that. It supports older browsers so should keep working even on devices that are missing years of software updates. The C2 runtime is scheduled to be removed in July 2021, but you can keep using it anyway for the time being.

    In the mean time I do want to figure out what is going on here. It's possible there's a problem with Construct, but it could equally be something else like a driver bug on certain devices. I think the best next step to diagnose the problem would be to find an old device, connect it up with USB debugging, and check for any errors being logged to the browser console. The tutorial checking for errors in browsers has some info on that. It could also involve several different problems, so you may need to repeat this a few times and see what's going on in each case.

  • If you think it's a bug please file an issue following all the guidelines - we need all that information to be able to help: https://github.com/Scirra/Construct-3-bugs