Google Play 遊戲要求您針對遊戲的電腦相容性和最佳化做出調整。這些異動可確保您的遊戲能在電腦上執行,且能在平台上提供最佳使用者體驗。
此外,Google Play 遊戲也有圖形、裝置輸入和跨裝置遊戲的需求。詳情請參閱入門指南。
針對電腦相容性和最佳化進行調整 (x86 支援除外) 時,您可以為遊戲設定 Google Play 遊戲偵測機制,據此停用或啟用平台專屬功能。這樣一來,您就可以針對 Android 行動裝置和電腦版本使用相同的 APK 或應用程式套件。
以下提供本頁面所述的必要項目和建議項目摘要:
- 包含 x86 ABI 架構 (必要)
- 在執行階段偵測 Google Play 遊戲 (建議)
- 處理 onPause 事件 (建議)
- 更新 UI 元素 (必要)
- 停用 Android 應用程式權限對話方塊 (必要)
- 停用不支援的 Android 功能與權限 (必要)
- 將 WebView 替換為瀏覽器意圖 (建議)
- 停用不支援的 Google Play 服務 API (必要)
- 啟用限定範圍儲存空間 (必要)
- 在電腦上停用行動廣告 (建議)
- 遷移至 Google Analytics (分析) 4 (建議)
包含 x86 ABI 架構
這是發布程序的必要項目
遊戲內含的所有程式庫都必須具備與 x86 ABI 相容的版本,才能確保遊戲在平台上提供最佳效能和穩定性。Google Play 遊戲同時支援 32 位元和 64 位元版本,但您只要選擇其中一個版本即可。
程式庫編譯
為了確保 x86 處理器的最佳相容性,請勿在編譯程式庫時使用 Atom 指令集。舉例來說,使用 gcc
時應避免使用 -march=atom
,而是改用 -march=x86
或 -march=x86-64
。
Unity 中的目標架構
Unity 2019 和 2020 的部分版本在 Android 上不支援 x86 架構。請務必使用 Unity 2019.4.31f1、2020.3.19f1 以上版本。
如果遊戲使用相容的 Unity 遊戲引擎版本,請按照下列步驟啟用 x86/x86-64 Android 目標:
依序前往「Player Settings」>「Other Settings」>「Configuration」>「Scripting Backend」,然後從下拉式選單中選取「IL2CPP」以啟用 IL2CPP 指令碼後端。
為您的 Unity 版本啟用 x86 Android 目標:
Unity 2018 以下版本:依序前往「Player Settings」>「Other Settings」>「Target Architecture」,然後勾選「x86」核取方塊。
Unity 2019 長期支援版 (LTS) 及以上版本:依序前往「Player Settings」>「Other Settings」>「Target Architecture」,然後同時啟用「x86 (ChromeOS)」和「x86-64 (ChromeOS)」。
為了對遊戲引擎提供最佳支援,建議您同時啟用 x86 和 x86-64 支援,或者僅啟用 x86-64,以免受限於 32 位元的記憶體空間。
由於 Unity 2018 僅支援 x86 目標,因此您可以略過 x86-64 支援。不過,由於 64 位元的版本要求,您無法在 Android 上發布該版本。 在這種情況下,您必須為 Google Play 遊戲維護另一個版本。
偵測 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 功能與權限
這是發布程序的必要項目
部分在手機或平板電腦上可用的 Android 功能無法在電腦上使用,包括相機等硬體功能,以及使用者位置等其他功能。因此,您的遊戲不應仰賴不支援的 Android 功能或權限。如果您的遊戲在電腦上要求存取不支援的權限,則要求會自動失敗。
如要讓遊戲與電腦相容,必須進行以下變更:
在應用程式資訊清單中,為 Google Play 遊戲不支援的所有功能,將
android:required="false"
加入<uses-feature>
宣告。這個做法僅適用於應用程式資訊清單中已宣告的功能。假如您的遊戲功能必須使用電腦不支援的硬體和軟體功能,請停用該功能。如果您使用的 APK 與手機遊戲相同,可以針對電腦有條件停用這些功能。
停用遊戲中不支援的 Android 權限要求,以及需要使用這些權限的功能。如果您使用的 APK 與手機遊戲相同,可以針對電腦有條件進行這些變更,但不應變更資訊清單中宣告的權限。
如要進一步瞭解應用程式資訊清單的相容性,請參閱 Chromebook 應用程式資訊清單相容性指南。
功能測試相關要求
向 Google Play 管理中心提交第一個測試版本前,請先移除下列硬體功能:
android.hardware.wifi
android.hardware.bluetooth
android.hardware.camera
android.hardware.location
android.hardware.microphone
如要進一步瞭解如何移除 android.hardware.wifi
功能,請參閱「監控連線狀態和連線計量功能」一文。如需不支援功能的完整清單,請參閱 Chromebook 的應用程式資訊清單相容性指南。
品質測試相關要求
下列常用硬體功能與電腦「不相容」,因此請務必在提交最終版本給 Google Play 管理中心前移除:
android.hardware.audio.pro
android.hardware.bluetooth
android.hardware.camera
android.hardware.consumerir
android.hardware.location
android.hardware.microphone
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.FOREGROUND_SERVICE
android.permission.INSTALL_PACKAGES
android.permission.READ_PHONE_STATE
android.permission.USE_CREDENTIALS
android.permission.CAMERA
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.WRITE_SETTINGS
android.permission.REQUEST_INSTALL_PACKAGES
android.permission.SYSTEM_ALERT_WINDOW
android.permission.READ_CONTACTS
com.google.android.gms.permission.ACTIVITY_RECOGNITION
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.GET_ACCOUNTS
android.permission.RECORD_AUDIO
android.permission.RECEIVE_BOOT_COMPLETED
外部網站和 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 AdMob (行動廣告、廣告 ID)
- 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
- 鄰近分享
- 全景
- 地點
- Google+
- SafetyNet (已淘汰;如要選擇使用即將推出的 Play Integrity API,請填寫意願調查表)
- Google 代碼管理工具
- Wear OS
已毀損
這是發布程序的必要項目
這些模組不得使用在電腦上,以免造成在 Google Play 遊戲中出現非預期的行為。
啟用限定範圍儲存空間
這是發布程序的必要項目
本節內容適用於遊戲讀取或寫入外部儲存空間的情況。您必須強制啟用限定範圍儲存空間,做為讀取及寫入儲存空間的替代方式,這樣就不必再提示玩家授予下列機密權限:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
如要進一步瞭解限定範圍儲存空間,請參閱:
停用電腦版遊戲中的行動廣告
這是發布程序的必要項目
如要針對電腦為遊戲進行最佳化調整,您必須停用電腦版本的行動廣告,包括行動廣告 SDK 提供的所有廣告單元,原因在於這類廣告與電腦不相容。您「不」需要針對行動版遊戲中的廣告進行任何變更。建議您使用功能旗標,限制僅對遊戲的電腦版本進行變更。請注意,您還是可以在 ChromeOS 上保留行動廣告。
移除行動廣告時,請務必完成以下步驟:
停用所有行動廣告單元,包括橫幅廣告、插頁式廣告和獎勵廣告。
停用遊戲中需使用獎勵廣告使用的功能。舉例來說,如果某項功能讓使用者透過觀看影片廣告賺取遊戲代幣,您便可以透過按鈕停用或完全移除該功能。
Analytics (分析)
舊版 Google Analytics (分析) 產品無法在 Google Play 遊戲中運作。如果您的遊戲屬於這種情況,請將其遷移至 Google Analytics (分析) 4。
只有在目前是使用 Google Analytics (分析) 360 的情況下,遊戲才會受到影響。如果您使用 Firebase SDK 追蹤遊戲中的數據分析事件,而且 Google Analytics (分析) 控制台可將您的遊戲顯示為資源,就不必採取進一步行動。