android - 如何手动创建 Android savegame(快照)冲突?

标签 android c++ save conflict snapshot

我使用 android c++ Snapshot 类在我的游戏中实现了云保存机制。它完美地保存和加载。但是,我正在尝试设置一个会导致冲突的测试用例。但我不知道该怎么做。我一直听到很多非常模糊的“那个需要离线,这个需要保存”等等。但没有具体说明。任何人都知道如何与 2 个设备 A 和 B 产生冲突?

设备A 提交 - 一切正常,API 未检测到冲突。

设备B 提交 - 一切正常,API 未检测到冲突,设备 A 的游戏被覆盖。

也许其中一台设备在提交期间必须离线?

这是我用来检测冲突的方法,没有检测到:

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

非常感谢,

史蒂夫。

最佳答案

要制造冲突你需要以下情况

  • A 和 B 加载相同的游戏状态
  • A和B改变游戏状态
  • A 和 B 想将他们的状态保存在云端

enter image description here

A 先提交。当 B 尝试提交时,它将覆盖 A 的更改或检测到状态已更改。 B 的更改不是基于当前快照,而是基于更早的状态。 B产生冲突。

关于android - 如何手动创建 Android savegame(快照)冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46792208/

相关文章:

c# - 未找到 PWA 的 list JSON 404?

java - RxJava缝制两个查询

c++ - 从 5x10^8 个不同的数组元素中读取,每次 4 个字节

C# - 如何更改 PNG 质量或颜色深度

java - 如何保存,另存为Java?

java - 如何启动 3 天或 2 天的计时器

android - 适用于 Android 的 Flurry Analytics : Data not being sent to Flurry dashboard?

c++ - 读取某个地址的值

c++ - 大量函数递归 - C++

java - 在应用程序销毁时保存变量不起作用