在開發時使用 Google Play 遊戲電腦版開發人員模擬器

Google Play 遊戲電腦版開發人員模擬器是專為開發人員推出的 Google Play 遊戲電腦版模擬器。此工具可讓您自行安裝套件並執行偵錯,這是玩家無法使用的服務。此外,您也可以模擬各種玩家設定,例如顯示比例、滑鼠模擬和圖形後端,藉此確保遊戲在各種電腦設定下都能正常運作。

啟動模擬器

安裝完成後,系統會顯示「Google Play Games Developer Emulator」啟動選單元素和桌面捷徑,方便您啟動模擬器。當您關閉視窗後,模擬器仍會保留在系統匣中。

登入

您首次執行模擬器時,系統會要求您登入 Google 帳戶。登入時,請使用要用於開發作業的登入憑證。

如要登出,請在系統匣圖示上按一下滑鼠右鍵,然後依序選取「Developer Options」和「Force sign out」。此時,模擬器會立即重新啟動,並要求您再次登入。

啟動模擬器後,您會看到平常的 Android 主畫面。此時若點選滑鼠左鍵,會由系統直接轉譯成以手指輕觸操作,就像使用滑鼠模擬模式一樣。應用程式清單中則會列出已側載進行開發的遊戲,您只要在桌面上點選並向上拖曳 (模擬手機或平板電腦的向上滑動),即可前往該清單。

除了滑鼠轉譯功能外,Google Play 遊戲電腦版開發人員模擬器也支援有助於改善導覽功能的鍵盤快速鍵:

  • ctrl + h:按下主畫面按鈕
  • ctrl + b:按下返回按鈕
  • F11Alt + Enter:在全螢幕和視窗模式之間切換
  • Shift + Tab:開啟 Google Play 遊戲電腦版疊加層,包括 Input SDK 目前的按鍵對應設定

安裝遊戲

Google Play 遊戲電腦版開發人員模擬器會使用 Android Debug Bridge (ADB) 來安裝套件。

ADB 相容性

adb 現行版本可與 Google Play 遊戲電腦版開發人員模擬器相容。此外,當您安裝模擬器時,系統也會在 C:\Program Files\Google\Play Games Developer Emulator\current\emulator 安裝相容版本。

您應可在 $PATH 中找到 ADB,以便按照本文指示操作。您可以使用 adb devices 指令確認 adb 設定是否正確:

adb devices
List of devices attached
localhost:6520  device

安裝遊戲

  • 啟動 Google Play Games for PC Emulator
  • 在命令提示字元中輸入 adb devices。畫面上會顯示下列訊息:

    adb devices
    List of devices attached
    localhost:6520 device
    
  • 疑難排解:

    • 如果收到錯誤訊息,請確認您已按照「ADB 相容性」中的指示操作。
    • 如果找不到裝置,請嘗試透過通訊埠 6520 重新連線:
    adb connect localhost:6520
    
  • 輸入 adb install path\to\your\game.apk 安裝遊戲。如果您已產生 Android App Bundle (AAB),請參閱 bundletool 的操作說明,並改用 bundletool install-apks

  • 透過以下其中一種方式執行遊戲:

    • 輸入 adb shell monkey -p your.package.name 1 執行遊戲,並將 your.package.name 替換成您的遊戲套件名稱。
    • 在 Google Play 遊戲電腦版開發人員模擬器中,按一下圖示即可執行遊戲。和在 Android 手機一樣,您必須在主畫面「向上滑動」,才能看到已安裝的遊戲清單。

對遊戲偵錯

您可以使用 Android Debug Bridge (ADB) 執行偵錯,方法和其他遊戲相同。模擬器會顯示為透過 localhost:6520 連線的裝置。

adb logcat 會照常運作,就像用於修飾或篩選 Logcat 輸出內容的工具 (包括 Android Studio) 一樣。

除了 adb 外,您還可以透過 %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs 目錄存取記錄。這裡 AndroidSerial.log 最為實用,可代表從模擬器啟動那一刻起,adb logcat 回應的任何內容。

開發人員設定

Google Play 遊戲電腦版開發人員模擬器的重心,在於提升開發人員工作效率,而非使用者體驗。也就是說,您擁有不受限制的 Android 系統存取權,包括使用標準 Android 啟動器 (而非 Google Play 遊戲電腦版啟動器),以及控管自動替玩家啟用及停用的功能。

測試滑鼠輸入

在開發過程中,Google Play 遊戲電腦版開發人員模擬器會預設為觸控模擬模式,而非直接讓您以滑鼠輸入。如要啟用直接滑鼠輸入功能,請在系統匣圖示上按一下滑鼠右鍵,然後依序選取「Developer Options」和「PC mode (KiwiMouse)」。

Google Play 遊戲電腦版提供兩種滑鼠模式:模擬模式可將滑鼠點擊轉譯為單指輕觸操作;直通的「電腦模式」則可讓遊戲以原生方式處理滑鼠操作,並執行指標擷取程序。如要進一步瞭解 Google Play 遊戲電腦版的滑鼠輸入方法,請參閱「設定滑鼠輸入」。

在玩家用戶端中,您可以停用模擬功能,方法是在您的資訊清單加入以下內容:

<manifest ...>
  <uses-feature
      android:name="android.hardware.type.pc"
      android:required="false" />
  ...
</manifest>

這個功能旗標在開發環境中沒有任何作用。

測試顯示比例

開發人員模擬器啟動時的顯示比例為 16:9,這與玩家用戶端不同,後者會使用主要螢幕的顯示比例。在系統匣圖示上按一下滑鼠右鍵,選取「Developer Options」,然後在「Display Ratio」部分選取任一選項,即可測試遊戲在不同玩家的螢幕畫面上呈現的外觀。

如果您要設定顯示比例,建議做法是使用 android:minAspectRatioandroid:maxAspectRatio

舉例來說,直向遊戲的顯示比例為 9/160.5625,因此建議您將最大顯示比例設為 1,以免遊戲寬度超過方形範圍:

<activity android:maxAspectRatio="1">
 ...
</activity>

同樣地,橫向遊戲的顯示比例為 16/9 或約 1.778,因此建議您設定 1 做為最小顯示比例,以免遊戲寬度小於方形範圍:

<activity android:minAspectRatio="1">
 ...
</activity>

要測試哪些項目?

如果您在資訊清單中指出遊戲僅支援直向模式,可以在下拉式選單選取「9:16 (Portrait)」,查看遊戲在玩家電腦上的呈現效果。如果您在資訊清單中列有支援的最大和最小橫向比例,請確認您的遊戲可以在此比例下正常運作;別忘了,如要取得完整認證,請務必選取「16:9 (Default)」 (如果您的遊戲僅支援直向模式,則請選取「9:16 (Portrait)」) 進行測試。

測試轉譯後端

Google Play 遊戲電腦版會使用 ANGLE 做為相容性層,確保主機電腦使用 DirectX 或 Vulkan 後端正確處理 OpenGL ES 呼叫。模擬器也會直接支援 Vulkan (但在 DirectX 上不行)。這個相容性層還可將行動裝置專用的壓縮紋理格式轉換為電腦相容格式。建議您在系統匣圖示上按一下滑鼠右鍵並選取「Graphics Stack Override」,將 ANGLE 設為系統預設值,或是強制啟用/停用 vulkan,以便執行相容性測試。

要測試哪些項目?

系統支援的紋理格式有些微差異;如果您要在電腦上模擬各種行動版功能,需採取的步驟也會不同。當您剖析及對遊戲進行最佳化時,建議您檢查各個後端。

剖析電腦遊戲

由於模擬器採用與消費者用戶端相同的技術,因此可說是剖析效能的理想環境。

Perfetto 是一款用於分析應用程式在 Android 上執行效能的工具。您可以按照下列步驟收集及查看 Perfetto 追蹤記錄:

  1. 在 PowerShell 提示中,使用 adb 啟動追蹤記錄功能。

    adb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
    
    1. --time 標記用於指定要收集追蹤記錄的時間長度。在此範例中,追蹤時間為 10 秒。 
    2. --time 標記之後的引數用於指定要追蹤哪些事件。在此範例中,gfx 代表圖形,wm 代表視窗管理,而 sched 代表程序排程資訊。這些是剖析遊戲的常用標記;如需完整參考資料,請查看這個連結
    3. --out 標記用於指定輸出檔案;系統會在下一個步驟中將該檔案從模擬器提取到主體機器。
  2. 從主機提取追蹤記錄

    adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
    
  3. 在 Perfetto UI 中開啟追蹤記錄

    1. 開啟 ui.perfetto.dev
    2. 在左上角的「Navigation」底下,選取「Open trace file」
    3. 開啟在上一個步驟下載的 example.trace 檔案,移至 Downloads/ 目錄。
  4. 在 Perfetto UI 中檢查追蹤記錄。以下提供一些訣竅供您參考:

    1. 每個程序都有自己的資料列,您可以將資料列展開以顯示該程序中的所有執行緒。假設您要剖析遊戲,其程序可能是第一行資料列。
    2. 按住 Control 鍵並使用滾輪,即可放大及縮小畫面。
    3. 使用 sched 事件時,每個執行緒都會有一行資料列,顯示該執行緒的狀態是執行中、可執行、睡眠中或已封鎖。
    4. 啟用 gfx 這類事件時,您可以查看不同執行緒發出的各種圖像呼叫。您可以選取個別「配量」查看所需時間,或是沿著資料列拖曳,讓「配量」部分在底部開啟,並顯示所選時間範圍內的所有配量。

圖形剖析

您可以運用 RenderDoc 執行部分圖像剖析作業。

  1. 環境變數 ANDROID_EMU_RENDERDOC 設為非空白字串,例如 "1"
  2. 將環境變數 TMP 設為 %USERPROFILE%\AppData\LocalLow。這會指示 Renderdoc 將記錄檔放在模擬器沙箱中可存取的位置。

  3. 如果您使用的是 Vulkan 後端,請依序選取「Graphics Settings」>「Vulkan Instance Implicit Layers」,並確認已勾選「VKLAYER_RENDERDOC_Capture」

  4. 啟動 Google Play 遊戲電腦版開發人員模擬器。只要支援功能已啟用,頂端就會顯示 RenderDoc 疊加層。

  5. 在 Google Play 遊戲電腦開發人員模擬器推出前後,隨時皆可啟動 RenderDoc。

  6. 依序點選「File」>「Attach to Running Instance」,然後選取「crosvm」

指定環境變數

為了讓 Renderdoc 順利運作,您必須在 Windows 中新增或變更環境變數。您可以使用 UI、PowerShell 或 cmd.exe 變更環境變數。

使用 UI
  • 按下 Win + R 鍵開啟執行對話方塊。
  • 輸入 sysdm.cpl,開啟「System Properties」視窗。
  • 選取「Advanced」分頁標籤 (如未啟用)。
  • 按一下「Environment Variables」按鈕。

您可以點選「New」按鈕建立新的環境變數,或是選取變數,然後點選「Edit」按鈕加以編輯。

使用 PowerShell

請按照以下指示,在 PowerShell 視窗中輸入內容:

$Env:VARIABLE_NAME=VALUE

VARIABLE_NAMEVALUE 替換為要設定的值,例如將 ANDROID_EMU_RENDERDOC 設為 "1" 類型:

$Env:ANDROID_EMU_RENDERDOC="1"
使用 cmd.exe

請按照以下指示,在 cmd.exe 視窗中輸入內容:

set VARIABLE_NAME=VALUE

VARIABLE_NAMEVALUE 替換為要設定的值,例如將 ANDROID_EMU_RENDERDOC 設為 "1" 類型:

set ANDROID_EMU_RENDERDOC="1"

Android 11 (API 級別 30) 以上版本的提示

Google Play 遊戲電腦版已配合最新的 Android 版本完成更新。以下是搭配最新版 Android 使用的一些提示。

確認工具為最新版本

Android Studio 會安裝與開發人員模擬器相容的 ADB 版本,但部分遊戲引擎包含舊版 ADB。在這種情況下,您可以在安裝開發人員模擬器後,前往 C:\Program Files\Google\Play Games Developer Emulator\current\emulator 尋找相容的 adb 版本。

您啟動某個 adb 版本時,該版本就會終止另一個版本。也就是說,如果您的遊戲引擎會自動啟動自己的 adb 執行個體,您可能需要重新啟動並重新連結部署模擬器時隨附的 adb 版本。

如果使用的是 Android App Bundle,就必須從 GitHub 存放區安裝最新版 Bundletool

限定範圍儲存空間

Android 11 (API 級別 30) 以上版本包含限定範圍儲存空間,可為外部儲存空間的應用程式和使用者資料提供更完善的保護。除了讓遊戲符合限定範圍儲存空間規定,您還需要執行額外步驟,才能將 APK 擴充檔案 (OBB) 或資產資料載入至 Google Play 遊戲電腦版開發人員模擬器。從遊戲存取這些檔案時,如果發生問題,請按照下列步驟操作:

  1. 建立應用程式可讀取的目錄。
  2. 將擴充檔案推送至模擬器。
adb shell mkdir /sdcard/Android/obb/com.example.game
adb push main.com.example.game.obb /sdcard/Android/obb/com.example.game

套件瀏覽權限

根據新的套件瀏覽權限規則,如果應用程式指定目標為 Android 11 (API 級別 30) 以上版本,就無法查詢裝置上其他已安裝應用程式的相關資訊。也就是說,在透過 adb 側載 (而非透過 Play 商店安裝) 時,遊戲將無法存取 Play 服務。如要在側載的遊戲中測試應用程式內購功能,您必須在 AndroidManifest.xml 檔案中對「com.android.vending」套件新增查詢,如下所示:

<manifest>
    <queries>
        <package android:name="com.android.vending" />
    </queries>
</manifest>

在消費者用戶端中安裝遊戲

您必須先等到 Play 遊戲服務目錄列出遊戲,才能在消費者用戶端安裝遊戲。當遊戲推出單一版本後,您可以建立內部測試群組,以利在發布前驗證日後的更新版本。

玩家用戶端不支援 Google Play 遊戲電腦版開發人員模擬器專為開發人員設計的功能。這款模擬器最適合用在發布遊戲前確保品質,以便在初始版本發布後測試端對端玩家體驗。