1
\$\begingroup\$

I'm writing cross platform game that is requested to store player progress across all their devices. I'm not talking about implementation details, but overall picture;

What are the patterns for preserving player progress in the least intrusive/distruptive way?

  • Logging in requires players to make account or share their facebook/gmail address; It is strong entry-obstacle when someone wants "just to try the thing up"
  • I can make account for player after they played a bit... This way, the user already tried the game and if he like to have his progress saved, they can make an account now. If not - the progress will be saved only locally
  • I can experiment with some information taken directly from device (when playing from mobile, for example); I believe I can easily access their gmail on Android, and use it for account merging later on
  • I can give them codes that unlock their progress. They can type them on different machines
  • They can manually move save file; I don't need to keep it online
  • They can move save file via cloud provider (like Dropbox/Skybox/GoogleDrive)
  • Anything else...?
\$\endgroup\$
  • \$\begingroup\$ It sounds like you understand your options and their respective strengths and weaknesses, and that none are perfect & frictionless. Do you have a favoured option based on your planning thus far? Is there a particular downside that you're looking for solutions to solve? \$\endgroup\$ – DMGregory May 13 '18 at 14:08
  • \$\begingroup\$ @DMGregory Right now I am in the middle of gathering options; I was wondering if I overlook anything, thus this question was posted \$\endgroup\$ – PiotrK May 13 '18 at 14:16
  • \$\begingroup\$ What sort of devices are you targeting? Desktop and/or mobile? iOS and/or Android? \$\endgroup\$ – Ed Marty May 13 '18 at 14:31
  • \$\begingroup\$ The trouble is "name everything I haven't thought of" is very broad. How do we evaluate when an answer is correct & complete? This type of question tends to generate open-ended lists, which our Q&A format doesn't handle very well. Would it be possible to rephrase your question as "I'm looking for a progress preservation method that fits [these criteria] - what solution can accomplish this?" - then we can evaluate answers on whether they correctly meet each of your criteria (or give a good reason why they don't/can't). This focus helps attract higher-quality, more directly useful answers \$\endgroup\$ – DMGregory May 13 '18 at 14:36
  • \$\begingroup\$ @EdMarty Desktop and mobile. iOS/Android/Windows/Blackberry \$\endgroup\$ – PiotrK May 13 '18 at 14:38
4
\$\begingroup\$

On each platform, keep the save game stored in a cloud storage system keyed to an id specific to that user (even before they’ve explicitly asked to save it in the cloud). For example, their Google Play player id on Android, or a guid that you generate and store in their iCloud account for iOS. Using their gmail account is a nonstarter if they don’t have a gmail address. They can then move across devices on the same platform, or delete and reinstall without needing a separate login that way.

The cloud storage solution should allow multiple identity providers for a single account (eg. Google Play id vs iCloud id, but only one of each type). I’ve used Amazon Cognito for this purpose. Then, when the user moves cross-platform, they can choose to link accounts (possibly resolving conflicts at this time). How they link the accounts can be as simple as a temporary id generated on one device and displayed on the screen that you then enter on the other, with a server component that controls the connection, or even a QR code that the other device can scan (although that would require integrating a QR code reader into your app for the best integration, and only works with mobile devices).

Note that throughout this whole process they’ve never needed to explicitly log in anywhere in your app. You could also allow logging in via email, or Facebook, or what have you. This allows them to move across platforms without needing both devices present. I would be remiss if I didn’t suggest still using a third-party service for logging in. You don’t want to get into the business of storing passwords.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.