2017-10-17 3 views
1

Ich habe einen Cloud-Speichermechanismus in meinem Spiel mit der Android C++ Snapshot-Klasse implementiert. Es speichert und lädt perfekt. Ich versuche jedoch, einen Testfall einzurichten, der einen Konflikt verursacht. Aber ich kann nicht herausfinden, wie es geht. Ich höre immer wieder sehr wooly "das muss man offline sein und das muss man sparen" etc. Aber keine Besonderheiten. Kann jemand einen Konflikt mit 2 Geräten, A und B, erzeugen?Wie erstelle ich manuell einen Android Savegame (Snapshot) Konflikt?

Gerät A Commits - Alles funktioniert einwandfrei, kein Konflikt durch API erkannt.

Gerät B Commits - Alles funktioniert gut, kein Konflikt wird durch API erkannt, das Spiel von Gerät A wird überschrieben.

Vielleicht muss eines der Geräte während eines Commits offline sein?

Hier ist, was ich verwende, Konflikte zu erkennen, werden keine jemals erkannt:

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. 
    } 

Vielen Dank,

Steve.

Antwort

0

Um einen Konflikt erstellen Sie müssen folgende Situation

  • A und B Last das gleiche Spiel Zustand
  • A und B das Spiel Zustand
  • A ändern und B wollen ihren Staat in der Cloud speichern

enter image description here

A begeht zuerst. Wenn B versucht zu committen, überschreibt es entweder die Änderungen von A oder erkennt, dass sich der Status geändert hat. Die Änderungen von B basieren nicht auf dem aktuellen Snapshot, sondern auf einem früheren Status. B erzeugt einen Konflikt.

+0

Hallo Thomas, (aktualisiert die Frage mit zusätzlichen Details). Es scheint nicht so zu funktionieren, wenn es auf Android implementiert wird. Hast du das auf einem Android Gerät versucht? Bei diesem Szenario wurden keine Konflikte festgestellt. Vielen Dank. –

Verwandte Themen