常見問題

本文將回答關於 SDK 和發布 Google Play 遊戲電腦版的常見問題。

營利

  1. 我可以在沒有後端伺服器的情況下使用購買流程嗎?

    從安全角度來看,不建議在沒有後端伺服器的情況下處理資料。

    詳情請參閱「不使用後端伺服器進行處理」。

  2. 整合 Google Play 遊戲電腦版 SDK 後,是否仍可使用現有的 API 支付系統?

    所有付款交易都必須透過 Google Play 帳款服務,由 Google Play 遊戲電腦版 SDK 處理。您無法在同一款遊戲中使用現有的 API 付款方式。

  3. 如何在開發人員模式下使用購買交易?

    在 3 分鐘內以開發人員模式使用購買交易,否則系統會退款。

  4. 系統是否支援定期付款或訂閱?

    我們近期內不會提供這項功能,但歡迎提供具體用途,以便我們納入日後的發展藍圖。

  5. 購買通話時發生帳單錯誤是什麼意思?

    BillingError 是付款結果的回應。LaunchPurchaseFlow 會立即傳回,不會遭到封鎖,但您必須監聽回呼,才能瞭解何時完成並擷取結果。

  6. 如何使用用戶端購物驗證?

    建議使用伺服器端購買交易和驗證程序。 如要處理用戶端應用程式的購買交易,遊戲必須在許可清單中。如果遊戲需要存取權,請與 Google 合作夥伴聯絡。 詳情請參閱「不使用後端伺服器進行處理」。

  7. 查詢產品詳細資料的 API 限制為何?

    單次呼叫 QueryProductDetails API 時,可查詢的產品數量上限為 50 個。如果超過此上限,您必須將要求拆成多個呼叫。

  8. 在帳單用戶端中呼叫 Query Purchases 或 Launch Purchase Flow 時,需要哪些參數?

    這個函式會接受 QueryPurchasesContinuation,這是具有 std::function<void(QueryPurchasesResult)> 簽章的函式回呼。回呼會將結果連同所有 ProductPurchaseDetails 一併傳遞給您。這項資訊位於 includes/billing/models.h 檔案的 SDK 標頭檔案中。

    產生的 launch_purchase_flow_result 具有 ok()code() 函式。ok() 函式會傳回流程是否成功。code() 函式會傳回 BillingError 列舉 (includes/billing/enums.h),其中有 10 種可能的錯誤情況,例如使用者取消或網路錯誤。

  9. 帳單用戶端是否支援啟動購買流程的自訂排序?

    在目前的 SDK 設計中,無法傳遞自己的酬載。不過,你可以提供 obfuscated_account_idobfuscated_profile_id 的任意組合。你可以不提供任何資訊,也可以提供其中一項或兩項資訊。

    offer_token 欄位為必填,用於指定使用者在結帳程序中嘗試購買的購買方案。目前,Google Play 中的每個 SKU 只有一項優惠 (例如以 $10 美元購買一項商品)。日後,Play 結帳團隊將支援多項優惠。

    為確保在購買流程中斷時中繼資料仍與購買交易相關聯,請在啟動購買對話方塊之前,將中繼資料儲存在後端伺服器,並將其與使用者的帳戶 ID、購買時的 SKU 以及目前的時間戳記建立關聯。詳情請參閱「將購買交易與內部資料建立關聯」一文。

  10. 如果使用者在購買流程中關閉瀏覽器,但未付款,是否會發生逾時錯誤?

    是的,這是已知問題,也是瀏覽器流程的預期行為。 我們正積極開發無縫購買功能 (以 WebView 為基礎),讓付款流程留在遊戲內,解決逾時問題造成的不便。

  11. 從 OAuth 搭配 Google 帳單切換至 DLL 搭配原生 Google 帳單時,有哪些必要條件?

    遊戲可以繼續使用 OAuth 登入 Google 帳戶來管理登入的帳戶,但 Google 建議您停止使用舊版 REST 結帳 API。從 REST 帳單 API (搭配 OAuth2 登入) 切換至 SDK 流程時,可以將這項作業標示為功能旗標,因此在遊戲切換期間,這兩者可以並存一段時間。

  12. Launch Purchase Flow API 呼叫是否透過網頁瀏覽器處理?

    是的,目前只能透過瀏覽器處理。Google 計畫透過 SDK 完成整個流程,不必離開遊戲。

  13. 使用者是否需要分別登入各個遊戲才能購買商品?

    Google Play Games 會使用前景帳戶進行每個遊戲工作階段,因此您不必重新登入。遊戲工作階段開始時,您在 Google Play 遊戲中使用的帳戶,就是 API 呼叫發出的帳戶。在瀏覽器中啟動購買流程時,你必須登入並使用與遊戲工作階段相同的帳戶。如果使用者登入其他帳戶,網頁流程會提示他們切換帳戶。

  14. 遊戲可以同時支援原生 SDK 和舊版付款系統嗎?

    付款系統會根據遊戲二進位檔版本,採用雙向流程模式運作。使用舊版建構版本的用戶會繼續沿用現有流程,而使用新版建構版本的用戶則會改用以 SDK 為基礎的付款方式。在過渡期間,兩種付款流程的使用者會並存。

Windows App Bundle

  1. 使用第三方啟動器提交 WAB 時,是否需要遊戲套件才能接受審查?

    您只需提交安裝程式,不必提交整個遊戲套件,審查人員就能使用安裝程式下載遊戲套件。

  2. WAB 檔案大小是否有限制?

    WAB 的檔案大小上限為 10 GB。

  3. 上傳 WAB 後,為什麼遊戲沒有安裝或顯示?

    如果您的遊戲是首次加入 WAB,且沒有預先存在的電腦版,系統可能會自動將其置於「控管型發布」保留狀態。這是因為沒有現有基準可供更新。 如要完整發布 WAB 並開放安裝遊戲,您必須前往 Google Play 管理中心,手動執行必要的發布動作 (例如點選「發布變更」)。

  4. 如何上傳 WAB 進行內部測試?

    將許可清單帳戶提供給 Google,以便 Google 啟用這些帳戶進行內部測試。Google 取得清單後,會確保這些人員納入新手上路程序。

  5. 應將 WAB 套件上傳至何處?

    您可以在第一個問題中提及的位置上傳 WAB 套件。但無法手動發布。您必須向 Google 後端人員提供精確的世界標準時間 (以小時為單位)。Google 會設定發布時間表,確保內容準時發布。

電腦 SDK

  1. 舊版 API 與 Google Play 遊戲電腦版 SDK 有何不同?

    • 舊版 API 僅提供帳單功能。
    • 電腦 SDK 支援 Google 電腦服務 (GDS) 和完整電腦功能。
    • 使用電腦版 SDK 時,不需要透過瀏覽器登入 Google 帳戶。
  2. 是否能直接使用遊戲啟動器啟動遊戲,而不透過 Google Play 遊戲電腦版,藉此初始化 SDK?

    遊戲必須透過 Google Play 遊戲電腦版用戶端啟動。詳情請參閱這份開發人員文件

  3. 原生電腦版 SDK 是否支援 PEM 認證檔案中的多位元組字元?

    是,SDK 支援認證的多位元組字元。

  4. SDK 如何處理多個執行個體或帳戶的 Google 帳戶登入作業?

    Google Play Games 中的每次遊戲啟動都會視為「遊戲工作階段」,每個「遊戲工作階段」都可以與帳戶建立關聯。可能有所不同。因此,如果使用帳戶 A 啟動遊戲,然後切換至帳戶 B 並重新啟動,兩者可以同時執行。

  5. Play 安裝參照整合功能是否適用於電腦版 SDK?

    電腦 SDK (25.5.409.0 以上版本) 支援 Play 安裝參照網址 API。詳情請參閱「Play 安裝參照 API」。

啟動器

  1. 如果玩家使用第三方啟動器,而非 Google Play 用戶端,系統會自動同步處理他們的 Play Games 服務帳戶嗎?

    如要讓 SDK 函式運作,遊戲必須直接透過 Google Play Games 用戶端啟動。如果遊戲是由其他程序 (例如安裝程式或啟動器應用程式) 啟動,則該程序本身必須從 Google Play Games 用戶端啟動。遊戲必須將從用戶端收到的所有參數傳遞至用戶端程序。

  2. 如果 Google Play Games 啟動第三方遊戲啟動器,我該如何處理初始化作業?

    您不必直接將 SDK 整合至啟動器。不過,您必須將啟動器從 Google Play Games 用戶端收到的所有命令列引數,直接傳遞至產生的子項程序 (遊戲執行檔)。如果初始化失敗 (例如傳回 kActionRequiredShutdownClientProcess),系統必須終止所有程序 (包括啟動器),Google Play Games 才能嘗試復原並自動重新啟動遊戲。詳情請參閱設定指南中的步驟 5

  3. 遊戲和啟動器進入正式版後,如何處理更新和維護作業?

    後續更新和維護作業必須透過啟動器實作。Google Play Games 用戶端不支援更新功能,因此啟動器必須能夠更新遊戲和啟動器本身。

初始化

  1. 使用 Google Play Games 應用程式啟動遊戲時,系統會同步處理我的 Google 帳戶詳細資料嗎?

    透過 Google Play Games 用戶端啟動遊戲後,帳戶會自動同步,不需要再次透過 Google 登入程序登入。

  2. 初始化參數可以重複使用嗎?

    只要 Google Play Games 用戶端正在執行,且登入資訊有效,即可進行這項操作。不過,在指南所述的情況中,當使用者關閉遊戲或遊戲因 SDK 初始化失敗 (例如 kActionRequiredShutdownClientProcess) 而結束時,遊戲啟動的所有程序都必須終止。

  3. 是否有任何方法可以建立快速鍵,直接開啟遊戲?

    您可以使用下列 URI 直接開啟遊戲:

    googleplaygames://launch/?pid=2&id=com.company.gamename

    URI 支援偵測 Google Play 遊戲電腦版用戶端是否已開啟。如果用戶端未開啟,系統會先開啟 Google Play Games 用戶端,再執行遊戲或啟動器。您需要管理遊戲或啟動器,防止多個執行個體執行。

測試

  1. 是否有任何類似於行動裝置的開放式或封閉式測試環境?

    雖然我們沒有提供專用的端對端沙箱,但瞭解開發人員需要類似正式環境的測試環境。我們很快就會提供更完善的解決方案。

  2. 如何新增測試人員?

    Google 聯絡窗口會為每個 PC 專案建立電子郵件群組,並在其中加入測試人員的 Google 帳戶。只有這個電子郵件群組的成員,才能在 Google Play Games 中下載測試套件。

其他

  1. 可以使用 VPN 嗎?

    如果開發人員需要在 Google Play 遊戲電腦版不支援的區域測試遊戲,建議使用 VPN 取得支援區域的 IP 位址。

    請務必在 VPN 上啟用 TUN 模式。如需如何啟用 TUN 模式及設定防火牆的指引,請參閱 VPN 供應商的操作手冊。

    啟用 TUN 模式後,請安裝 Google Play 遊戲電腦版和模擬器,以進行測試。

  2. 如何使用 Unity 或 UE 編輯器,開始開發 Google Play Games 電腦版遊戲?

  3. 如何正確使用登錄機碼?

    您應根據根 Hive 建立登錄機碼。您可以根據用途和資料性質,將根 Hive 設為 HKEY_LOCAL_MACHINEHKEY_CURRENT_USER。本指南以 HKEY_LOCAL_MACHINE hive 為例。

  4. Google 審查電腦套裝組合時有哪些規定?

    電腦套件會經過惡意軟體掃描,之後審查員只會測試遊戲安裝、成功啟動和解除安裝程序。

  5. 是否需要整合所有 API?

    雖然不一定要使用其他 API,但這麼做有幾點好處。google::play::billing,才能提供應用程式內購項目和銷售數位內容。google::play::install_referrer 可追蹤推薦資料,協助您瞭解哪些流量來源帶來的下載使用者最多。google::play::games::integrity 可偵測潛在風險裝置和不明模擬器,保護應用程式免受惡意行為者侵害。

  6. 為什麼關閉 Google Play Games 用戶端時,有些遊戲程序會終止,有些則不會?

    Google 不會控管執行中遊戲的子程序或程序。 行為取決於遊戲是 Android 模擬遊戲還是原生電腦遊戲。模擬遊戲會安裝在自己的環境中,因此行為主要取決於模擬器初始化和關機。

  7. 我應該使用 Google Play Games 解除安裝功能,還是自訂解除安裝程式?

    Google 建議使用 Google Play Games 解除安裝功能。

其他協助

如果常見問題無法解答您的疑問,請來信至 google-play-games-pc@google.com 尋求協助。