PC 版 Google Play Games デベロッパー エミュレータは、PC 版 Google Play Games のデベロッパー向けエミュレータです。プレーヤーのエクスペリエンスとは異なり、独自のパッケージをインストールしてデバッグできます。また、アスペクト比、マウス エミュレーション、グラフィック バックエンドなど、各種プレーヤー設定をシミュレートでき、さまざまな設定がされた PC でゲームが想定どおりに動作するかを確認できます。
エミュレータの起動
インストールすると、Google Play Games デベロッパー エミュレータのスタート メニュー要素とデスクトップ ショートカットが表示されて、エミュレータを起動できるようになります。ウィンドウを閉じても、エミュレータはシステムトレイに残ったままになります。
ログイン
エミュレータを最初に実行する際は、Google アカウントへのログインを求められます。開発時に使用予定のものと同じログイン認証情報を使用します。
ログアウトするには、システムトレイ アイコンを右クリックし、[開発者向けオプション]、[強制的にログアウト] の順に選択します。この操作を行うとエミュレータがすぐ再起動し、再度ログインが求められます。
ナビゲーション
起動すると、一般的な Android のホーム画面が表示されます。マウスのエミュレーション モードと同様に、マウスの左クリックは指でのタップに直接変換されます。開発用にサイドローディングされたゲームがアプリリストに表示されます。アプリリストにアクセスするには、パソコン上でクリックして上方向にドラッグします(スマートフォンまたはタブレットで上へスワイプする動作をエミュレートしています)。
マウスの変換のほかに、PC 版 Google Play Games デベロッパー エミュレータには、キーボードでもナビゲーションできるようにキーボード ショートカットが用意されています。
Ctrl+H キー: [ホーム] ボタンを押すCtrl+B キー: [戻る] ボタンを押すF11 キーまたはAlt+Enter キー: 全画面モードとウィンドウ モードを切り替えるShift+Tab キー: Input SDK の現在のキーマッピングを含む PC 版 Google Play Games オーバーレイを開く
ゲームのインストール
PC 版 Google Play Games デベロッパー エミュレータは、Android Debug Bridge(ADB)を使用してパッケージをインストールします。
ADB の互換性
adb
の最新バージョンは、PC 版 Google Play Games デベロッパー エミュレータと互換性があります。また、エミュレータをインストールすると、互換性のあるバージョンが C:\Program
Files\Google\Play Games Developer Emulator\current\emulator
にインストールされます。
以下の手順に沿って操作すると、$PATH
に ADB が追加されます。adb
が正しく設定されていることを確認するには、adb devices
コマンドを使用します。
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
の部分はご自分のゲームのパッケージ名に置き換えてください。- PC 版 Google Play Games デベロッパー エミュレータで、アイコンをクリックしてゲームを実行します。Android スマートフォンと同様に、インストール済みのゲームのリストを表示するには、ホーム画面を「上にスワイプ」する必要があります。
ゲームのデバッグ
Android Debug Bridge(ADB)を使用して、他のゲームと同様の方法でデバッグします。エミュレータは localhost:6520
経由で接続されたデバイスとして表示されます。
adb logcat
は、Android Studio など、Logcat 出力の整形またはフィルタが可能なツールと同様に機能します。
ログへのアクセスは、adb
からだけでなく %LOCALAPPDATA%\Google\Play Games Developer Emulator\Logs
ディレクトリからも可能です。ログで特に役に立つのが AndroidSerial.log
です。エミュレータが起動した瞬間から adb logcat
がエコーするものがすべて記録されます。
デベロッパー向けの設定
PC 版 Google Play Games デベロッパー エミュレータは、エンドユーザー エクスペリエンスではなく、デベロッパーの効率性を重視しています。つまり、PC 版 Google Play Games エクスペリエンスの代わりに標準の Android ランチャーを使用するなど、シームレスに Android システムにアクセスできるほか、通常はプレーヤーのために自動的に有効化または無効化される機能をコントロールすることも可能です。
マウス入力のテスト
PC 版 Google Play Games デベロッパー エミュレータでは、開発時のデフォルトとして、マウスの直接入力ではなく、タッチ エミュレーションが設定されています。マウスの直接入力を有効にするには、システムトレイ アイコンを右クリックして、[開発者向けオプション]、[PC モード(KiwiMouse)] の順に選択します。
PC 版 Google Play Games には、マウスのクリックをシングルタップに変換するエミュレート モードと、ゲームがマウス操作をネイティブに処理してポインタをキャプチャするパススルー「PC モード」の 2 つのマウスモードがあります。PC 版 Google Play Games でのマウス入力の詳細については、マウス入力をセットアップするをご覧ください。
プレーヤー クライアントでは、マニフェストに次の行を追加するとエミュレーションが無効になります。
<manifest ...>
<uses-feature
android:name="android.hardware.type.pc"
android:required="false" />
...
</manifest>
このフィーチャー トグルは開発環境では機能しません。
アスペクト比のテスト
デベロッパー エミュレータは 16:9 のアスペクト比で起動します。これは、プライマリ ディスプレイからアスペクト比を取得するプレーヤー クライアントとは異なります。システムトレイ アイコンを右クリックし、[開発者向けオプション] を選択してから、[ディスプレイ比] セクションのオプションを選択すると、さまざまなアスペクト比の画面でゲームがどのように表示されるかをテストできます。
アスペクト比を設定するおすすめの方法は、android:minAspectRatio
と android:maxAspectRatio
を使用することです。
たとえば、縦向きのゲームの場合、アスペクト比は 9/16
または 0.5625
となるため、最大のアスペクト比を 1
に設定して、ゲームの画面比率が正方形より幅が広くならないようにします。
<activity android:maxAspectRatio="1">
...
</activity>
同様に、横向きのゲームの場合のアスペクト比は 16/9
または約 1.778
となるため、最小のアスペクト比を 1
に設定して、正方形より幅が狭くならないようにします。
<activity android:minAspectRatio="1">
...
</activity>
テスト項目
マニフェストで縦向きモードのみをサポートしているゲームの場合は、プルダウンの [9:16(縦向き)] を選択して、プレーヤーの PC でどのように表示されるかを確認します。それ以外の場合は、マニフェストでサポートしている横向きモードの最大幅と最小幅のアスペクト比を選択して、ゲームが正常に動作することを確認します。完全認定を受けるには、16:9(デフォルト)(ゲームが縦向きのみの場合は 9:16(縦向き))のアスペクト比が必要です。
レンダリング バックエンドのテスト
PC 版 Google Play Games は、互換性レイヤとして ANGLE 使用し、OpenGL ES 呼び出しが DirectX または Vulkan バックエンドを使用してホスト PC で正しく処理されるようにしています。エミュレータも Vulkan は直接サポートしていますが、DirectX はサポートしていません。またこのレイヤは、モバイル専用の圧縮テクスチャ形式を PC と互換性のある形式に変換します。システムトレイ アイコンを右クリックして [グラフィック スタックのオーバーライド] を選択し、システムのデフォルトに設定するか、互換性テスト用に Vulkan を強制的にオンまたはオフにします。
テスト項目
サポートされているテクスチャ形式や、各種モバイル機能をパソコンでエミュレートするために必要なステップは、軽微なバリエーションがあります。ゲームのプロファイリングと最適化を行うときには、各バックエンドを確認することをおすすめします。
PC ゲームのプロファイリング
エミュレータは一般ユーザーのクライアントと同じテクノロジーを使用しているため、パフォーマンス プロファイリングに適した環境となっています。
Perfetto は、Android でのパフォーマンスを分析するためのツールです。Perfetto トレースを収集して表示するには、次の操作を行います。
PowerShell プロンプトで、
adb
を使用してトレースを開始しますadb shell perfetto --time 10s gfx wm sched --out /data/misc/perfetto-traces/example.trace
--time
フラグは、収集するトレースの期間を指定します。この例では、トレース期間は 10 秒です。--time
フラグの後の引数は、トレースするイベントを示しています。この例では、gfx
はグラフィック、wm
はウィンドウ管理、sched
はプロセスのスケジューリング情報を示しています。これらはゲームのプロファイリングの共通フラグです。すべてのリファレンスを確認できます。--out
フラグで、出力ファイルを指定します。このファイルは、次のステップでエミュレータからホストマシンに出力されます。
ホストからトレースを pull します
adb pull /data/misc/perfetto-traces/example.trace $HOME/Downloads/example.trace
Perfetto UI でトレースを開きます
- ui.perfetto.dev を開きます。
- 左上の [Navigation] から、[Open trace file] を選択します。
- 前の手順で
Downloads/
ディレクトリにダウンロードしたexample.trace
ファイルを開きます。
Perfetto UI でトレースを検査します。ヒント:
- 各プロセスには独自の行があり、行を展開すると、そのプロセス内のスレッドをすべて表示できます。ゲームをプロファイリングしている場合、おそらくそのプロセスは最初の行にあります。
- Ctrl キーを押したままスクロール ホイールを使うと、ズームインとズームアウトができます。
sched
イベントを使用すると、スレッドごとに、そのスレッドの状態が実行中、実行可能、スリープ中、ブロック中のいずれかを示す行が表示されます。gfx
などのイベントを有効にすると、さまざまなスレッドによって行われたさまざまなグラフィック呼び出しを表示できます。個々の「スライス」を選択して所要時間を確認したり、行に沿ってドラッグして下部に「スライス」セクションを表示し、選択した時間枠内ですべてのスライスにかかった時間を表示したりできます。
グラフィックのプロファイリング
RenderDoc を使用すると、グラフィックのプロファイリングの一部を実行できます。
- 環境変数
ANDROID_EMU_RENDERDOC
を空でない文字列("1"
など)に設定します。 環境変数
TMP
を%USERPROFILE%\AppData\LocalLow
に設定します。これにより、Renderdoc はエミュレータ サンドボックス内のアクセス可能な場所にログファイルを配置します。Vulkan バックエンドを使用している場合。[グラフィック設定] > [Vulkan Instance Implicit Layers] を選択し、[VKLAYER_RENDERDOC_Capture] がオンになっていることを確認します。
PC 版 Google Play Games デベロッパー エミュレータを起動します。サポートが有効であれば、RenderDoc オーバーレイが上部に描画されます。
PC 版 Google Play Games デベロッパー エミュレータの起動の前か後に、RenderDoc を起動します。
[File] > [Attach to Running Instance] をクリックして、[crosvm] を選択します。
環境変数を指定する
Renderdoc が機能するには、Windows で環境変数を追加または変更する必要があります。環境変数は、UI、PowerShell、または cmd.exe を使用して変更できます。
UI を使用する
Win+R キーを押して実行ダイアログを開きます。- 「
sysdm.cpl
」と入力して [システムのプロパティ] ウィンドウを開きます。 - [詳細設定] タブをまだ表示していない場合は、選択します。
- [環境変数] ボタンをクリックします。
ここで、[新規] ボタンをクリックして新しい環境変数を作成するか、変数を選択してから [編集] ボタンをクリックして編集します。
PowerShell を使用する
PowerShell ウィンドウで次のように入力します。
$Env:VARIABLE_NAME=VALUE
VARIABLE_NAME
と VALUE
は、設定する値に置き換えます。たとえば、ANDROID_EMU_RENDERDOC
を "1"
に設定するには、次のように入力します。
$Env:ANDROID_EMU_RENDERDOC="1"
cmd.exe を使用する
cmd.exe ウィンドウで、次のように入力します。
set VARIABLE_NAME=VALUE
VARIABLE_NAME
と VALUE
は、設定する値に置き換えます。たとえば、ANDROID_EMU_RENDERDOC
を "1"
に設定するには、次のように入力します。
set ANDROID_EMU_RENDERDOC="1"
Android 11(API レベル 30)以降向けのヒント
PC 版 Google Play Games は、最新の Android リリースに伴って更新されています。最新バージョンの Android を使用する際のヒントは以下のとおりです。
ツールを最新の状態に保つ
Android Studio は、デベロッパー エミュレータと互換性のある ADB バージョンをインストールしますが、ゲームエンジンによっては古いバージョンの ADB が含まれていることがあります。そのような場合、互換性のある adb
バージョンは、デベロッパー エミュレータをインストール後、C:\Program Files\Google\Play Games Developer
Emulator\current\emulator
で確認できます。
一方のバージョンの adb
を起動すると、もう一方のバージョンは終了します。つまり、ゲームエンジンが独自の adb
インスタンスを自動的に起動する場合、デプロイするたびにデベロッパー エミュレータに付属するバージョンの adb
を再起動し、再接続しなければなりません。
Android App Bundle を使用している場合は、GitHub リポジトリから最新バージョンの Bundletool をインストールする必要があります。
対象範囲別ストレージ
Android 11(API レベル 30)以降には対象範囲別ストレージ機能が備わっており、外部ストレージ上のアプリとユーザーデータの保護が強化されています。ゲームを対象範囲別ストレージの要件に適合させるだけでなく、APK 拡張ファイル(OBB)やアセットデータを PC 版 Google Play Games デベロッパー エミュレータに読み込むために追加の手順を実行する必要があります。ゲームからこれらのファイルにアクセスする際に問題が発生した場合は、以下の手順に沿って対応します。
- アプリが読み取り可能なディレクトリを作成します。
- 拡張ファイルをエミュレータにプッシュします。
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)以降をターゲットとするアプリは、デバイスにインストールされている他のアプリに関する情報をクエリできないようになっています。そのため、Google Play ストアからインストールせず、adb
経由でゲームをサイドローディングした場合、そのゲームから Play 開発者サービスへのアクセスはブロックされます。サイドローディングされたゲームで IAP をテストするには、次のように、パッケージ「com.android.vending
」に対するクエリを AndroidManifest.xml
ファイルに追加する必要があります。
<manifest>
<queries>
<package android:name="com.android.vending" />
</queries>
</manifest>
一般ユーザーのクライアントへのゲームのインストール
ゲームが Play Games サービス カタログに登録されるまでは、一般ユーザーのクライアントにインストールすることはできません。ゲームを 1 度リリースすると、今後のアップデートをリリース前に検証する内部テストトラックを作成できます。
プレーヤー クライアントは、PC 版 Google Play Games デベロッパー エミュレータのデベロッパー向けの機能には対応していません。プレーヤー クライアントは、リリース前にゲームの QA を行って、最初のリリース後のエンドツーエンドのプレーヤー エクスペリエンスをテストする場合に最適です。