pR0Ps / hexciter

A hexagon-based arcade-puzzle game
http://broxxar.itch.io/hexciter
8 stars 2 forks source link

Highscores not being submitted #69

Open Broxxar opened 10 years ago

Broxxar commented 10 years ago

See this commit.

Several users reported that their highscore did not appear on the leaderboards. The users were already on the leaderboards and had published scores before. They also checked the leaderboards immediately after their games and were able to view them successfully. This means they had to have at least done a successful offline login to be able to see the boards.

I think we ought to just nuke auto login. There's really no scenario where you wouldn't want to attempt logging in, because this also includes the offline authentication.

pR0Ps commented 10 years ago

If we do that though we risk alienating people who don't use G+ and GPGS. It's not so bad on iOS since (as far as I know) most people use GC, but G+ and GPGS are newer and not as widely used.

pR0Ps commented 10 years ago

Ah, I just thought about it and this is what the issue is: disabling auto-login is done when the authentication fails, the reasoning being that the player cancelled the login. However, the first time the player logs in when they don't have internet (and their offline login cache has expired, requiring a new login), the login will fail because it can't authenticate. This will disable the auto-login. Next time they open the game it won't even try to sign into the service.

My guess is that they weren't authenticated when they got the score, but it silently auto-authenticated when they clicked the leaderboards before showing them.

Idea: Setting something in the SocialManager when they get the score that automatically submits when they login would help. That way when they get the score offline it would set the variable, even if they weren't logged in. The when they did log in to see their score, it would automatically submit the score behind the scenes before loading the leaderboards. It also wouldn't mess up the /today/his week/all time because it would only be submitting scores during the same session.

This wouldn't solve the main issue though, and if users didn't check the leaderboards after getting the score it still wouldn't be posted.

Idea: Something in the options menu like "enable GPGS/GC" (checked by default). If that's set, it always tries to login (regardless of the outcome). If not, it doesn't. Since the SocialManager persists across the entire session, the game will only try to login once instead of every time the menu loaded like before.

Just spitballing here, let me know if you have some other ideas.