Google Play 遊戲正在進行 Beta 版公開測試。

相容性和最佳化

Stay organized with collections Save and categorize content based on your preferences.

Google Play 遊戲要求您在遊戲中加入電腦相容性和電腦最佳化。除了這些變更外,您也必須更新遊戲的圖像設定,確保電腦相容性。

如要瞭解使用者如何安裝平台及設定開發機器,請參閱最低電腦需求

包含 x86 ABI 架構

所有包含在遊戲中的程式庫都必須具備與 x86 ABI 相容的版本,以確保平台能提供最佳效能和穩定性。Google Play 遊戲同時支援 32 位元和 64 位元版本,但您只要選擇其中一個版本即可。

程式庫合輯

為了確保 x86 處理器的最大相容性,請勿在編譯程式庫時使用 Atom 指令集。舉例來說,使用 gcc 時應避免使用 -march=atom,而是改用 -march=x86-march=x86-64

Unity 中的目標架構

如果您的遊戲使用的是 Unity 遊戲引擎,請按照下列步驟啟用 x86/x86-64 Android 目標:

  1. 依序前往「Player Settings」>「Other Settings」>「Configuration」>「Scripting Backend」,然後從下拉式選單中選取「IL2CPP」以啟用 IL2CPP 指令碼後端。

  2. 為您的 Unity 版本啟用 x86 Android 目標:

    • Unity 2018 及以下版本:依序前往「Player Settings」>「Other Settings」>「Target Architecture」,然後選取「x86」核取方塊。

    • Unity 2019 長期支援版 (LTS) 及以上版本:依序前往「Player Settings」>「Other Settings」>「Target Architecture」,然後同時啟用「x86 (Chrome OS)」和「x86-64 (Chrome OS)」

為了盡可能提高對遊戲引擎的支援,建議您同時啟用 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 動作 (例如「雙指撥動以縮放」)
  • 向使用者顯示的所有文字都應顯示「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 功能,請參閱監控連線狀態和連線計量。如需不支援功能的完整清單,請參閱應用程式資訊清單相容性指南

下列常用硬體功能與電腦「不相容」,因此請務必在提交最終版本給 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

電腦「不支援」下列常用權限:

  • 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

外部網站和 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 Play 遊戲不支援這些模組,但這些模組失敗時並不會造成 Google Play 遊戲發生問題:

已毀損

請勿使用這些模組,以免在 Google Play 遊戲中產生非預期的行為。

啟用限定範圍儲存空間

如果遊戲讀取/寫入外部儲存空間,則適用本小節。您必須強制啟用限定範圍儲存空間,做為讀取及寫入儲存空間的替代方式,這樣就不必再提示玩家授予下列機密權限:

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

如要進一步瞭解限定範圍儲存空間,請參閱:

停用電腦版遊戲中的行動廣告

如要根據電腦將遊戲最佳化,請停用電腦版本上的行動廣告 (包括行動廣告 SDK 提供的所有廣告單元),原因在於這類廣告與桌上型電腦和筆記型電腦不相容。您「不必」變更行動版遊戲中的廣告。建議您使用功能旗標限制只對電腦版遊戲進行變更。請注意,您還是可以在 Chrome OS 上保留行動廣告。

移除行動廣告時,請務必完成以下步驟:

  • 停用所有行動廣告單元,包括橫幅廣告、插頁式廣告和獎勵廣告。
  • 停用遊戲中需使用獎勵廣告使用的功能。舉例來說,如果某項功能讓使用者透過觀看影片廣告賺取遊戲代幣,您便可以透過按鈕停用或完全移除該功能。

Analytics (分析)

舊版 Google Analytics (分析) 產品無法在 Google Play 遊戲中運作。在這種情況下,您應該遷移至 Google Analytics (分析) 4

目前只有在使用 Google Analytics (分析) 360 時,才會生效。如果您使用 Firebase SDK 追蹤遊戲中的數據分析事件,而且可在 Google Analytics (分析) 控制台中以資源形式查看遊戲,就不必採取進一步行動。