Ashley's Forum Posts

  • Yes, IIRC the bug from last year was that you could get a blank screen on Android devices with a Mali GPU that used WebGL 2. Downgrading to WebGL 1 worked around it.

    • Post link icon

    If you have an issue with Construct 3 please report it following all the guidelines - we need all that information to be able to help: https://github.com/Scirra/Construct-3-bugs

    Every release we normally fix several bugs, so Construct 3's reliability is improving all the time. It's possible in some cases there are regressions, but we normally fix these before they reach the next stable release.

  • This warning message appears when you publish an APK instead of an Android App Bundle. The latest version of C3 already supports exporting an Android App Bundle, and this will roll out to all users in the next week or two.

    It doesn't make any significant difference to the optimization of your app, though. So either way, you can just ignore the warning.

  • Uhh, good point. I guess you'd have to do USB debugging instead on the device. It can be tough to get all the information we need to be able to diagnose issues, but it's hard to help without it. Anyway let's see how the latest update affects things, it might be that it fixes most of the problems.

  • Any idea when the update will be published?

    Hopefully Monday.

    > The best way to check is to display the browser user agent string somewhere in the app

    How can I ask him to do that?

    I meant that you modify your project to display the user agent string somewhere. Maybe the about/credits screen.

  • 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.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • 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.