Game Mode API を使用すると、ユーザーが対応するゲームモードを選択したときに、パフォーマンスとバッテリー駆動時間に対してゲームを最適化できます。
または、デベロッパーが更新をやめているゲームのパフォーマンスを向上させるため、ゲームモード介入に関するリクエストを送信できます。
Game Mode API とゲームモード介入は、以下のデバイスで使用できます。
- Android 12 デバイスを選択する
- Android 13 以降を搭載したデバイス
個々のゲームについて Game Mode API の動作を実装したり、OEM にゲームモード介入設定を提案したり、ゲームモード介入をオプトアウトしたりすることができます。
設定
ゲームで Game Mode API を使用するには、次の手順で行います。
Android 13 SDK をダウンロードしてインストールします。
AndroidManifest.xmlファイルの中で、<application>要素にappCategory属性を設定して、アプリをゲームとして宣言します。
android:appCategory="game"
- 以下をメイン アクティビティに追加して、現在のゲームモードを照会します。
Java
// Only call this for Android 12 and higher devices
if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ) {
// Get GameManager from SystemService
GameManager gameManager = Context.getSystemService(GameManager.class);
// Returns the selected GameMode
int gameMode = gameManager.getGameMode();
}
Kotlin
// Only call this for Android 12 and higher devices
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// Get GameManager from SystemService
val gameManager: GameManager? = context.getSystemService(Context.GAME_SERVICE) as GameManager?
// Returns the selected GameMode
val gameMode = gameManager?.gameMode
}
| サポートされるゲームモード | 説明 |
|---|---|
| サポート対象外 | ゲームで Game Mode API のサポートを宣言しておらず、ゲームモード介入もサポートしていない。 |
| 標準 | ユーザーがゲームモードを選択していない、またはユーザーが標準モードを選択している。 |
| パフォーマンス | バッテリー駆動時間の減少および忠実度の低下と引き換えに、最小の遅延フレームレートを実現します。 |
| バッテリー | 忠実度またはフレームレートの低下と引き換えに、できるだけバッテリー駆動時間を延長します。 |
onResume関数にゲームモードの状態を照会するコードを追加します。
ベスト プラクティス
ゲームがすでに複数の忠実度目標とフレームレート目標をサポートしている場合は、パフォーマンス モードとバッテリー セーバー モードに適した設定を特定する必要があります。
最高のデバイス フレームレートを安定して継続させるには、忠実度をわずかに下げて、フレームレートを高めることを検討してください。
バッテリー駆動時間を改善させるには、低いディスプレイ リフレッシュ レート(30 Hz や 60 Hz)を選択することや、フレーム ペーシングを使用して目標レートを下げること検討してください。
ファーストパーソン シューティング、マルチプレーヤー型オンライン バトルアリーナ(MOBA)、ロールプレイング ゲーム(RPG)などの忠実度の高いゲームでは、ユーザーの没入感を高めるために、安定した高いフレームレートを達成することに焦点を当てる必要があります。
忠実度と気軽さの両方を重視するゲームでは、ピーク時のフレームレートを下げてプレイ時間を延長するバッテリー セーバー モードをサポートする必要があります。
ゲームモードのサポートを宣言する
ゲームモードのサポートを宣言し、OEM によるゲームモードの介入をオーバーライドするには、まず AndroidManifest.xml ファイルの <application> 要素にゲームモードの構成を追加します。
<application>
<meta-data android:name="android.game_mode_config"
android:resource="@xml/game_mode_config" />
...
</application>
次に、プロジェクトの res/xml/ ディレクトリに次の内容の game_mode_config.xml ファイルを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsBatteryGameMode="true"
android:supportsPerformanceGameMode="true"
/>
ゲームモードを切り替える
ゲームモードを切り替えるには、ゲーム ダッシュボード(Google Pixel で利用可能)または OEM が提供する類似のアプリを使用します。また、開発中にゲームモードのシェルコマンドを使用することもできます。
ゲーム ダッシュボードを使用しているときに、ゲームの起動時に最適化アイコンが表示されない場合は、Google Play Console にアプリをアップロードして、Google Play ストアからインストールする必要がある可能性があります。Google Play ストアでのアプリのテストについて詳しくは、App Bundle と APK を内部で共有するをご覧ください。
図 1. Pixel デバイスで実行中のゲームにオーバーレイ表示されたゲーム ダッシュボード。
図 1 では、実行中のゲームのゲームモードを最適化ウィジェットから変更できます。ウィジェットに表示されているように、ゲームは現在 PERFORMANCE モードで実行されています。
開発中に、ゲーム ダッシュボードのないデバイスを使用しており、メーカーがアプリごとにゲームモードを設定する方法を提供していない場合は、adb を使用してゲームモードのステータスを変更できます。
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>サンプル アプリケーション
Game Mode API のサンプルでは、FPS を最適化して解像度の上限をレンダリングし、アプリの消費電力を約 25% 削減する方法をハイライトしています。
次へ
ゲームのアップデートを提供できない場合にゲームのパフォーマンスを改善するために、ゲームモード介入をご覧ください。