Whispersync - best practices when using DeveloperString
Hi Amazon, We're trying to decide on the best approach for integrating Whispersync into our upcoming game, while making sure to satisfy the Developer Select program. We've decided to use SyncableDeveloperString for manual conflict resolution since it fits our game data model the best, but we're concerned about confusing users with conflict resolution questions. Option 1: Would it be acceptable to implement whispersync as backup/restore buttons in our menu? This would resolve all possible confusion a user may face when deciding which game data they want. Users would press backup on the device with the latest data, then press restore on the device they want to download the cloud data onto. Option 2: Implement whispersync as a sync button in our menu. On conflict, we would have to popup a dialog and ask the user to choose. This could be a little confusing because the user would be put on the spot to decide (rather than having already decided in option 1). Also if there's a delay, the sync question could come a bit later, potentially interrupting the user if they've resumed playing. Option 3: We would sync DeveloperString onPause() and onResume(). If a conflict occurs we would ask the user what to do. This would potentially be the most confusing since it would occur as they are entering the game. Also, in the case of a conflict during synchronize onPause(), we would have no way of asking the user - and would potentially have to wait until the next onResume() by which point it may be too late if there user picked up a different device in the meantime. We are leaning towards option 1, but I'd like to make sure it's ok with Amazon and the Developer Select program. Also, if anybody has any other approaches for implementing DeveloperString in Whispersync, please share =] Thanks
First, Amazon Developer Select program is no way connected with the implementation details of WhisperSync. All the options given above are technically correct and Amazon wont have any problem on any of those. In my personal opinion option 1 is best in terms of giving the user the best experience with it. Option 2 also seems to be ok as user would get the freedom to resolve conflict explicitly. Option 3 should be confusing for the user. Thanks.