2017-10-17 20 views
1

J'ai implémenté un mécanisme de sauvegarde dans mon jeu en utilisant la classe android C++ Snapshot. Il économise et charge parfaitement. Cependant, j'essaye de mettre en place un cas de test qui provoquera un conflit. Mais je ne peux pas savoir comment le faire. Je n'arrête pas d'entendre beaucoup de laineux "que l'on doit être hors ligne et celui-ci doit sauver" etc Mais pas de détails. Quelqu'un sait comment générer un conflit avec 2 appareils, A et B?Comment créer manuellement un conflit de sauvegarde (snapshot) Android?

Périphérique A Commits - Tout fonctionne correctement, aucun conflit détecté par l'API. Commandes - Tout fonctionne correctement, aucun conflit n'est détecté par l'API, le jeu du dispositif A est écrasé.

Peut-être que l'un des périphériques doit être hors ligne lors d'une validation?

Voici ce que j'utilise pour détecter les conflits, ne sont jamais détectés:

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

Un grand merci,

Steve.

Répondre

0

Pour créer un conflit dont vous avez besoin suivant la situation

  • A et charge B le même état jeu
  • A et B changer l'état du jeu
  • A et B veulent sauver leur état dans le nuage

enter image description here

A commet d'abord. Lorsque B tente de valider, il écrasera les modifications de A ou détectera que l'état a changé. Les modifications de B ne se basent pas sur l'instantané actuel mais sur un état antérieur. B produit un conflit.

+0

Salut Thomas, (mis à jour la question avec des détails supplémentaires). Il ne semble pas fonctionner comme cela lorsqu'il est mis en œuvre sur Android. Avez-vous essayé ceci sur un appareil Android? Aucun conflit n'est détecté avec ce scénario. Merci. –