我使用 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 想将他们的状态保存在云端
A 先提交。当 B 尝试提交时,它将覆盖 A 的更改或检测到状态已更改。 B 的更改不是基于当前快照,而是基于更早的状态。 B产生冲突。
关于android - 如何手动创建 Android savegame(快照)冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46792208/