Я реализовал механизм облачного сохранения в своей игре, используя класс Android C ++ Snapshot. Сохраняет и загружает отлично. Тем не менее, я пытаюсь создать тестовый пример, который вызовет конфликт. Но я не могу понять, как это сделать. Я постоянно слышу много очень неясных слов «что нужно быть в автономном режиме, а это нужно сохранить» и т. Д. Но никаких подробностей. Кто-нибудь знает, как создать конфликт с 2 устройствами, A и B?
Устройство А
Commits — все работает нормально, конфликт API не обнаружен.
Устройство Б
Commits — все работает отлично, API не обнаруживает конфликтов, игра на устройстве А перезаписывается.
Может быть, одно из устройств должно быть отключено во время коммита?
Вот то, что я использую для обнаружения конфликтов, ни один из них никогда не обнаруживается:
GPlusMgr::Get().GetGameServices()->Snapshots().Open(gpg::DataSource::CACHE_OR_NETWORK, Filename.ToASCII(), gpg::SnapshotConflictPolicy::MANUAL, [this](gpg::SnapshotManager::OpenResponse res)
{
if (res.conflict_id != "")
{
// Do scary conflict resolution dance.
}
else
{
// No conflict, just save to cloud.
}
Большое спасибо,
Стив.
Чтобы создать конфликт, вам нужна следующая ситуация
А совершает первым. Когда B пытается зафиксировать, он либо перезаписывает изменения A, либо обнаруживает, что состояние изменилось. Изменения B основаны не на текущем снимке, а на более раннем состоянии. Б порождает конфликт.
Других решений пока нет …