Artpunk's Forum Posts

  • You can use a free Google Sites page to host your privacy policy when its time to publish.

  • Just a heads up, make sure you do any testing in r247+, since we fixed a separate issue potentially causing jank in the WebView in that release.

    After updating to the latest beta (r248), Im seeing a clear improvement to jankiness in my game when exported as an Android APK. I wouldn't say janking has gone completely, but it's definitely improved.

    I'll have to do some more testing, but it looks like I might be able to release on Android afterall instead of just focusing on iOS!!!!

    Pretty happy actually!

    Ashley ..the changes you made to WebView scheduling in r247, can they be pushed any further? It seems like youve discovered the issue thats been causing janking in Android APKs all this time. Can any more improvements be made in that area?

  • Cascade Games

    For me, my iOS device is running construct games fine. I don’t notice any difference between chrome and the Cordova app.

    I'm using iPhone 11. It would be more interesting if anyone has an iPhone 6 or 7 that could be used for testing.

    I test with an iPhone7 and I can say my game which shows janking as an Android APK runs very smoothly on my iPhone7.

  • cesisco Hey man you got a response on crbugs. They are asking for an example apk that shows janking on Pixel devices.

    bugs.chromium.org/p/chromium/issues/detail

    I was going to suggest uploading your test APK to the chromium forum, but heres the thing. I just tested your APK on my Pixel 4a and it runs smoothly!

    I dont see any janking in your test project actually.

  • CascadeGames

    Well you could test that. Why dont you re-export your old game from the latest version of C3 and compare its performance to the previously exported app?

    See if there is a difference.

  • Hope for the future could come from:

    -The underlying issue with WebView on Android is fixed. Ashley has stated the best way to get this addressed would be to post bug reports on crbug.com

    -If Webworker mode was supported on Android APK in future that might help this issue?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Hi cesisco Ive been down this rabbit hole as well.

    I think the general theory is there is a bug with WebView on Android.

    A game can play smoothly with zero jank on Chrome for Android but when exported as an Android APK it can show jankiness. This is true even when the APK is running at 60FPS with low cpu and memory usage.

    This is the case with my game. When exported and run as an APK on Android it plays at a constant 60FPS, cpu ~20-25%, mem ~49MB (running on a Pixel4a, so a modern device)... but still shows jankiness when the player jumps around the screen.

    In addition, when the game is exported for iOS it runs smoothly with no jank on an iPhone7 (a dated iPhone device).

    If possible you could try your test project on iOS to confirm it plays well on that platform.

    I have basically resigned myself to publishing my current project only on iOS until this issue is resolved on Android.

    ---

    Bug reports about this issue on crbug.com:

    bugs.chromium.org/p/chromium/issues/detail

    bugs.chromium.org/p/chromium/issues/detail

  • You do not have permission to view this post

  • We already pay a subscription. Why should we have to pay an additional fee?

    For the life of me I can't understand why Scirra don't afford a higher priority to the MobileAds and iAP plugins. They have to be two of the most used C3 plugins. They are one of the few proven methods C3 devs can use to monetize their games. And yet they are allowed to become outdated and Scirra don't bother to implement all the available features either (subscriptions etc).. why are they not given higher priority?

  • You cld use 'Every X seconds' or use a timer if you wanted the enemy to fire a single projectile periodically.

  • No problem. It used to be possible to use sub-addressing for your sandbox accounts.

    So you could make a dedicated email address like:

    sandboxale@gmail.com

    Then you could use 'sub-addresses' like this:

    sandbox+001ale@gmail.com

    sandbox+002ale@gmail.com

    ...

    Any email send to a sub-address goes to the parent email acc, while Sandbox would consider each sub-address to be a unique email, and allow you to set up a fresh Sandbox acc. This meant you didnt have to go setting up a dozen different email accounts, just one.

    But Apple no longer supports sub-addressing which sucks. So the trick you can use now involves putting a period in your email address.

    So make an email account like:

    sandbox.0123456789wwr@gmail.com

    gmail ignores the position of the period, but Apple considers the email address to be unique if the period is repositioned.

    So you can set up separate sandbox accounts with:

    sandbox.0123456789wwr@gmail.com

    sandbox0.123456789wwr@gmail.com

    sandbox01.23456789wwr@gmail.com

    While an email sent to any of those addresses will always go to sandbox.0123456789wwr@gmail.com.

    Its less elegant than sub-addressing but it works, and saves you having to find a dozen different email addresses to do your sandbox testing.

  • You should just toggle off Test-Mode in MobileAdvert plugin properties, then assuming you're using real ad-unit IDs,not test ad-unit IDs then ads should show in the app. If you had test ads working then ur events must be right.

    Maybe it just takes a few days for ads to start showing. Apparently it can take up to a week before ads start to show on iOS.

  • Are you talking about setting up Beta testing on Google Play Console? In that case I think you'd be uploading a signed APK and adding the people as beta testers.. then they receive a link to download it.

    Or do you mean you just want to send your game to a mate or something? In that case a debug APK would work.

    Unsigned apks are only used if youre going to sign manually in Android Studio.

  • If you're testing iAPs using Storekit with Xcode you can retest non-consumable purchases. If you're testing iAPs using Sandbox you can't retest non-consumables. Once you bought it that sandbox acc will always have it. To retest in Sandbox you have to add additional Sandbox accounts.

    When you're testing iAPs on iOS the idea is you use Storekit in Xcode to iron out the bugs, you can retest, and do it all locally with no need to set up iAPs in AppStore Connect etc. Then once you've got them working smoothly, you transition to sandbox testing as that gives more of a real world test environment, pulling iAP info from AppStore Connect, permanent non-consumables etc.

    See here:

    developer.apple.com/documentation/storekit/in-app_purchase/testing_at_all_stages_of_development_with_xcode_and_sandbox

  • I just went down this rabbit hole of trying to check internet connection on mobile.

    The Browser Object conditions dont work to check internet connection on Android.

    'Is Online', 'On Went Online' and 'On Went Offline' all fail.

    The condition 'Is Online' works at start of app only, but fails if internet connection is lost or regained while app is open.

    The PlatformInfo plugin has some relevent conditions and actions.

    I found the condition 'PlatformInfo > On Network Changed' DOES reliably trigger on Android when your connection is lost and regained. But It doesnt tell you if you have connectivity or not, just that connection changed. And I couldnt get any of the other PlatformInfo conditions to reliably tell me if I had connectivity.

    Chadori has a plugin in his collection called MobileNetwork which is designed to return the internet connection status for Android and iOS, but Chadori says it currently isnt working properly because the underlying Cordova plugin on which MobileNetwork relies has a bug... so his plugin is currently unreliable too.

    ---

    There is good discussion in these two threads about this topic.

    construct.net/en/forum/construct-3/how-do-i-8/check-start-internet-off-146515

    construct.net/en/forum/construct-2/how-do-i-18/check-internet-connection-146516

    The second thread discusses how you can test for internet connectivity by sending an AJAX request to a website that is always on. That method seemed to work for many people in that thread, but for me it always returned true, even when I had no connection. I have no idea why, but anyway it might work for you.

    ---

    Ashley has been queried about the Browser Object failing to detect internet connection and his response is:

    There's probably no point checking if you're online anyway. Just go ahead and do whatever networking you need to do, and if that fails, you're probably offline. Detecting "is online" is tricky since it's hard to class intermittent connections, and may result in situations like telling the user they're offline when it would actually work.

    See these two links:

    github.com/Scirra/Construct-3-bugs/issues/3087

    construct.net/en/forum/construct-3/general-discussion-7/mobile-device-detect-internet-150495

    ---

    So I suppose it comes down to what you are trying to achieve. Ashley's suggests dont bother attempting to check for internet. Just do your network stuff and if it fails assume no connectivity.

    I followed this advice setting up events for the MobileAdvert and MobileIAP plugins.

    In Mobile Advert the condition 'On Video Fails to Load' works, so when it triggers I assume no internet connectivity and show an error screen instructing the user to check their connection.

    In MobileIAP theres a difference between Android and iOS. On Android the MobileiAP plugin throws up its own popup window saying 'error' if theres no connection. This is perfect, you can rely on that.

    On iOS that doesnt happen so I made my own system that relies of the conditions 'Is Product Available' and 'On any Purchase Failed' to indicate if the device has internet.

    Its far from ideal doing it this way, and it feels totally hacky but it works I guess.