Intervenções do modo jogo

As intervenções do modo jogo são otimizações específicas de jogos definidas pelos fabricantes de equipamentos originais (OEMs) para melhorar o desempenho dos jogos que não são mais atualizados pelos desenvolvedores. Por exemplo:

  • Como usar o redimensionamento do backbuffer do WindowManager.
  • Usar o ANGLE em vez dos drivers nativos do GLES.

É possível fazer com que seu jogo ofereça suporte e gerencie a API Game Mode para que ela substitua as intervenções do modo jogo fornecidas pelo OEM.

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

Cada jogo pode:

  • Implemente o comportamento da API Game Mode,
  • propor configurações de intervenções do modo jogo aos OEMs; ou
  • Desativar explicitamente as intervenções do modo jogo.

Contexto

Esta seção descreve o que as intervenções do modo jogo fazem e como otimizar seu jogo para cada um deles.

Redimensionamento do backbuffer do WindowManager

A intervenção de redimensionamento do buffer de WindowManager pode reduzir a carga da GPU de um dispositivo. Isso também pode reduzir o consumo da bateria quando o ritmo de um jogo é definido a um frame rate específico.

Ativar o redimensionamento pode resultar em uma redução de até 30% da GPU e 10% do uso geral da energia do sistema. Os resultados podem variar de acordo com o dispositivo usado, as condições ambientais e outros fatores, como o processamento simultâneo.

Um jogo sem ritmo definido, vinculado à GPU, provavelmente terá frame rates mais altos durante cargas de GPU reduzidas.

É altamente recomendável que todos os jogos tenham um ritmo adequado, porque frame rates desiguais afetam significativamente a forma como os usuários percebem o desempenho.

Limitação de QPS

A limitação de QPS do Android é uma intervenção do modo jogo que ajuda os jogos a serem executados com um frame rate mais estável para reduzir o consumo da bateria. A intervenção está disponível no Android 13 ou em versões mais recentes. Para mais informações, consulte a Visão geral da limitação de QPS.

Avaliar as intervenções do modo jogo

Esta seção usa o comando adb.

Configurar os modos

Desative os modos jogo no arquivo de configuração do modo jogo antes de testar as intervenções dele. Caso contrário, a plataforma vai ignorá-los e respeitar apenas as otimizações no jogo.

<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsBatteryGameMode="false"
    android:supportsPerformanceGameMode="false"
/>

(Opcional) Fazer backup da configuração atual do dispositivo

Para o Pixel ou outros dispositivos, pode haver uma configuração de intervenção no jogo pré-existente na configuração do seu dispositivo. Consulte a configuração usando o comando:

adb shell device_config get game_overlay <PACKAGE_NAME>

Se a consulta retornar null, ignore a configuração preexistente. Caso contrário, salve-o e redefina-o após a avaliação.

Avaliar intervenções

Para avaliar a intervenção de redimensionamento do backbuffer do WindowManager por conta própria, use o comando abaixo para definir diferentes valores de redimensionamento do buffer do WindowManager nos modos de jogo.

adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5

No exemplo acima, mode=2 é "Performance" e mode=3 é "Economia de bateria". O valor de downscaleFactor é especificado como uma porcentagem que se aplica à configuração de redimensionamento. Por exemplo, 0,7 é 70% e 0,8 é 80%. Um redimensionamento de 90% (0,9) é quase insignificante, enquanto 50% (0,5) é significativo.

Aviso:os processos filhos podem não ser redimensionados corretamente no Android 12. Especificamente, verifique se avisos e pop-ups são renderizados corretamente. Recomendamos que você limite a configuração de redimensionamento a pelo menos 70%.

Depois que os novos valores de redimensionamento forem configurados, alterne entre os modos de jogo para conferir como o jogo é afetado pela intervenção de redimensionamento do backbuffer do WindowManager:

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

Reinicie o jogo após cada seleção de modo de jogo. A intervenção de redução requer a reinicialização do app.

Desativar as intervenções

É possível controlar se a intervenção será aplicada ao jogo. Basta desativar o recurso. Cada intervenção tem sua própria configuração de desativação.

  1. O mesmo arquivo XML de configuração usado para controlar a ativação e a desativação dos modos de jogo também é usado para as configurações de intervenção:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:allowGameDownscaling="false"
    android:allowGameFpsOverride="false"
/>
  1. Recrie e reenvie seu jogo para desativar.

Por padrão, as intervenções definidas pelos fabricantes de equipamento original (OEMs) serão usadas, a menos que você opte explicitamente por não usá-las.

Recursos

Para mais informações sobre como avaliar e otimizar o desempenho do jogo: