本文將回答關於 SDK 和發布 Google Play 遊戲電腦版的常見問題。
營利
我可以在沒有後端伺服器的情況下使用購買流程嗎?
從安全性的角度來看,Google 建議使用後端伺服器。
詳情請參閱「不使用後端伺服器進行處理」。
整合 Google Play 遊戲電腦版 SDK 後,是否仍可使用現有的 API 支付系統?
所有付款交易都必須透過 Google Play 帳款服務,由 Google Play 遊戲電腦版 SDK 處理。您無法在同一款遊戲中使用現有的 API 付款方式。
如何在開發人員模式下使用購買交易?
請在 3 分鐘內以開發人員模式處理購買交易,否則系統會退款。
系統是否支援定期付款或訂閱?
近期內不會,但歡迎提供具體用途,以便我們納入未來的發展藍圖。
購買通話時發生帳單錯誤是什麼意思?
BillingError 是付款結果的回應。LaunchPurchaseFlow 會立即傳回,不會遭到封鎖,但您必須監聽回呼 ,才能瞭解何時完成並擷取結果。
如何使用用戶端購物驗證?
建議使用伺服器端購買交易和驗證程序。 如要處理用戶端應用程式的購買交易,遊戲必須在許可清單中。如果遊戲需要存取權,請與 Google 合作夥伴聯絡。 詳情請參閱「不使用後端伺服器進行處理」。
查詢產品詳細資料的 API 限制為何?
單次呼叫
QueryProductDetailsAPI 時,最多可查詢 50 項產品。如果超過這個上限,請將要求拆成多個呼叫。在 Billing Client 中呼叫 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 以及目前的時間戳記建立關聯。詳情請參閱「將購買交易與內部資料建立關聯」。
如要從 OAuth 搭配 Google 帳單切換至以 DLL 為基礎的 Google 帳單,需要符合哪些條件?
遊戲可以繼續使用 OAuth 登入 Google 帳戶來管理登入的帳戶,但 Google 建議您停止使用舊版 REST 結帳 API。從 REST 帳單 API (使用 OAuth2 登入) 切換至 SDK 流程時,可以透過功能旗標作業進行,因此在遊戲切換期間,兩者可以並存一段時間。
Launch Purchase Flow API 呼叫是否透過網路瀏覽器處理?
不會。現在購買流程完全在遊戲內完成,使用無縫 WebView 疊加層,不必離開遊戲用戶端。
使用者是否需要分別登入各個遊戲才能購買商品?
Google Play Games 會使用前景帳戶進行每場遊戲,因此您不必重新登入。遊戲工作階段開始時,您在 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 後端人員提供精確的世界標準時間 (以小時為單位)。Google 會設定發布時間表,確保內容準時發布。
電腦 SDK
舊版 API 和 Google Play 遊戲電腦版 SDK 有何差異?
- 舊版 API 僅提供帳單功能。
- 電腦 SDK 支援 Google 電腦服務 (GDS) 和完整電腦功能。
- 使用 PC SDK 時,不需要透過瀏覽器登入 Google 帳戶。
是否能透過遊戲啟動器直接啟動遊戲,而不需透過 Google Play 遊戲電腦版,藉此初始化 SDK?
遊戲必須透過 Google Play 遊戲電腦版用戶端啟動。詳情請參閱這份開發人員文件。
PC SDK 是否支援 PEM 認證檔案中的多位元組字元?
是,SDK 支援認證的多位元組字元。
SDK 如何處理多個執行個體或帳戶的 Google 帳戶登入作業?
Google Play Games 中的每次遊戲啟動都會視為「遊戲工作階段」,每個「遊戲工作階段」都可以有相關聯的帳戶。可能有所不同。因此,如果使用帳戶 A 啟動遊戲,然後切換至帳戶 B 並重新啟動,兩者可以同時執行。
Play 安裝參照整合功能是否適用於電腦版 SDK?
電腦 SDK (25.5.409.0 以上版本) 支援 Play 安裝參照網址 API。 詳情請參閱「Play Install Referrer API」。
啟動器
如果玩家使用第三方啟動器,而非 Google Play 用戶端,系統會自動同步處理他們的 Play Games 服務帳戶嗎?
如要讓 SDK 函式運作,遊戲必須直接透過 Google Play Games 用戶端啟動。如果遊戲是由其他程序 (例如安裝程式或啟動器應用程式) 啟動,則該程序本身必須從 Google Play Games 用戶端啟動。遊戲必須將從用戶端收到的所有參數傳遞至用戶端程序。
如果 Google Play Games 啟動第三方遊戲啟動器,我該如何處理初始化作業?
您不必直接將 SDK 整合至啟動器。不過,您必須將啟動器從 Google Play Games 用戶端收到的所有命令列引數,直接傳遞至產生的子程序 (遊戲執行檔)。如果初始化失敗 (例如傳回
kActionRequiredShutdownClientProcess),系統必須終止所有程序 (包括啟動器),Google Play Games 才能嘗試復原並自動重新啟動遊戲。詳情請參閱設定指南中的步驟 5。遊戲和啟動器進入正式版後,如何處理更新和維護作業?
後續更新和維護作業必須透過啟動器實作。Google Play Games 用戶端不支援更新功能,因此啟動器必須能夠更新遊戲和啟動器本身。
安裝程式如何接收 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 Games 用戶端,再執行遊戲或啟動器。您需要管理遊戲或啟動器,防止多個執行個體執行。
是否能不使用 SDK,驗證 Google Play 遊戲電腦版安裝作業?
您不必整合 SDK,只要檢查是否有下列 Windows 登錄檔機碼,即可驗證 Google Play 遊戲電腦版的安裝狀態:
HKEY_LOCAL_MACHINE\SOFTWARE\Google\Play Games Services如果存在這個金鑰,表示電腦已安裝 Google Play 遊戲服務 (在電腦上執行遊戲時必須安裝)。如果缺少金鑰,請引導使用者前往 Google Play 遊戲電腦版安裝頁面,下載並安裝用戶端。
測試
是否有任何類似於行動裝置的開放式或封閉式測試環境?
雖然我們沒有提供專用的端對端沙箱,但我們瞭解開發人員需要類似正式環境的測試環境。我們很快就會提供更完善的解決方案。
如何新增測試人員?
Google 聯絡窗口會為每個 PC 專案建立電子郵件群組,並在其中加入測試人員的 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_MACHINE蜂巢為例。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 尋求協助。