遊戲啟動
遊戲啟動時,第一個步驟是判斷要為哪位使用者管理 Game Saves。如果使用者在另一部裝置上有作用中的遊戲工作階段,系統對話方塊會要求使用者切換裝置。如果使用者切換,另一部裝置會將其最新的本機 Game Saves 資料同步到新裝置。如果您希望資料保留在本機並繫結到裝置,可以使用僅限機器的提供者。此選項會將null 使用者控制代碼傳入 Game Saves API。
遊戲選取使用者之後,會使用該使用者的控制代碼初始化 Game Saves。在初始化期間,Game Saves 會連線到 XBOX 網路,以準備使用者的儲存空間。
相關的系統對話方塊:


連線檢查
接著,遊戲會判斷是否能連線到 XBOX 網路,以確認是否可以同步到雲端。如果遊戲無法連線,使用者會看到重試或以離線模式繼續遊戲的選項。Game Saves 可以在離線模式下執行。 相關的系統對話方塊:
離線行為

資料擁有權檢查
確認連線之後,遊戲會判斷裝置是否有權修改資料。如果有,裝置就可以取得遊戲的鎖定。若要取得與釋放鎖定,遊戲需要存取 XBOX services。 遊戲會檢查是否有另一部裝置持有使用者資料的鎖定。該裝置可能因為下列原因而仍保留鎖定。- 與 XBOX 網路中斷連線,使裝置無法呼叫
WebReleaseLock。 - 另一部裝置正在上傳大型 Game Save,因此無法呼叫
WebReleaseLock。
- 強制從另一部裝置取得鎖定,導致另一部裝置遺失工作階段資料。
- 再次嘗試以一般方式取得鎖定。
- 取消取得鎖定。


與雲端同步資料
遊戲取得使用者資料的鎖定之後,會將該資料與雲端同步。接著,遊戲會判斷要執行下列哪一個動作:- 上傳本機 Game Saves 資料。
- 下載雲端資料並更新本機 Game Saves 資料。
- 不採取任何動作。
- 解決任何資料衝突。
- 本機存檔時間:此裝置上次寫入存檔的時間
- 雲端存檔時間:雲端複本上次更新的時間
四種同步結果
如果發生從雲端下載,會出現同步對話方塊正在同步…的資料。如果使用者使用此對話方塊取消 Game Saves,遊戲會以離線模式繼續。
變更與存檔狀態
此案例假設使用者在兩部裝置 (裝置 A 與裝置 B) 上遊玩。 本機已變更 使用者在裝置 A 上離線時取得進度。例如,使用者在沒有網際網路連線的情況下,在裝置 A 上升到 126 級。 雲端已變更 自使用者上次同步裝置 A 以來,已從裝置 B 上傳進度。例如,使用者在裝置 B 上升到 99 級並上傳到雲端。 兩者皆已變更 使用者在裝置 A 上離線遊玩。自上次同步裝置 A 以來,使用者也在裝置 B 上遊玩。例如,裝置 A 為 126 級,雲端為 99 級。 如果發生衝突,系統會以對話方塊提示使用者解決:您要使用哪一個?不可部分完成性
Game Saves 在容器 (資料夾) 層級是不可部分完成的。如果雲端資料夾包含對應本機資料夾未包含的 Blob,系統會將這兩個資料夾視為不同。此差異會造成衝突。
遊戲迴圈
遊戲迴圈是遊戲工作階段的作用中部分。它會在遊戲完成將存檔資料與雲端同步之後開始。 在作用中的遊戲工作階段期間,遊戲會在本機讀取與寫入存檔資料。在此期間建立或更新的所有資料都會保留在 Game Saves 本機儲存空間中,直到系統執行雲端同步為止。 如果主機或 PC 符合下列其中一個條件,遊戲迴圈會在使用者的遊戲工作階段結束時結束。當主機或 PC 觸發狀態變更 (例如暫停、終止、登出或其他系統事件) 時,工作階段即結束。定期同步到雲端
每經過 30 分鐘的遊戲時間,遊戲就會嘗試自動同步到雲端。此行為以下列案例為依據。
工作階段結束
遊戲工作階段結束後,遊戲會將新資料上傳到雲端。裝置有連線時,會嘗試將資料上傳到雲端。資料上傳之後,鎖定即會釋放。 若要在 XBOX 網路上查看鎖定釋放以進行偵錯,請參閱檢查 Game Saves 網路流量。
連線中斷與鎖定案例
連線中斷期間寫入的資料會儲存在 Game Saves 本機儲存空間中,並在連線恢復後上傳。不過,如果使用者嘗試使用另一部裝置,目前的裝置會因為連線中斷而無法釋放鎖定。使用者可以強制將鎖定轉移到另一部裝置。視這些鎖定轉移發生的時間而定,遊戲可能會有不同的行為。遊戲啟動前連線中斷
時機:使用者在沒有連線的情況下啟動遊戲。由於沒有連線,遊戲會提供使用者以離線模式啟動的選項。當裝置重新連線到 XBOX 網路,且雲端包含較新的資料時,遊戲會將本機資料視為過時。在此情況下,遊戲會透過暫停作業終止應用程式來結束遊戲工作階段。 相關的系統對話方塊:我們需要關閉此遊戲或應用程式
遊戲迴圈期間連線中斷
時機:使用者處於作用中的遊戲工作階段,且遊戲仍持有鎖定。在某個時間點,連線中斷。遊戲接著允許在連線中斷期間繼續遊玩。
工作階段結束前連線中斷 (終止或暫停)
時機:玩家在裝置中斷連線時結束/暫停遊戲。裝置仍有未同步的本機資料。
