We are currently evaluating two potential approaches for mirroring our player data stored in Unity Gaming Services (UGS) Cloud Save to an external database (in AWS). Our main concern is the lack of rollback or backup support in Unity’s Cloud Save system, which is why we’re considering storing the data separately.
Approach A: Real-Time Sync on User Logout
In this approach, we would update the corresponding DynamoDB records every time a user logs out. This ensures that our data is consistently up-to-date, but it may result in a higher frequency of API calls especially as the game scales to 1000s of concurrent users.
Approach B: Scheduled Batch Updates
Alternatively, we are considering updating all player records that have been modified over a specific period, such as once every 24 hours. This would reduce the volume of API calls from multiple logins in a single day.
Questions:
- Best Approach: Given these two options, which approach would you recommend considering the potential volume of data and the need for consistency?
- Rate Limits: Could you provide any insights into the rate limits for the
https://services.api.unity.com/cloud-save/v1/data/projects/{project_id}/environments/{environment_id}/players/{player_id}/items
endpoint? We want to ensure that our implementation won’t run into issues with rate limiting. - Alternatives: Can you think of an alternative approach that might be better than using the UGS Admin API.