Artpunk's Recent Forum Activity

  • 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

  • Try Construct 3

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

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

  • I think its the case that objects in a container have the same IID. So you can use that for picking to differentiate between containers.

  • Oh yeah, I can confirm 'On Any Purchase Success' triggers after 'On Product Owned' following store registration.

    I just checked that. Im testing iAPs right now so it was possible to throw in a check.

    On Any Purchase Success triggers for each non-consumable product owned.

  • After store has been successfully registered non-consumable products will initially show as being 'Available' before resolving to being shown as 'Owned'. When they resolve as being 'Owned' the conditions On Product OWNED are supposed to trigger. Not On Purchase Success.

    On Purchase Success should trigger after a purchase is successfully completed for both consumables and consumables.

Artpunk's avatar

Artpunk

Member since 10 Apr, 2014

Twitter
Artpunk has 5 followers

Trophy Case

  • 10-Year Club
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • RTFM Read the fabulous manual
  • Email Verified

Progress

14/44
How to earn trophies