如要讓遊戲在 Google Play 遊戲電腦版上執行,您必須針對電腦相容性和最佳化做出調整。這些調整可確保遊戲在電腦上順利執行,並在平台上提供最佳使用者體驗。
此外,Google Play 遊戲電腦版也有關於圖像、裝置輸入和跨裝置遊戲的規定。詳情請參閱入門指南。
針對電腦相容性和最佳化做出調整時 (x86-64 支援除外),您可以為遊戲設定 Google Play 遊戲電腦版偵測機制,據此停用或啟用平台專屬功能。這樣一來,您就可以針對 Android 行動裝置和電腦版本使用相同的 APK 或應用程式套件。
以下為本頁面所述必要項目和建議項目的摘要:
- 包含 x86-64 ABI (必要)
- 在執行階段偵測 Google Play 遊戲 (建議)
- 處理 onPause 事件 (建議)
- 更新 UI 元素 (必要)
- 停用 Android 應用程式權限對話方塊 (必要)
- 停用不支援的 Android 功能與權限 (必要)
- 將 WebView 替換為瀏覽器意圖 (建議)
- 停用不支援的 Google Play 服務 API (必要)
- 啟用限定範圍儲存空間 (必要)
- 遷移至 Google Analytics 4 (建議)
包含 x86-64 ABI 架構
這是發布程序的必要項目
遊戲內含的所有程式庫都必須具備與 x86-64 ABI 相容的版本,才能確保遊戲在平台上提供最佳效能和穩定性。
如果遊戲因技術問題無法發布 64 位元 x86 執行檔,請務必與審查團隊聯絡,要求將遊戲視為例外狀況處理。在此情況下,遊戲無法取得完整認證,但可以列入「可玩」的遊戲目錄。
程式庫編譯
為確保 x86-64 處理器的最佳相容性,請勿在編譯程式庫時使用 Atom 指令集。舉例來說,使用 gcc
時,請避免使用 -march=atom
,並改用 -march=x86-64
。
Unity 中的目標架構
Unity 2019 和 2020 的部分版本在 Android 上不支援 x86-64 架構。請務必使用 Unity 2019.4.31f1、2020.3.19f1 以上版本。
如果遊戲使用相容的 Unity 遊戲引擎版本,請按照下列步驟啟用 x86-64 Android 目標:
依序前往「Player Settings」>「Other Settings」>「Configuration」>「Scripting Backend」,然後從下拉式選單中選取「IL2CPP」,啟用 IL2CPP 指令碼後端。
為您的 Unity 版本啟用 x86-64 Android 目標:
Unity 2018 以下版本:依序前往「Player Settings」>「Other Settings」>「Target Architecture」,然後勾選「x86」核取方塊。由於 Unity 2018 僅支援 x86 目標,因此您將無法建構 x86-64。這個版本需要審查團隊以例外狀況處理。請洽詢 Google 聯絡人,提出 x86 例外狀況申請。
Unity 2019 長期支援版 (LTS) 以上版本:依序前往「Player Settings」>「Other Settings」>「Target Architectures」,然後啟用「x86-64 (ChromeOS)」。
偵測 Google Play 遊戲電腦版
您可以在執行階段偵測 Google Play 遊戲電腦版平台,據以在遊戲中啟用或停用平台專屬功能。
請檢查系統功能 com.google.android.play.feature.HPE_EXPERIENCE
,判斷遊戲是否正在 Google Play 遊戲電腦版平台上運作:
Kotlin
var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
Java
PackageManager pm = getPackageManager(); boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
C#
var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity"); var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager"); var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
處理 Android 生命週期事件
在 Google Play 遊戲電腦版環境中,請務必處理 onPause
(C++) 事件。玩家啟用模擬器疊加畫面後,系統就會顯示遊戲,因此如果無法監聽 onPause
事件,可能導致使用者體驗不佳。
更新 UI
某些 UI 元素和手勢不適用於電腦,因此需要更新。
必要項目:
- 替換需要兩根手指以上的 (多點觸控手勢) 的 UI 動作。舉例來說,您應該將雙指撥動縮放和其他多點觸控手勢,替換成相應的滑鼠和鍵盤輸入動作。如要進一步瞭解裝置輸入的變更方式,請參閱「輸入支援」一文。
建議項目:
- 向使用者顯示的所有文字都應顯示「click」(點選),而不是「tap」(輕觸)。
- 可捲動的清單應含有捲軸。
- 可平移的區域應含有捲軸,或是以其他方式快速穿越較大的距離。
- 不要在畫面上顯示可點擊的鍵盤,供使用者輸入文字。
- 所有文字項目都應該在文字欄位的邊界內。
- 可見元素的點擊動作應該:
- 接受點選元素可見範圍的「任何位置」。
- 不接受在可見元素以外區域的點擊動作。
- 對話方塊應具有可見的關閉按鈕。請勿在對話方塊邊界外偵測點擊動作。
停用大部分的權限對話方塊
除了麥克風權限以外,Google Play 遊戲電腦版不會顯示權限對話方塊,因此請勿嘗試在執行階段顯示這類對話方塊或要求權限。如果先前會顯示權限對話方塊,則應更新遊戲,不再於電腦上顯示這類對話方塊。
不支援的 Android 功能與權限
這是發布程序的必要項目
在電腦上,有些常見的手機和平板電腦硬體功能會無法使用,例如相機或玩家位置等功能。如果遊戲要求缺少的功能,就無法下載並安裝至玩家的電腦。若是在電腦上要求缺少的功能,則會自動失敗。
如要查看可用功能的完整清單,請輸入以下指令:
adb shell pm list features
為了讓遊戲與電腦相容,請務必做出以下變更:
開啟應用程式資訊清單,在
<uses-feature>
宣告中加入android:required="false"
,確實將功能標示為非必要。這個做法僅適用於已在應用程式資訊清單中宣告的功能。切勿試圖在執行階段使用缺少的功能。如果行動裝置和電腦測試群組使用相同的 APK,請在執行階段偵測電腦環境,並避開相關的程式碼路徑。
切勿在執行階段要求不支援的 Android 權限。如果行動裝置和電腦測試群組使用相同的 APK,請在執行階段偵測電腦環境,並避開相關的程式碼路徑。您不必更新資訊清單。
如要進一步瞭解應用程式資訊清單相容性,請參閱「Chromebook 的應用程式資訊清單相容性」指南。
功能測試需求
向 Google Play 管理中心提交第一個測試版本前,請先移除下列硬體功能:
android.hardware.wifi
android.hardware.bluetooth
android.hardware.camera
android.hardware.location
基於相容性因素執行 pm list features
時,上述部分功能可能會列為支援功能,但其實並未完整實作。如要進一步瞭解如何移除 android.hardware.wifi
功能,請參閱「監控連線狀態和連線計量功能」一文。如需不支援功能的完整清單,請參閱 Chromebook 的應用程式資訊清單相容性指南。
品質測試需求
下列常用硬體功能與電腦「不相容」,因此請務必在提交最終版本給 Google Play 管理中心前移除:
android.hardware.audio.pro
android.hardware.bluetooth
android.hardware.camera
android.hardware.consumerir
android.hardware.location
android.hardware.nfc
android.hardware.sensor.light
android.hardware.sensor.accelerometer
android.hardware.sensor.barometer
android.hardware.sensor.compass
android.hardware.sensor.gyroscope
android.hardware.sensor.proximity
android.hardware.telephony
android.hardware.touchscreen
android.hardware.usb.accessory
android.hardware.usb.host
android.hardware.wifi
android.software.midi
不支援的權限
電腦「不支援」下列常用權限,因此遊戲必須針對 Google Play 遊戲電腦版停用這些權限:
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_WIFI_STATE
android.permission.BLUETOOTH
android.permission.CAMERA
android.permission.FOREGROUND_SERVICE
android.permission.GET_ACCOUNTS
android.permission.INSTALL_PACKAGES
android.permission.READ_CONTACTS
android.permission.READ_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.REQUEST_INSTALL_PACKAGES
android.permission.SYSTEM_ALERT_WINDOW
android.permission.USE_CREDENTIALS
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.WRITE_SETTINGS
com.google.android.gms.permission.ACTIVITY_RECOGNITION
外部網站和 WebView
瀏覽器意圖會在電腦的原生網路瀏覽器中載入,而不是在 Google Play 遊戲電腦版環境中載入。在多數情況下,這是理想的玩家體驗。
為簡化移植過程,Google Play 遊戲電腦版支援 WebView。這會在 Google Play 遊戲電腦版環境中開啟,因此缺少一般的電腦版瀏覽器。如果您先前使用 WebView
提供服務條款、隱私權政策或其他類似內容,請改為叫用瀏覽器意圖。
停用不支援的 Google Play 服務 API
這是發布程序的必要項目
Google Play 遊戲電腦版也會自行提供 Google Play 服務變化版本,不過該變化版本只包含部分 Google Play 服務 API。請確認應用程式不會強烈仰賴已省略或電腦不支援的模組。有些模組或許可供使用,但其功能並非隨時受到支援。舉例來說,Google Play 遊戲電腦版關閉時,Firebase 雲端通訊就無法運作。
支援的模組
Google Play 遊戲電腦版目前提供並支援下列模組,且預計支援其他功能:
有限支援
以下模組的部分功能可以運作。我們會盡力在 Google Play 遊戲電腦版上支援這些模組,但不保證模組可完整運作。
- Google 雲端通訊 (已淘汰,請使用 Firebase 雲端通訊)
- Firebase 驗證 (電話號碼驗證無法運作)
- Firebase 雲端通訊
- Firebase 通用程式庫
- Firebase ML
- Firebase 遠端設定
- Firebase Analytics
不支援
Google Play 遊戲電腦版不支援以下模組,但這些模組失敗時,並不會導致 Google Play 遊戲電腦版發生問題:
- Google Analytics (已淘汰,請使用 Firebase Analytics)
- Google Cast
- Awareness API
- 雲端硬碟 (已淘汰,將於近期移除)
- FIDO
- Firebase 即時資料庫
- Firestore
- Firebase A/B 測試
- Google Fit
- Address API
- Instant Apps API
- Location API
- Google Maps SDK
- Nearby
- Panorama
- Places
- Google+
- SafetyNet (已淘汰;如要選擇使用即將推出的 Play Integrity API,請填寫意願調查表)
- Google 代碼管理工具
- Wear OS
已毀損
這是發布程序的必要項目
請勿在電腦上使用這些模組,以免導致 Google Play 遊戲電腦版中出現非預期行為。
啟用限定範圍儲存空間
這是發布程序的必要項目
本節內容適用於遊戲讀取或寫入外部儲存空間的情況。您必須強制啟用限定範圍儲存空間,做為讀取及寫入儲存空間的替代方式,這樣就不必再提示玩家授予下列機密權限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
如要進一步瞭解限定範圍儲存空間,請參閱:
Analytics
舊版 Google Analytics 產品無法在 Google Play 遊戲電腦版中運作。如果您的遊戲屬於這種情況,請遷移至 Google Analytics 4。
這只會影響目前使用 Google Analytics 360 的遊戲。如果您使用 Firebase SDK 追蹤遊戲中的數據分析事件,而且 Google Analytics 控制台可將您的遊戲顯示為資源,就不必採取進一步行動。