本頁面說明如何整合 Play 遊戲服務登入功能與現有的身分或雲端儲存解決方案。這些建議並非強制規定,但可以協助您完全符合 Google Play 遊戲電腦版的雲端儲存規定。請參閱有關持續性規定和預期行為的頁面,確認導入作業是否符合這些規定。
還原玩家狀態
為了方便您在遊戲中擷取及更新遊戲進度,遊戲後端可能會以某些 ID 代表遊戲帳戶,也就是所謂的帳戶 ID。玩家登入 Play 遊戲服務時,您可以透過這個驗證機制取得新的 Play 遊戲服務玩家 ID;您必須使用這組 ID 來遵守雲端儲存規定。
玩家登入 Play 遊戲服務後,您應執行下列步驟:
- 從用戶端擷取 OAuth 代碼並傳送至您的伺服器。
- 交換驗證權杖,然後從我們的 Play 遊戲伺服器取得經過驗證的 Play 遊戲服務 ID。如此就能確保 ID 值得信任,而不是他人使用遭駭裝置假冒其他玩家。
- 嘗試根據裝置條件與任何已連結的 ID 來解析遊戲帳戶。
您必須在遊戲中導入下列兩種主要的新情境:
- 在後端儲存 Play 遊戲服務 ID,並透過某種方式指派給現有的帳戶 ID,例如:
- 如果是新玩家,遊戲進度應該會在某個時間點自動連結至 Play 遊戲服務 (例如在遊戲啟動時、教學課程結束後,或完成特定數量的關卡等等)。
- 如果是現有玩家,目前遊戲進度應該會在玩家更新為已整合 Play 遊戲服務版本 2 的遊戲版本後,自動連結至 Play 遊戲服務。
- Play 遊戲服務 ID 可以與一或多個帳戶連結或取消連結,但至少應連結至一個有效帳戶。
- 系統會根據 Play 遊戲服務玩家 ID,在已登出/新的裝置上自動還原遊戲進度。
您可以透過多種方式儲存 Play 遊戲服務 ID,並將 ID 指派給現有帳戶,如下列例子所示。請特別留意,您應該讓玩家無需手動登入或連到其他身分識別系統,就能連結 Play 遊戲服務 ID 和遊戲進度,而且該玩家的遊戲進度應能順暢地在多種平台上還原。
設計解決方案時,請先查看現有的系統,並且瞭解該系統如何整合不同的識別資訊提供者。有些系統針對每個帳戶只會使用一組 ID,有些系統針對每個帳戶會使用多個 ID。
如果每個帳戶 ID 只能與單一 ID 建立關聯,您必須額外支援 Play 遊戲服務,以便與帳戶建立關聯。以下列出相關的解決方案。
解決方案示例
以下介紹繫結和喚回這兩種解決方案。
繫結是永久或半永久連結 Play 遊戲服務 ID 與帳戶狀態的流程。採用繫結解決方案時,即使玩家登出後以其他帳戶登入遊戲,只要玩家不採取任何動作,透過 Play 遊戲服務還原的基礎帳戶就不會改變。我們會透過帳戶繫結來說明。
如果採用重新呼叫解決方案,遊戲開發人員會儲存 Play 遊戲服務 ID 的概略對應資訊,以及玩家透過其他裝置登入 Play 遊戲服務時看見的最後一個帳戶,也就是要還原的帳戶。玩家每次使用相同 Play 遊戲服務 ID 登入其他遊戲帳戶時,這個繫結將發生變化。請參閱下列流程圖中關於喚回近期帳戶的詳細示例:
如要查看更多使用者流程示例,請參閱下列解決方案。
帳戶繫結
如果遊戲中的多帳戶玩家並不多,或是您想鼓勵玩家只使用單一遊戲帳戶,那麼繫結機制或許是最適合您的遊戲解決方案。這個示例透過 Play 遊戲服務登入時顯示的第一個帳戶 (訪客帳戶或與其他身分識別平台繫結的帳戶),與 Play 遊戲服務玩家 ID 繫結在一起。繫結後,繫結的帳戶會自動在新裝置上還原。因為我們採取強繫結,所以玩家也可以透過切換 Play 遊戲服務設定檔的方式在遊戲中變更帳戶;在這個情境中,您可以提示玩家確認要使用的帳戶。
如有多個相衝突的帳戶,建議您請玩家選擇其中一個帳戶。這類衝突情況應該只會在玩家擁有多個遊戲帳戶時發生;他們應該知道自己有多個帳戶,並且只想使用特定帳戶玩遊戲。
解決帳戶問題後,除非登入 ID 變更,否則遊戲應該記住玩家的選擇。如果變更 Play 遊戲服務設定檔,或是玩家在遊戲中登入不同 ID,由於玩家顯然希望改變帳戶,因此您應執行上述步驟。
解除繫結
如果希望玩家能夠完全掌控自己的繫結狀態,可以允許玩家將 Play 遊戲服務玩家 ID 與遊戲帳戶解除繫結。有些多帳戶玩家可能會不小心將 Play 遊戲服務玩家 ID 與主要帳戶以外的帳戶繫結,因此繫結狀態掌控功能對這類玩家來說可能很重要。
其他帳戶繫結示例
這個主要例子顯示,某個 Play 遊戲服務玩家 ID (1) 只會與第一個顯示的遊戲帳戶 (A) 繫結在一起,而且玩家登出遊戲進度並使用另一個帳戶玩遊戲時,不會重新進行繫結。
您可以自行選擇是否要讓玩家重新繫結自己的帳戶,但這不是必要步驟。
在裝置上切換帳戶
在本例中,玩家手動切換了 Play 遊戲服務帳戶,藉此讓遊戲明確知道,自己想將遊戲中的帳戶變更為其他帳戶。玩家希望遊戲回應這項變更,因此若遊戲將這個信號納入考量,將能改善玩家體驗。
目前已與其他 ID 繫結的帳戶
這個示例顯示,即使是繫結至非 Play 遊戲服務 ID 的帳戶,也應該要同時繫結至 Play 遊戲服務,並在新裝置中還原。擁有帳戶的大部分現有遊戲玩家都屬於這個類別。
喚回近期帳戶
當您考慮採用何種解決方案時,通常會想到多帳戶體驗。如果遊戲會鼓勵進階使用者建立多個帳戶 (例如抽卡遊戲或「結局由您決定」型態的遊戲),那麼若採用將 Play 遊戲服務玩家 ID 與單一帳戶繫結的方式,可能就無法在玩家切換裝置時提供最佳的玩家體驗。
喚回解決方案可讓您儲存 Play 遊戲服務玩家 ID 和遊戲內帳戶的概略對應資訊,如此玩家在切換裝置或登出帳戶時,只會看到您儲存的最後一個帳戶。
在這個示例中,玩家擁有 3 個遊戲帳戶,接著改用新的裝置:
提示玩家還原遊戲時,您可以自由加入「取消」或「新建」按鈕,方便玩家建立新帳戶。
為了方便起見,遊戲可以選擇只喚回最後一個顯示的帳戶。對於多帳戶切換用途而言,這個做法可能比較困難,但仍然符合持續性規定。
其他喚回示例
下一節列出使用喚回解決方案的其他示例。
非 Android 手機
我們將說明現有的兩種喚回帳戶 (已與第 3 方帳戶連結),也就是在其他未登入 Play 遊戲服務的裝置上建立的帳戶。
較常見的流程是啟動非 Android 手機,然後改用 Google Play 遊戲電腦版。
由於非 Android 手機沒有 Play 遊戲服務,因此沒有啟用喚回度,且玩家必須在 Google Play 遊戲電腦版中手動輸入憑證。
單一帳戶有多個 Play 遊戲服務設定檔
有時會有多個有效的 Play 遊戲服務設定檔先前曾「喚回」特定帳戶。在這種情況下,有兩種同樣有效的主要解決方案:
一律儲存 在「一律儲存」模式下,系統會忽略特定帳戶的重複指標。
覆寫 在「覆寫」模式中,開發人員需要記住 Play 遊戲服務至帳戶的對應設定,並清除「覆寫」模式表格中的舊有對應關係。如此一來,他們就能為喚回的帳戶和 Play 遊戲服務帳戶進行一對一的完美對應。
喚回相同裝置 多帳戶玩家也可以使用喚回實作方式,在遊戲帳戶之間快速切換。