googleforgames / googleforgames/open-saves
Update feature for binary chunked records
- Dominant language
- Go
- Stars
- 243
- Forks
- 27
- PR merge metrics
- No merged PRs in 30d
Description
**Is your feature request related to a problem? Please describe.**
Currently, open saves supports creating a new binary chunk record and retrieval of the binary record. There is no option to UPDATE an existing binary record with new chunks.
**Describe the solution you'd like**
The feature request on open saves is to provide a new endpoint for allowing update operations on existing chunked binary records using the same key. This way a game client can update the chunks for a given a record, basically a patch operation.
**Describe alternatives you've considered**
An alternative we are currently using is to delete an existing record, and then re-upload using the same key. But of course this is not ideal and will run into many issues, ex: what if the client loses connection after delete, or before the re-upload happens.
**Additional context**
Example use case: A game, on its first boot, uploads a save game file using a record key: SaveGame. On the second game boot, the player made more progress in the game and wants to upload the new progress to the save game file.
Currently, open saves will error out saying a conflicting record already exists.
Ideally, the game uses a PATCH operation to update the SaveGame record key, with new binary chunks that will note the new progress of the player.
Contributor guide
Research direction
Start by tracing the existing endpoints for creating and retrieving binary chunk records. Define the PATCH operation for updating an existing record by key, including how new chunks replace or modify the stored record and how conflicts or interrupted updates behave. Done means a client can update the SaveGame record without deleting it first.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100