General User/Player Management

I have a question that is more architecture/logistics-oriented than coding-oriented in terms of player management.

BACKGROUND:

I have a game which can be played as a single user or in a head-to-head competition. The single player version is free with ads. To play head-to-head users must purchase a paid version of the app.

High scores and gameplay features are handled by my own backend server.

QUESTION(S):

When a new user first downloads the free app, the app generates a unique key for this user/installation. The user can then play as many times as they like, trying to beat their own personal best score. For every game they finish, the app sends the unique ID, the new score, and various game stats to the server where they are recorded.

If the solo user wishes to see their standings on the leaderboards for that day, they need to create an account, either via a standard email registration or using Facebook. If the user wishes to play head-to-head against another user and has purchased the paid version of the app, they must also register using one of the aforementioned methods.

Once a registration is created (or a Facebook User ID is obtained), the app communicates back to the server, tying the newly created account with all previous games sent with the original unique ID. We then have the newly registered users tied together with all of their historical gameplay information.

So my questions:

  1. is this an acceptable (or standard) way to accomplish a registration while keeping the info gathered before the user registered?
  2. I figure that if the user has played (or will play) on more than one device, no problem. Once they login to their existing account on the second (or third, etc.) device I’ll just associate that new unique ID with their other unique ID(s) and combine their history. Is there any drawback to this?
  3. Can you foresee problems arising with this that I am perhaps not yet realizing?
  4. Is there a better way? Or something I am not thinking of?

Thanks in advance for any feedback/insight!

I think “Google Play” would be more suitable to link accounts and you should probably hash the key

Thanks for your feedback. Is Google Play pertinent to both iOS and Android users?  Also, due to the nature of this game I still need to have our own server for certain aspects of the real-time competition. If I opt for Google Play, can I still somehow retrieve the user’s information (e.g. email address? unique player ID of some sort?)

There is a Google Play app for both IOS/Android and more infos can be found here: https://support.google.com/android/answer/2840875?hl=en 

Unfortunately it appears that Google Play Game Services are not for iOS apps (“Google Play games services for iOS is deprecated, and is not likely to function as expected. Do not use Google Play games services for iOS in new apps. See the deprecation announcement blog post for more details.” from https://developers.google.com/games/services/ios/quickstart)

In any event, thanks for your input.  :slight_smile:

Google is not going to support iOS going forward. Future SDK’s will not include iOS support.

Rob

Thanks Rob. Just curious if you have any feedback on my original query?

There are many different valid ways to do this.  Maybe look at Coronium Core:  You can use Firebase’s Database for things like this.  PlayFab and GameSparks should also support what you’re trying to do and there are plugins for all of them.

Rob

Thanks Rob and theJoshua974. Much appreciated.

I understand there are other ways to do this. :)   I was asking about my specific scenarios for various reasons specific to my business and to this particular game.

I’m moving ahead with the original plan as outlined above, but if you (or anyone else) can punch holes in it I’d appreciate hearing about it.

Have a great day/evening!

I think “Google Play” would be more suitable to link accounts and you should probably hash the key

Thanks for your feedback. Is Google Play pertinent to both iOS and Android users?  Also, due to the nature of this game I still need to have our own server for certain aspects of the real-time competition. If I opt for Google Play, can I still somehow retrieve the user’s information (e.g. email address? unique player ID of some sort?)

There is a Google Play app for both IOS/Android and more infos can be found here: https://support.google.com/android/answer/2840875?hl=en 

Unfortunately it appears that Google Play Game Services are not for iOS apps (“Google Play games services for iOS is deprecated, and is not likely to function as expected. Do not use Google Play games services for iOS in new apps. See the deprecation announcement blog post for more details.” from https://developers.google.com/games/services/ios/quickstart)

In any event, thanks for your input.  :slight_smile:

Google is not going to support iOS going forward. Future SDK’s will not include iOS support.

Rob

Thanks Rob. Just curious if you have any feedback on my original query?

There are many different valid ways to do this.  Maybe look at Coronium Core:  You can use Firebase’s Database for things like this.  PlayFab and GameSparks should also support what you’re trying to do and there are plugins for all of them.

Rob

Thanks Rob and theJoshua974. Much appreciated.

I understand there are other ways to do this. :)   I was asking about my specific scenarios for various reasons specific to my business and to this particular game.

I’m moving ahead with the original plan as outlined above, but if you (or anyone else) can punch holes in it I’d appreciate hearing about it.

Have a great day/evening!