Google Play 遊戲電腦版的電腦相容性和最佳化

Google Play 遊戲電腦版要求您針對遊戲的電腦相容性和最佳化做出調整,這些異動可確保您的遊戲能在電腦上執行,且能在平台上提供最佳使用者體驗。

此外,Google Play 遊戲電腦版也有關於圖形、裝置輸入和跨裝置遊戲的規定。詳情請參閱入門指南

針對電腦相容性和最佳化進行調整 (x86-64 支援除外) 時,您可以為遊戲設定 Google Play 遊戲電腦版偵測機制,據此停用或啟用平台專屬功能。這樣一來,您就可以針對 Android 行動裝置和電腦版本使用相同的 APK 或應用程式套件。

以下摘述本頁面所述要求和建議:

包含 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 目標:

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

  2. 為您的 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 Play 遊戲電腦版不支援以下模組,但這些模組失敗時,並不會導致 Google Play 遊戲電腦版發生問題:

已毀損

這是發布程序的必要項目

請勿在電腦上使用這些模組,以免造成在 Google Play 遊戲電腦版中出現非預期的行為。

啟用限定範圍儲存空間

這是發布程序的必要項目

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

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

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

數據分析

舊版 Google Analytics (分析) 產品無法在 Google Play 遊戲電腦版中運作。如果您的遊戲屬於這種情況,請將其遷移至 Google Analytics (分析) 4

只有在目前是使用 Google Analytics (分析) 360 的情況下,遊戲才會受到影響。如果您使用 Firebase SDK 追蹤遊戲中的數據分析事件,而且 Google Analytics (分析) 控制台可將您的遊戲顯示為資源,就不必採取進一步行動。