With Cloud Save, you can let your game save the players’ progress on the cloud as checkpoints. Your game can then retrieve those checkpoints from the cloud and let players continue from any checkpoint saved from any device.
Cloud Save allows you to synchronize players’ progress across multiple devices. For example, with Cloud Save, if you have an Android game, your player can start the game on a phone and continue the game on a tablet without losing their progress. Even when the player lost their device, damaged their device, or got a new device, they can still continue the game from where they left off.
To learn how to add Cloud Save into your game, see Cloud Save Guide.
Each checkpoint is made up of two parts:
- A binary file containing the progress, which your game can read and update.
- Metadata holding some useful information related to this checkpoint.
Each checkpoint has a cover image as part of its metadata. We strongly recommend that you pick an image that best describes the checkpoint.
You can assign a brief summary to each checkpoint. The summary is intended to be seen by the player, so it should reflect the status represented by the checkpoint. An example would be “Fighting with the black-clad man on the rooftop”.
If a player runs multiple instances of your game on different devices at the same time, there could be conflicts when these instances try to save the progress data to the cloud. Your app should resolve such conflicts in a manner that provides the best user experience to the players.
Conflicts usually happen when your app tries to load or save data but is unable to make a connection to the cloud. The best way to avoid conflicts is to always have the app load the latest data from the cloud when it is opened or resumed, as well as regularly save the local data to the cloud. Your app should make the best attempt to resolve such conflicts in order to preserve players’ data and bring the best experience to the players.
The metadata of each checkpoint contains the following fields:
|Field meaning||Field name||Required||Description|
|Checkpoint ID||Automatically generated||A unique ID generated by the cloud for the checkpoint. Use this ID to reference the checkpoint in your game.|
|Associated user||Automatically obtained||The SDK automatically associates the checkpoint with the current user.|
|Original file||Required||The original file containing the progress.|
|Checkpoint name||Required||A brief name assigned to the checkpoint. The name is not visible to the player. You can group checkpoints by their names if you assign a custom rule to the names.|
|Checkpoint summary||Required||A string *no longer than 1000 characters. You can assign each checkpoint a summary that is visible to the player.|
|Modified at||Required||The time the original file is modified or added.|
|Time played||Optional||The time the player has spent on the game in milliseconds.|
|Progress||Optional||An integer indicating the game progress. An example is the current level of the game.|
|Cover image||Optional||An image provided by you. At this time, you can only upload PNG and JPG files with the SDK.|