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:
- Selecione dispositivos com Android 12
- Dispositivos com o Android 13 ou mais recente
Cada jogo pode implementar o comportamento da API Game Mode, propor configurações de intervenções do modo jogo para OEMs ou desativar as intervenções do modo jogo.
Configuração
Para usar a API Game Mode no seu jogo, faça o seguinte:
Faça o download e instale o SDK do Android 13.
No arquivo
AndroidManifest.xml, declare seu app como um jogo definindo o atributoappCategoryno elemento<application>:
android:appCategory="game"
- 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. |
Adicione o código para consultar o estado do modo jogo na função
onResume:
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 suporte aos modos de jogo
Para declarar suporte aos modos de jogo e substituir intervenções do modo jogo por
OEMs, primeiro adicione a configuração do modo jogo ao
elemento <application> no 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"
/>
Alternar modos de jogo
Para alternar entre os modos de jogo, use o painel de controle de jogos (disponível em dispositivos Pixel) ou apps semelhantes fornecidos por OEMs. Como alternativa, você pode usar o comando shell do Modo Jogo durante o desenvolvimento.
Se você estiver usando o Painel de jogo e o ícone de otimização não aparecer quando o jogo for iniciado, talvez seja necessário fazer upload do app para o Google Play Console e instalá-lo pela Play Store. Para informações sobre testes de apps na Google Play Store, consulte Compartilhar pacotes de apps e APKs internamente.
Figura 1. O Painel de jogo aparece sobre o jogo em execução em um dispositivo
Pixel.
Na figura 1, o modo de jogo do jogo em execução pode ser mudado no widget de otimização. Conforme mostrado no widget, o jogo está sendo executado no modo
PERFORMANCE.
Durante o desenvolvimento, se você estiver usando um dispositivo sem o painel de jogos e o fabricante não oferecer uma maneira de definir o modo jogo para cada app, é possível mudar o status do modo jogo usando o adb:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>Aplicativo de amostra
O exemplo da API Game Mode destaca como otimizar a taxa de QPS e renderizar os limites de resolução para economizar aproximadamente 25% de energia nos seus apps.
Avançar
Leia Intervenções do modo jogo para melhorar o desempenho de um jogo quando não for possível fornecer atualizações.