遷移作業總覽

Google Play Games 服務第 1 版遊戲 SDK 依附於 Android 版 Google 登入,但這項服務已淘汰,並將於 2025 年從 Google Play 服務驗證 SDK (com.google.android.gms:play-services-auth) 移除。2025 年前,新的遊戲應用程式仍可使用第 1 版遊戲 SDK。移除 Google 登入後,現有遊戲應用程式會出現依附元件問題。請將現有遊戲應用程式從第 1 版遊戲 SDK 遷移至第 2 版遊戲 SDK,解決移除 Google 登入後出現的依附元件問題。

從 Google Play 遊戲服務第 1 版遷移至第 2 版是一項重大更新,可簡化開發作業並支援跨平台遊戲。Google Play 遊戲服務第 2 版會將平台和遊戲內身分識別資訊分離,做為平台層級的身分識別系統,在啟動時自動驗證玩家身分。平台身分識別資訊現在與主要遊戲內帳戶系統分開,您必須使用「透過 Google 登入」或專屬後端等工具,獨立管理主要遊戲內帳戶系統。整合 Play 遊戲服務第 2 版 SDK 時,系統會使用玩家 ID 處理成就和排行榜等平台功能,不會變更現有的新手上路或登入流程。

本文將說明遊戲應用程式與各種 SDK 之間的互動。由於官方已公布淘汰時間表,您必須遵循本遷移指南的架構原則、路徑和玩家溝通策略,確保玩家能繼續使用遊戲。

SDK 互動

這些圖表說明 Android 上的遊戲應用程式、Google 行動服務 (GMS) 核心、Play 遊戲服務和第三方 (3P) 遊戲伺服器之間的互動。圖表重點在於應用程式如何使用 Google 服務進行驗證和遊戲功能,同時與獨立的第三方系統互動。

games v2 (目前)

Android 上的遊戲應用程式、GMS Core、Play Games 服務和第三方 (3P) 遊戲伺服器之間的互動。
Android、GMS Core、Play Games 服務和第三方 (3P) 遊戲伺服器之間的遊戲應用程式互動。(按一下即可放大)。

games v1 (舊版)

Android 上的遊戲應用程式、GMS Core、Play Games 服務和第三方 (3P) 遊戲伺服器之間的互動。
Android、GMS Core、Play Games 服務和第三方 (3P) 遊戲伺服器之間的遊戲應用程式互動。(按一下即可放大)。

以下簡要說明這些元件和 SDK:

  • 遊戲應用程式。
    • 這代表使用者在 Android 裝置上執行的遊戲應用程式。
    • 其中包含兩個主要元件:
      • 遊戲第 1 版或第 2 版 SDK。負責與 Play Games 服務互動的用戶端 SDK。
      • 驗證 SDK:Google Play 服務驗證 SDK 負責處理遊戲第 1 版中的使用者驗證和授權流程。
    • 這兩個 SDK 都使用 AIDL (Android 介面定義語言) 通訊,表示不同程序或服務之間的通訊模式。
  • GMS Core 也稱為 Google Play 服務。
    • 這是 Android 上的 Google 專屬層。
    • 遊戲應用程式會使用兩個 GMS Core 模組:
      • 遊戲模組提供遊戲專屬功能,例如排行榜、成就和遊戲狀態管理。
      • 驗證模組:處理使用者驗證和授權作業。
    • 遊戲應用程式中的 Games 和 Auth SDK 會使用 AIDL 介面與對應的模組通訊,表示程序間通訊 (IPC)。

  • Play Games 服務閘道。
    • 邏輯閘道,可調解 GMS Core 與 Play Games 服務伺服器之間的通訊。
    • 處理伺服器通訊的 API 要求、資料轉換和驗證。
  • Play Games 服務伺服器。
    • 代表 Play Games 服務後端服務,負責儲存遊戲資料、管理使用者帳戶,以及提供多人遊戲功能。
  • 第三方遊戲閘道。
    • 如果您的遊戲應用程式符合第三方 (3P) 應用程式的資格,用戶端程式庫會透過第三方遊戲伺服器與 Play Games 服務伺服器通訊。
    • 這表示應用程式也可以透過其他服務供應商進行驗證。
  • 第三方遊戲伺服器。
    • 代表遊戲應用程式可互動的選用外部伺服器,可能用於自訂功能或資料管理。
    • 應用程式會透過第三方遊戲閘道進行通訊。

為什麼要將遊戲遷移至 Play Games 服務第 2 版

從 Play 遊戲服務第 1 版遷移至第 2 版,是架構現代化的重大轉變,可簡化開發作業,並支援跨平台遊戲。

與第 1 版不同,Play 遊戲服務第 2 版會將平台和遊戲內身分識別資訊分離,第 1 版則做為主要的遊戲內身分識別系統。這項服務是平台層級的身分識別系統,會在遊戲啟動時自動驗證玩家身分,以便管理成就和排行榜等功能。

您現在必須使用「使用 Google 帳戶登入」或專有後端等工具,獨立管理遊戲的主要遊戲內帳戶系統。遊戲可透過 Play 遊戲服務第 2 版 SDK 使用 Play 遊戲服務玩家 ID 存取平台功能,不必變更現有的新手上路或登入流程。本文將逐步說明如何遷移,涵蓋架構原則、路徑和玩家通訊策略。官方已公布淘汰時間表,因此請務必遵守規定,確保玩家能持續使用。

比較平台驗證和遊戲內驗證

在 Play 遊戲服務第 2 版中,「登入」的概念會分成兩個不同的層級:

  • 平台身分。SDK 會處理平台驗證。
  • 遊戲內身分。

平台驗證

Play 遊戲服務的功能嚴格來說是平台參與層,主要管理玩家與 Google Play 遊戲生態系統 (成就、排行榜和活動) 的關係,而非驗證特定遊戲帳戶或清單。

  • 背景自動驗證:遊戲啟動時,系統會在背景自動驗證。Play Games 服務本身不需要手動「登入」按鈕。
  • 玩家 ID:平台驗證成功後,Play 遊戲服務會提供穩定的玩家 ID。這個 ID 在同一款遊戲中跨裝置保持一致,但主要用於追蹤平台統計資料 (例如成就進度)。
  • 解除耦合:Play Games 服務第 2 版不得做為遊戲的主要身分識別系統,用來管理玩家的遊戲內帳戶,包括遊戲進度或物品清單。Play Games 服務第 2 版嚴格來說是次要的永久平台 ID。

遊戲內驗證

開發人員有責任管理「遊戲內帳戶」(IGA)。這是身分識別系統,可繫結玩家在遊戲中的進度、庫存和貨幣。

  • 主要身分:您可以將自己的後端、使用 Google 帳戶登入 (SiWG) 或其他供應商做為主要登入方法。
  • 獨立性:玩家登入任何特定遊戲內帳戶時,都可以登入 Play 遊戲服務 (平台身分),並獲得成就。例如訪客帳戶或特定 SiWG 帳戶。
  • 管理多個遊戲內帳戶:Play 遊戲服務只負責平台驗證,遊戲則負責玩家登入遊戲內帳戶 (IGA) 的主要驗證。也就是說,玩家在遊戲中切換帳戶的方式不會有任何變更。玩家這麼做時,仍會使用 Play Games 服務向 Play Games 平台進行驗證,而您會繼續根據持續性玩家 ID,傳送與成就和其他 Play Games 服務功能相關的資料。

遷移規定:將遊戲內帳戶與 Google Open ID 繫結,而非 Play Games 服務玩家 ID

在 Play 遊戲服務第 1 版中,開發人員會將 Play 遊戲服務做為主要身分識別提供者。玩家點選「Google Play」按鈕後,系統會將遊戲內帳戶 (IGA) 直接連結至 Player ID

Play 遊戲服務第 2 版會在啟動時提供自動、無聲的平台驗證,藉此解決這個問題。產生的 Player ID 現在專用於排行榜和成就等平台功能,與主要帳戶登入程序分開。

遊戲現在必須透過專屬登入畫面,提供「使用 Google 帳戶登入」或其他社群帳戶等方法,獨立管理主要身分。請務必不要將 Play 遊戲服務第 2 版做為主要身分識別系統

這項架構轉移作業需要開發人員相應調整帳戶資料結構。遊戲內帳戶 (IGA) 必須與主要綁定的 Player ID 解除連結。

現在,IGA 必須繫結至與 Play 遊戲服務無關的穩定主要 ID。建議使用的 ID 是「使用 Google 帳戶登入」流程提供的 Open ID。這個 Open ID 可做為系統中玩家主要帳戶的專屬永久金鑰。

不過,IGA 可做為次要繫結連結至 Player ID。這個次要連結有兩項重要功能:

  1. 這樣一來,遊戲就能繼續追蹤及更新與該特定玩家相關聯的 Play 遊戲功能 (成就等) 進度。
  2. 這項功能可啟用「無縫還原」功能,讓遊戲在新的裝置上或重新安裝後,自動將玩家登入最近使用的 IGA。

瞭解這種分離式身分識別模型,是為遊戲找出正確技術遷移路徑的關鍵。

功能比較

下表比較了遊戲第 1 版和第 2 版 SDK 的功能:


功能

games v1 SDK

games v2 SDK

驗證

必須與 play-services-auth 整合。

簡化及精簡,不需play-services-auth

授權

成功、失敗和重試的其他程式碼。

由 SDK 管理

伺服器存取權杖

可使用 GoogleSigninClient 要求其他 OAuth 2.0 範圍

驗證期間的錯誤處理額外程式碼。

要求伺服器端存取 Play 遊戲服務網頁 API 時,可使用 GamesSignInClient 要求三項基本 OAuth 2.0 身分範圍。

詳情請參閱「 Play Games 服務的伺服器端存取權」和「 擷取伺服器驗證碼」。


登入程序

用途 GoogleSigninClient

用於處理自動驗證和錯誤處理的樣板程式碼的其他程式碼。

用途 GamesSignInClient

SDK 會處理樣板程式碼、自動驗證和錯誤處理作業。「登入」分為兩個不同的層級:
  • 平台驗證:由 Play Games 服務第 2 版 SDK 處理。
  • 遊戲內驗證:由遊戲處理。

歡迎彈出式視窗

需要額外程式碼。
開發人員可以控管其位置和時間。

不需要額外程式碼。 所有透過遊戲服務第 2 版 SDK 設定的遊戲,都採用一致的使用者介面。

依附元件

需要 play-services-auth

Games 模組會處理授權和驗證作業,您不需要新增任何額外的依附元件。
登出

用途GoogleSignInClient.signOut

Play Games 服務第 2 版是持續性的平台身分,因此不需要登出 API。

多個 Play 遊戲服務帳戶和遊戲專屬設定

您可以在遊戲中管理帳戶。

使用者可以在行動裝置設定中變更 Play 遊戲服務設定檔。詳情請參閱 如何在行動裝置上切換 Play 遊戲個人資料