API Game Mode

A API Game Mode permite otimizar o jogo para ter o melhor desempenho ou a maior duração da bateria quando o usuário seleciona o modo jogo correspondente.

Como alternativa, você pode enviar solicitações para intervenções do modo jogo com o objetivo de melhorar o desempenho dos jogos que não estão mais sendo atualizados pelos desenvolvedores.

A API Game Mode e as intervenções estão disponíveis em:

Cada jogo pode implementar o comportamento da API Game Mode, propor o Game Mode de intervenções para OEMs ou desativar as intervenções do modo jogo.

Configurar

Para usar a API Game Mode no seu jogo, faça o seguinte:

  1. Faça o download e instale o SDK do Android 13.

  2. No arquivo AndroidManifest.xml, declare seu app como um jogo definindo a propriedade appCategory no Elemento <application>:

android:appCategory="game"
  1. Para consultar o modo jogo atual, adicione o seguinte à sua atividade principal:

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
}
Modo jogo compatível Descrição
INCOMPATÍVEL O jogo não declara compatibilidade com a API Game Mode e não é compatível com intervenções do modo jogo.
PADRÃO O usuário não escolheu um modo jogo ou selecionou o modo padrão.
DESEMPENHO Fornece os menores frame rates de latência em troca de fidelidade e duração da bateria reduzidas.
BATERIA Proporciona a maior duração possível da bateria em troca de fidelidade ou frame rates reduzidos.
  1. Adicione um código para consultar o estado do modo jogo na Função onResume:

    Exemplo com configuração de modo de bateria pelo usuário

.

Práticas recomendadas

Se o seu jogo já é compatível com vários objetivos de fidelidade e frame rate, identifique as configurações adequadas para os modos de desempenho e economia de bateria:

  • Para atingir os frame rates máximos do dispositivo, considere pequenas reduções de fidelidade para conseguir frame rates mais altos.

  • Para melhorar a duração da bateria, escolha uma taxa de atualização de tela mais baixa (por exemplo, 30 Hz ou 60 Hz) e use o ritmo de frames para atingir a taxa reduzida.

Em jogos de alta fidelidade, como jogos de tiro em primeira pessoa, arenas multiplayer de batalhas on-line (MOBAs, na sigla em inglês) e jogos de RPG, é necessário se concentrar em alcançar altos frame rates consistentes para maximizar a imersão do usuário.

Para jogos casuais e de alta fidelidade, é preciso oferecer compatibilidade com o modo de economia de bateria para aumentar o tempo de jogo, reduzindo os picos de frame rates.

Declarar compatibilidade com modos de jogo

Para declarar suporte a modos de jogo e substituir as intervenções do modo jogo por OEMs, primeiro adicione a configuração Game Mode ao O elemento <application> na sua Arquivo AndroidManifest.xml:

<application>
    <meta-data android:name="android.game_mode_config"
               android:resource="@xml/game_mode_config" />
  ...
</application>

Em seguida, crie um arquivo game_mode_config.xml no diretório res/xml/ do projeto. com o seguinte conteúdo:

<?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"
/>

Trocar de modo de jogo

Para alternar entre os modos de jogo, você pode usar o Painel de jogo (disponível no Pixel) ou apps semelhantes fornecidos por OEMs. Como alternativa, faça o seguinte: use o comando do shell do modo jogo durante o desenvolvimento.

Se você estiver usando o Painel de jogo e o ícone de otimização não for exibido quando o jogo for lançado, talvez seja necessário fazer upload dele no Google Play Console. e instale-o pela Play Store. Para informações sobre o teste de apps na Play Store, consulte Compartilhar pacotes de apps e APKs internamente.

Atividade do Painel de jogo Figura 1. Painel de jogo sobreposto ao jogo em execução em um Pixel dispositivo.

Na Figura 1, é possível mudar o modo jogo do jogo de corrida na guia widget. Como mostrado no widget, o jogo está sendo executado no momento PERFORMANCE modo

Durante o desenvolvimento, se você estiver usando um dispositivo sem o Painel de jogo e o fabricante não fornecer uma maneira de definir o modo jogo para cada app, será possível mude o status do modo jogo pelo adb:

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

Exemplo de aplicativo

O exemplo da API Game Mode destaca como otimizar o QPS e renderizar limites de resolução para economizar cerca de 25% de energia nos seus apps.

Próxima

Leia Intervenções do modo jogo para melhorar o desempenho de um jogo quando não for possível fornecer atualizações.