Google Play Game Services is Slow

  • Hi Nepeo

    I have Google Play Game Services working in one of my Construct 3 games thanks to your plugin. It signs the user in automatically perfectly fine. It saves hi scores to Leaderboards and unlocks Achievements. I am able to load hi score and display in the game. But all of these events are very slow. Especially if the user gets a new hi score. It can take anywhere form a few seconds to 30 seconds to load the hi score in the game, load the Leaderboard on press of a button, and load Achievements on press of a button.

    Is this normal behavior? Is this because most requests from the plugin are asynchronous or non-immediate?

    Would you mind trying my game to let me know if this is expected behavior?

    https://play.google.com/store/apps/deta ... .runnybutt

    Assuming you've never played this game, your first score will be your highest. Then beat it and try to load the leaderboard and you'll notice it doesn't load immediately. If you play again before it loads, the leaderboard will load in the middle of gameplay.

    Please let me know what you think and if there is any way to speed things up.

  • Hi KENYONB good to see that it's all working, your game's a good laugh too!

    The loading times seemed kinda variable, sometimes it wasn't too bad, other times it took about 15 seconds or something to load the achievements list. Leaderboards seemed to be faster, not really sure why. We're not doing anything complicated in the plugin, it just calls through to the native API that Google provide. So any areas which are could be slow are in Google's hands, so I can't do much about it.

    I vaguely recall reading a post online from a developer that said after they had reached a certain number of users it began to work a lot faster. Given the amount of content I had to read online while working out how the API works I could have imagined it, and it's only hearsay at best. But it wouldn't surprise me if apps that are still in testing, have only recently been released or have low user numbers might use a slow path on the Google servers. Although saying that, I just tried to open the Google Play Games App on my phone and it must have taken nearly 2 minutes... This is on a Pixel 2 XL, which is supposed to be the flagship for Android software.

    My best advice is to give it a couple of weeks and see if the speed improves. In the mean time I was thinking if you made the buttons react to being pressed it might imply better that it's Google Play being slow, not the game.

    The google standard animation for this sort of thing are changing the size ( and shadow if you have one ) of a button to make it look like it's rising from the screen. Another is ripples coming away from the button, but I'm not sure how easy they would be to do in construct.

    One more thing that might interest you, not sure if you know yet or not. About a week ago I fixed a bug that was preventing the Google Play popups from appearing over your game. The ones that show you "Achievement unlocked" or "Welcome back". The latest version of the plugin should include that fix.

  • Nepeo thanks for checking out the Google Play Services behaviors in my game and for the detailed reply. And glad you can appreciate the potty humor. (Apple sure didn't because they rejected the game. lol)

    Interesting theory about leaderboard/achievement loading slowly due to lack of players. THat could be true with this game since there aren't many downloads.

    Good idea about having the buttons do something to let the user know it has been pressed, and that we're "waiting on Google". Maybe a small pop up message/dialog box. I'll have to do some tests... but is there an event I can use to trigger when to hide the pop up/dialog?

    And no, I wasn't aware you added the "welcome back" and "achievement unlocked" pop ups. That was my next request. Awesome! Going to test...

    ...I just rebuilt my game with the latest release and the "welcome back" pop up displayed on login. Still need to confirm if the achievement shows (It might take a while to unlock the next achievement since I've unlocked a few already).

    Again, really happy that everything works and that you added the new features to the plugin. Great work!

  • Nepeo thanks for checking out the Google Play Services behaviors in my game and for the detailed reply. And glad you can appreciate the potty humor. (Apple sure didn't because they rejected the game. lol)

    Interesting theory about leaderboard/achievement loading slowly due to lack of players. THat could be true with this game since there aren't many downloads.

    Good idea about having the buttons do something to let the user know it has been pressed, and that we're "waiting on Google". Maybe a small pop up message/dialog box. I'll have to do some tests... but is there an event I can use to trigger when to hide the pop up/dialog?

    And no, I wasn't aware you added the "welcome back" and "achievement unlocked" pop ups. That was my next request. Awesome! Going to test...

    ...I just rebuilt my game with the latest release and the "welcome back" pop up displayed on login. Still need to confirm if the achievement shows (It might take a while to unlock the next achievement since I've unlocked a few already).

    Again, really happy that everything works and that you added the new features to the plugin. Great work!

    Nepeo I have the button when pressed showing a looping animation that I want to stop when the Leaderboard is loaded, but I dont see any event for something like "On Leaderboard Displayed". Is there a way to achieve this? Or is this an event that would need to be added to the plugin?

    And I'd like to do the same for when the Achievements are loaded- stop the animation.

    Please let me know if this is currently possibly.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I'm afraid at the moment we don't have an event for when the native dialogs are shown, only an error if they fail.

    I could add one in, but it would be from when we call "show" on the native method not when it's actually shown. So I'm not sure what sort of delay we're talking about.

    An alternative is that I might be able to add one for when the dialog is closed. I'm thinking that it doesn't matter if the animation is running when the user can't see it, I expect the webview is paused anyway. So as long as it goes away when the user returns the game, all is well.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)