question

brendan avatar image
brendan asked

Is player allowed to reset game progress

Helene
started a topic on Wed, 09 September 2015 at 11:38 PM

Hi, is there a way to handle the following scenario:

  1. Player installs the game, plays for a while, than uninstalls it. Without setting username\password for playfab account.

  2. Player installs game again and is being asked to select if he wants to start a new game or continue the previous one.

  3. Player selects to start a new game. That obviously requires to wipe out userdata.

Currently only admin API has functionality to reset userdata and statistics, and for the described scenario it is impossible anyway, because username and password are required to reset userdata. Also admin API is not supposed to be used by clients, as I take it.

The solution is probably to unlink device from the current playfab account and re-creating another one, though it has its drawbacks (leaving a ghost account that is not linked to anything).

Another option is to request all userdata (that is allowed to be modified by client) and delete it.Unfortunately, this doesn't affect statistics.

So, is it a global policy of playfab API that user cannot reset its account in a totally legal way?

10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

·
brendan avatar image
brendan answered

4 Comments
Brendan Vanous said on Thu, 10 September 2015 at 10:31 PM

Hi Helene,

Presumably, you're talking about a scenario in which the player is using an iOS device, and the sign-in is using the Device ID? In that case, yes, when all your apps are uninstalled, the next time any app of yours is installed a new iOS Device ID is generated, specific to your developer account (so all your apps get the same ID). The account that was made with the old Device ID is effectively "lost" if you never associated it with another login mechanism, like Facebook or username/password.

However, the concept of "wiping data" in that context is irrelevant. If the player cannot sign into the previous account, that user cannot affect that account in any way.

But if you're talking about a scenario where the user can sign back into the same account (non-iOS Device ID, or any other sign-in mechanism), then yes, you could simply reset all the User Data you track for your title, and set leaderboard values to 0 (or the equivalent for your game). If the issue is more complex, could you describe the problem you're attempting to solve more fully?

Also, you are correct that the Admin (and Server/Matchmaking) APIs must never be shipped in a client application. To do so, you would have to include the SecretKey for your title. Doing that would be effectively handing the keys to your title to anyone even moderately technical, as they could extract your SecretKey, and then use it to make any Admin call they wanted to on your title.

Brendan


Helene said on Tue, 15 September 2015 at 12:05 AM

Hi Brendan,

Yes, I'm talking about iOS and android devices. Thanks for the clarifications. But does Device ID (we use IDFA) on iOS device always change? As far as I remember it may stay the same if user hasn't reset it manually. It doesn't seem to change when testing (on android as well). That's why I want to support starting game from scratch if user chooses so.

I figured out a way to delete all user data and statistics, though there is a little overhead in deleting user data. In my case, it has a number of game entities, for example, monsters. Data keys are called "mon_data_1", "mon_data_2" etc. This index doesn't reset to avoid occasional overriding. Monsters can be sold and removed from data. After some time it may become something like "mon_data_200", "mon_data_250" etc. Now in the situation of re-installing an app and selecting to restart game from scratch, those key names are not stored locally anymore, and have to be retrieved from server to compose a full delete request via UpdateUserData. I could include all possible keys with indices between 0 and max number, but this way request might grow rather big, considering that there is no limit on this index.

For now I solved the issue by retrieving keys from server, though it would be useful to have a client call that simply deletes all user data (not similar to admin API account reset, but only affecting custom user data).


Brendan Vanous said on Tue, 15 September 2015 at 1:07 AM

Hi again,

I would have to urge caution in using the IDFA to identify users. It will, indeed, stay the same across installs (unlike the regular Device ID), but it is only allowable for apps which have a specific need for it (for advertising purposes, generally). Apple were very clear in making this update that the changing Device ID across installs was intentional, and I am aware of titles which have been failed out of certification for using IDFA without valid reason.

Thanks for your thoughts on the user data reset - I'll create a backlog item, so that we discuss this internally and think through any potential issues (as well as make sure we track on anyone else who asks for it in future, since we prioritize in part on the things our community asks us for the most). But I should point out that the query is not actually unlimited. As stated in our Terms of Service, we do limit calls to a reasonable rate to ensure we can keep the service affordable for everyone. To date, no one has done anything so abusive that we've had to throttle their title, but you do need to make sure that queries to the service aren't asking for more than 1 MB of total data in a single call (apart from the Content service, which is designed for CDN usage).

Brendan


Helene said on Thu, 17 September 2015 at 11:26 PM

We are using IDFA for advertisement purposes as well, as far as I know using IDFA is fine if valid reasons for using it are provided during submission. But thanks for the warning, I'll double check.

1 Mb limit is fine for our game, we limit the total current count of game entities that player can have.

10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.