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

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

Analytics

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

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