Anyone interested in an asset for syncing game data across devices (Google Play Games & iCloud)

Hey there!

When we first released our game 4 years ago for iPhone and Android, we did what most other game developers at the time did, and just didn’t add any cloud save functionality. I wasn’t really happy with that decision myself, but - as anyone out there who has tried implementing this will probably agree with me - it’s not exactly the most straight forward thing to get right (especially if you count in border cases in user interaction, network connectivity, …).

As the years went by, and players kept playing - some of them loosing their phones, some of them switching to new ones - we got more and more people writing us, asking us to restore their old progress - which we sadly couldn’t do. So we decided to act and put in some basic cloud save functionality, which just simply stored player data on Google Play Games or iCloud, and tried to restore on first launch on a new device.

This, of course, wasn’t perfect either. What we would have actually wanted instead, was a way for players to share the same save game across all of their devices, and for it to sync seamlessly - while still being able to play offline.

So eventually, earlier this year, we finally stopped running away from doing this right and started working on a small library to solve this problem once and for all. And I’m happy to say, that we got all our users, and their precious game data, migrated to this new system now :slight_smile:

I won’t go into too much detail here yet - I have probably bored you all enough - so, here is a very brief summary:

Our system supports several game specific data types (High Scores, Currencies, Unlockable Items, Stackable Items, …), which allows game data to be merged
between different devices, and conflicts to be resolved/reverted (e.g. if the same item has been purchased twice on different devices, one of the purchases). All without a need for any third party cloud service, and still allowing users to play offline (iCloud Key Value Store or Google Play Games Save Games work just fine)

Now, since there doesn’t seem to be any library on the Asset Store that provides this functionality*, we are considering to bullet proof our library a little further, and make it available to all of you there. So, if you are interested in seeing something like this on the Asset Store, please let us know, so we can decide if it makes sense for us to release this to you, with all the support responsibilities that come with it.

And, if you want to see our cloud sync in action, here is a link to our game: App Store / Google Play

Best,
Chris

What advantage is your system vs a baas such as Gamesparks, Playfab, or other services such as these? Serious question also. We use baas for some of our games, but we picked up a client project that will require saving large amounts of data. So just curious if your system has an advantage.

1 Like

Hi Brathnann, thanks for your question!

Gamesparks, PlayFab, etc. are very flexible and if you are developing a larger scale app which is designed around a game backend service they are surely the way to go. However, you can only call their SDK functions while you are connected to the internet. So, if your player goes offline, you cannot change any player data, unless you implement some kind of caching and merging system yourself.

Our system works fully offline (progress is stored locally and synchronized whenever the player goes online again) and we it also doesn’t require any custom backend services. It just uses iCloud or Google Play Games, so there are no recurring service fees for developers involved.

If you want to store large amounts of data though (I’m guessing you are talking about some kind of user generated content), we probably don’t have the right solution for you, since all the data has to fit into the iCloud KV store (there is a 1MB limit per user there) or Google Play Games Cloud Saves.

Hope that helps.

Ah, ic. Yes, on the new app, 1mb would be small. Still sounds interesting. I am not sure if we could use it for work projects, but personal projects it does sound cool.