Game Mode API

Game Mode API を使用すると、ユーザーが対応するゲームモードを選択したときに、パフォーマンスとバッテリー駆動時間に対してゲームを最適化できます。

または、デベロッパーが更新をやめているゲームのパフォーマンスを向上させるため、ゲームモード介入に関するリクエストを送信できます。

Game Mode API と介入は以下で利用できます。

各ゲームは Game Mode API の動作を実装し、ゲームモードを提案できます。 介入の設定を OEM に提供する ゲームモード介入をオプトアウトする

設定

ゲームで Game Mode API を使用するには、次の手順で行います。

  1. 以下をダウンロードしてインストールします: Android 13 SDK

  2. AndroidManifest.xml ファイルで、次の操作を行います。 次のようにして、アプリをゲームとして宣言します。 次のクラスの appCategory 属性: <application> 要素:

android:appCategory="game"
  1. 以下をメイン アクティビティに追加して、現在のゲームモードを照会します。

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 のサポートを宣言しておらず、ゲームモード介入もサポートしていない。
標準 ユーザーがゲームモードを選択していない、またはユーザーが標準モードを選択している。
パフォーマンス バッテリー駆動時間の減少および忠実度の低下と引き換えに、最小の遅延フレームレートを実現します。
バッテリー 忠実度またはフレームレートの低下と引き換えに、できるだけバッテリー駆動時間を延長します。
  1. ゲームモードの状態をクエリするコードを onResume 関数:

    ユーザーがバッテリー モードを設定した例

で確認できます。

ベスト プラクティス

ゲームがすでに複数の忠実度目標とフレームレート目標をサポートしている場合は、パフォーマンス モードとバッテリー セーバー モードに適した設定を特定する必要があります。

  • 最高のデバイス フレームレートを安定して継続させるには、忠実度をわずかに下げて、フレームレートを高めることを検討してください。

  • バッテリー駆動時間を改善させるには、低いディスプレイ リフレッシュ レート(30 Hz や 60 Hz)を選択することや、フレーム ペーシングを使用して目標レートを下げること検討してください。

ファーストパーソン シューティング、マルチプレーヤー型オンライン バトルアリーナ(MOBA)、ロールプレイング ゲーム(RPG)などの忠実度の高いゲームでは、ユーザーの没入感を高めるために、安定した高いフレームレートを達成することに焦点を当てる必要があります。

忠実度と気軽さの両方を重視するゲームでは、ピーク時のフレームレートを下げてプレイ時間を延長するバッテリー セーバー モードをサポートする必要があります。

ゲームモードのサポートを宣言する

ゲームモードのサポートを宣言し、ゲームモードの介入をオーバーライドするには、 OEM は、まずゲームモード構成を <application> 要素: AndroidManifest.xml ファイル:

<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 ストアからインストールできます。アプリのテストについて詳しくは、 詳しくは、 App Bundle と APK を内部で共有する

ゲーム ダッシュボード アクティビティ 図 1. 実行中のゲームが Google Pixel に重なって表示されているゲーム ダッシュボード できます。

図 1 では、実行中のゲームのゲームモードを 追加します。ウィジェットに表示されているとおり、ゲームは現在 PERFORMANCE モードです。

開発中に、ゲーム ダッシュボードと メーカーは、アプリごとにゲームモードを設定する方法を提供していません。 adb でゲームモードのステータスを変更します。

adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>

サンプル アプリケーション

Game Mode API サンプル FPS を最適化し、解像度の上限をレンダリングしてアプリの消費電力を約 25% 削減する方法を紹介します。

次へ

ゲームモード介入を読む ゲームのアップデートを提供できない場合に、ゲームのパフォーマンスを向上させるため。