本文將回答關於 SDK 和發布 Google Play 遊戲電腦版的常見問題。
營利
我可以在沒有後端伺服器的情況下使用購買流程嗎?
從安全性的角度來看,Google 建議使用後端伺服器。
詳情請參閱「不使用後端伺服器進行處理」。
整合 Google Play 遊戲電腦版 SDK 後,是否仍可使用現有的 API 支付系統?
所有付款都必須由 Google Play 遊戲電腦版 SDK 透過 Google Play 帳款服務處理。您無法在同一個遊戲中使用現有的 API 付款方式。
如何在開發人員模式下使用購買交易?
請在 3 分鐘內以開發人員模式處理購買交易,否則系統會退款。
系統是否支援定期付款或訂閱?
我們近期內不會提供這項功能,但歡迎提供具體用途,以便我們納入未來的發展藍圖。
購買通話時發生帳單錯誤是什麼意思?
BillingError 是付款結果的回應。LaunchPurchaseFlow 會立即傳回,不會封鎖,但您必須監聽回呼,才能知道何時完成並擷取結果。
如何使用用戶端購物驗證?
建議使用伺服器端購買交易和驗證程序。如要從用戶端應用程式處理購買交易,遊戲必須在許可清單中。如果遊戲需要存取權,請與 Google 合作夥伴聯絡。詳情請參閱「不使用後端伺服器處理交易」。
查詢產品詳細資料的 API 限制為何?
單次呼叫
QueryProductDetailsAPI 時,最多可查詢 50 項產品。如超出此限制,請將要求拆分成多次呼叫。在帳單用戶端中呼叫 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 種可能的錯誤情況,例如使用者取消或網路錯誤。帳單用戶端是否支援啟動購買流程的自訂排序?
在目前的 SDK 設計中,無法傳入您自己的酬載。不過,您可以提供任意組合的
obfuscated_account_id和obfuscated_profile_id。您可以不提供任何一項,也可以只提供其中一項,或同時提供兩者。offer_token欄位為必填,用於指定使用者在結帳程序中嘗試購買的購買方案。目前,Google Play 中的每個 SKU 都只有一個方案 (例如以 $10 美元購買一項商品)。日後,Play 帳款服務團隊將支援多個方案。為確保在購買流程中斷時中繼資料仍與購買交易相關聯,請在啟動購買對話方塊之前,將中繼資料儲存在後端伺服器,並將其與使用者的帳戶 ID、購買時的 SKU 以及目前的時間戳記建立關聯。詳情請參閱「將購買交易與內部資料建立關聯」。
如果使用者在購買流程中關閉瀏覽器,是否會發生逾時錯誤?
是的,這是已知問題,也是瀏覽器流程的預期行為。 我們正積極開發無縫購買功能 (以 WebView 為基礎),讓付款流程留在遊戲內,解決逾時問題造成的不便。
從 OAuth 搭配 Google 帳單切換至 DLL 搭配原生 Google 帳單時,有哪些必要條件?
遊戲可以繼續使用 OAuth 登入 Google 管理已登入的帳戶,但 Google 建議您停止使用舊版 REST 結帳 API。從 REST 帳單 API (使用 OAuth2 登入) 切換至 SDK 流程時,可以透過功能旗標作業進行,因此在遊戲切換期間,兩者可以並存一段時間。
Launch Purchase Flow API 呼叫是否透過網路瀏覽器處理?
是的,目前只能透過瀏覽器處理。Google 計畫透過 SDK 完成整個流程,不必離開遊戲。
使用者是否需要分別登入各個遊戲才能購買商品?
每個遊戲工作階段都會使用 Google Play 遊戲的前景帳戶,因此您不需要重新登入。遊戲工作階段開始時,您在 Google Play 遊戲中使用的帳戶,就是發出 API 呼叫的帳戶。在瀏覽器中啟動購買流程時,您必須登入並使用與遊戲工作階段相同的帳戶。如果使用者登入的帳戶不同,網頁流程會提示他們切換帳戶。
遊戲可以同時支援原生 SDK 和舊版付款系統嗎?
付款系統會根據遊戲二進位檔版本,採用雙流程模式運作。使用舊版建構版本的玩家會繼續使用現有流程,而使用新版建構版本的玩家則會改用 SDK 付款。在轉換期間,兩種付款流程的使用者會並存。
Windows App Bundle
使用第三方啟動器提交 WAB 時,是否需要提供遊戲套件以供審查?
您只需提交安裝程式,不必提交整個遊戲套件,審查人員就能使用安裝程式下載遊戲套件。
WAB 檔案大小是否有限制?
WAB 的檔案大小上限為 10 GB。
上傳 WAB 後,為什麼遊戲沒有安裝或顯示?
如果遊戲是首次加入 WAB,且沒有現有的電腦版,系統可能會自動將遊戲置於控管型發布的保留狀態。這是因為沒有現有的基準可供更新。如要完整發布 WAB 並開放安裝遊戲,您必須前往 Google Play 管理中心,手動執行必要的發布動作 (例如點選「發布變更」)。
如何上傳 WAB 進行內部測試?
將許可清單帳戶提供給 Google,以便 Google 啟用這些帳戶進行內部測試。Google 取得清單後,會確保這些使用者納入新手上路程序。
應將 WAB 套件上傳至何處?
您可以在第一個問題中提及的位置上傳 WAB 套件,但無法手動發布。您必須向 Google 後端人員提供精確的 UTC 時間 (精確到小時),Google 隨後會設定發布時間表,確保準時發布。
電腦 SDK
舊版 API 與 Google Play 遊戲電腦版的差異
SDK?
- 舊版 API 僅提供帳單功能。
- 電腦 SDK 支援 Google 電腦服務 (GDS) 和完整電腦功能。
- 使用電腦 SDK 時,不需要透過瀏覽器登入 Google 帳戶。
是否能透過遊戲啟動器直接啟動遊戲,而不需透過 Google Play 遊戲電腦版,藉此初始化 SDK?
遊戲必須透過 Google Play 遊戲電腦版用戶端啟動。詳情請參閱這份開發人員文件。
原生電腦 SDK 是否支援 PEM 認證檔案中的多位元組字元?
是,SDK 支援認證的多位元組字元。
SDK 如何處理多個執行個體或帳戶的 Google 帳戶登入作業?
Google Play 遊戲中的每次遊戲啟動都會視為「遊戲工作階段」,每個「遊戲工作階段」都可以有相關聯的帳戶。可能有所不同。因此,如果您使用帳戶 A 啟動遊戲,然後切換至帳戶 B 並重新啟動,兩個帳戶可以同時執行遊戲。
Play 安裝參照整合功能是否適用於電腦版 SDK?
電腦 SDK (25.5.409.0 以上版本) 支援 Play 安裝參照網址 API。 詳情請參閱「Play Install Referrer API」。
啟動器
如果玩家使用第三方啟動器,而非 Google Play 用戶端,系統會自動同步處理他們的 Play 遊戲服務帳戶嗎?
如要讓 SDK 函式運作,遊戲必須直接透過 Google Play Games 用戶端啟動。如果遊戲是由其他程序 (例如安裝程式或啟動器應用程式) 啟動,則該程序本身必須從 Google Play Games 用戶端啟動。遊戲必須將從用戶端收到的所有參數傳遞至用戶端程序。
如果 Google Play Games 啟動第三方遊戲啟動器,我該如何處理初始化作業?
您不必直接將 SDK 整合至啟動器。不過,您必須將啟動器從 Google Play 遊戲用戶端收到的所有命令列引數,直接傳遞至產生的子程序 (遊戲可執行檔)。如果初始化失敗 (例如傳回
kActionRequiredShutdownClientProcess),包括啟動器在內的所有程序都必須終止,這樣 Google Play 遊戲才能嘗試復原並自動重新啟動遊戲。詳情請參閱設定指南的步驟 5。遊戲和啟動器進入正式版後,如何處理更新和維護作業?
後續更新和維護作業必須透過啟動器實作。Google Play 遊戲用戶端不支援更新功能,因此啟動器必須能夠更新遊戲和啟動器本身。
安裝程式如何接收 Auto-Play 的 GPG 工作階段符記?
GPG 會使用
--g_session_token=<token>指令列引數將工作階段權杖傳遞至安裝程式。如要啟用這項功能,請在play_publishing_config.xml中設定acceptsCommandLineArguments="true"。安裝程式會負責擷取這個權杖,並用來啟動遊戲。如果權杖產生失敗,GPG 會啟動安裝程式,但沒有權杖 (備援)。
初始化
使用 Google Play Games 應用程式啟動遊戲時,系統會同步我的 Google 帳戶詳細資料嗎?
透過 Google Play Games 用戶端啟動遊戲後,帳戶會自動同步,不需要再次透過 Google 登入程序登入。
初始化參數可以重複使用嗎?
只要 Google Play Games 用戶端正在執行,且登入資訊有效,就能達成這個目標。不過,在指南所述的情境中,當使用者關閉遊戲或遊戲因 SDK 初始化失敗 (例如
kActionRequiredShutdownClientProcess) 而結束時,遊戲啟動的所有程序都必須終止。有辦法建立快速鍵,直接開啟遊戲嗎?
您可以使用下列 URI 直接開啟遊戲:
googleplaygames://launch/?pid=2&id=com.company.gamenameURI 可偵測 Google Play 遊戲電腦版用戶端是否已開啟。如果用戶端未開啟,系統會先開啟 Google Play 遊戲用戶端,再執行遊戲或啟動器。您必須管理遊戲或啟動器,避免執行多個執行個體。
是否能不使用 SDK,驗證 Google Play 遊戲電腦版安裝作業?
如要驗證 Google Play 遊戲電腦版的安裝狀態,不必整合 SDK,只要檢查是否有下列 Windows 登錄機碼即可:
HKEY_LOCAL_MACHINE\SOFTWARE\Google\Play Games Services如果存在這個金鑰,表示電腦已安裝 Google Play 遊戲服務 (在電腦上執行遊戲時必須安裝)。如果缺少金鑰,請引導使用者前往 Google Play 遊戲電腦版安裝頁面,下載並安裝用戶端。
測試
是否有任何類似於行動裝置的開放式或封閉式測試環境?
雖然我們沒有提供專用的端對端沙箱,但我們瞭解開發人員需要類似正式環境的測試環境。我們很快就會提供更完善的解決方案。
如何新增測試人員?
Google 聯絡窗口會為每個電腦專案建立電子郵件群組,並加入測試人員的 Google 帳戶。只有這個電子郵件群組的成員,才能在 Google Play Games 中下載測試套件。
其他
可以使用 VPN 嗎?
如果開發人員需要在 Google Play 遊戲電腦版不支援的區域測試遊戲,建議使用 VPN 從支援的區域取得 IP 位址。
請務必在 VPN 上啟用 TUN 模式。如需如何啟用 TUN 模式及設定防火牆的說明,請參閱 VPN 供應商的操作手冊。
如何使用 Unity 或 UE 編輯器,開始開發 Google Play Games 電腦版遊戲?
- 啟用開發人員模式,然後繼續進行測試。
- 新增
manifest.xml和.dll檔案。詳情請參閱開發人員說明文件。 - 註冊搶先體驗合作夥伴 GUID,以進行測試。
如何正確使用登錄機碼?
您應根據根 Hive 建立登錄檔機碼。您可以根據用途和資料性質,將根 Hive 設為
HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER。本指南以HKEY_LOCAL_MACHINEHive 為例。Google 審查電腦套裝組合時有哪些規定?
電腦套件會經過惡意軟體掃描,之後審查員只會測試遊戲安裝、啟動和解除安裝程序是否正常。
是否必須整合所有 API?
雖然不一定要使用其他 API,但這麼做有幾點好處。
google::play::billing,才能提供應用程式內購項目和銷售數位內容。google::play::install_referrer是追蹤推薦資料的必要條件,可協助您瞭解哪些流量來源帶來的應用程式下載使用者最多。google::play::games::integrity是偵測潛在風險裝置和不明模擬器的必要條件,可保護應用程式免受惡意行為者侵害。為什麼關閉 Google Play Games 用戶端時,有些遊戲程序會終止,有些則不會?
Google 無法控制執行中遊戲的子程序或程序。行為取決於遊戲是 Android 模擬遊戲還是原生電腦遊戲。模擬遊戲會安裝在自己的環境中,因此行為主要取決於模擬器初始化和關閉。
我應該使用 Google Play Games 解除安裝功能,還是自訂解除安裝程式?
Google 建議使用 Google Play Games 解除安裝功能。
其他協助
如果常見問題無法解答您的疑問,請來信至 google-play-games-pc@google.com 尋求協助。