There are 3 services for saving or sharing game data: user data, game profiles and data shares. In general, these services should be used as follows:
User data - Storing save game data that is only intended for the current player to read (e.g. items in inventory, player position, levels completed). This consists of a private key-value store.
Game profiles - A short game profile summary of the current player (e.g. xp, level, alliance). This consists of a single short string store that can be read by any other user’s game. Up to 64 user’s game profiles can be retrieved in one request.
Data shares - Shared game state for turn based games, user generated content or asynchronous multiplayer events. Some examples are:
Multiple data share objects can be created per user, one for each multiplayer game they are currently playing. Each data share object consists of a public key-value store that can be read from or written to by other user’s games. The data shares API is the most complex of the game data API’s and you should always try to use the user data API or the game profiles API if possible.