2017-10-17 17 views
1

나는 안드로이드 C++ 스냅 샷 클래스를 사용하여 내 게임에 클라우드 저장 메커니즘을 구현했습니다. 그것은 저장하고 완벽하게로드합니다. 그러나 충돌을 일으킬 테스트 케이스를 설정하려고합니다. 그러나 나는 그것을하는 방법을 해결할 수 없습니다. 나는 많은 것을 아주 계속 듣고있다. "하나는 줄을서야하고이 하나는 구해야 할 필요가있다."하지만 아무런 내용도 없다. 누구나 2 개의 장치 A와 B와 충돌을 일으키는 방법을 알고 있습니까?수동으로 Android 저장 게임 (스냅 샷) 충돌을 만드는 방법은 무엇입니까?

디바이스 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. 
    } 

많은 감사,

스티브.

답변

0

당신이 상황

  • A와 B 부하 같은 게임 상태
  • A와 B는 게임 상태
  • 을 변경하고 B는 클라우드에서 자신의 상태를 저장하려면 다음 필요가 충돌을 만들려면

enter image description here

는 먼저 커밋합니다. B가 커밋하려고하면 A의 변경 사항을 덮어 쓰거나 감지하여 상태가 변경됩니다. B의 변경 사항은 현재 스냅 샷을 기반으로하지는 않지만 이전 상태입니다. B가 충돌을 일으킨다.

+0

안녕하세요. Thomas (추가 세부 사항으로 질문이 업데이트되었습니다). Android에서 구현 될 때와 같이 작동하지 않는 것으로 보입니다. Android 기기에서이 기능을 사용해 보셨습니까? 해당 시나리오에서 충돌이 감지되지 않습니다. 감사. –