Как вручную создать конфликт сохраненной игры (снимка) Android?

Я реализовал механизм облачного сохранения в своей игре, используя класс 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.
}

Большое спасибо,

Стив.

1

Решение

Чтобы создать конфликт, вам нужна следующая ситуация

  • A и B загружают одно и то же игровое состояние
  • А и Б меняют игровое состояние
  • А и Б хотят сохранить свое состояние в облаке

введите описание изображения здесь

А совершает первым. Когда B пытается зафиксировать, он либо перезаписывает изменения A, либо обнаруживает, что состояние изменилось. Изменения B основаны не на текущем снимке, а на более раннем состоянии. Б порождает конфликт.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]