2K reduz a taxa de ANR em 35% com o Android Game Development Kit

Contexto

A Cat Daddy Games é um estúdio da 2K com sede em Kirkland, Washington, e desenvolvedor do NBA 2K Mobile. A equipe queria melhorar a qualidade geral e a estabilidade dos jogos, especificamente reduzindo os erros do tipo "O app não está respondendo" (ANRs). Os ANRs ocorrem quando a linha de execução de IU de um app Android é bloqueada por muito tempo. Quando isso acontece, a linha de execução principal do app, que é responsável por atualizar a interface, não consegue desenhar ou processar eventos de entrada do usuário, causando frustração ao usuário. Se o app estiver em execução em primeiro plano, o sistema vai mostrar uma caixa de diálogo que permite que o usuário force o encerramento do app.

O que a equipe fez

Reduzir os ANRs tem sido uma prioridade alta para o Cat Daddy. A equipe de controle de qualidade trabalhou incansavelmente e definiu um padrão de ANR comum: eles descobriram que, quando o app era pausado e retomado rapidamente, uma grande quantidade de entradas de toque poderia causar um ANR. Outras investigações com o Firebase Crashlytics mostraram que esse ANR era do tipo android.os.MessageQueue.nativePollOnce, o tipo mais comum de ANR para NBA 2K Mobile.

O Cat Daddy também percebeu que o processamento de entrada aprimorado na GameActivity poderia evitar esse tipo de ANRs, então decidiu mudar para a GameActivity.

GameActivity é um componente do Android Game Development Kit, projetado para ajudar jogos Android a processar comandos do ciclo de vida do app, eventos de entrada e entradas de texto no código C/C++ do aplicativo. A GameActivity oferece várias melhorias focadas em jogos em relação ao NativeActivity, como Fragment, renderização para um SurfaceView e outro suporte para bibliotecas conhecidas relacionadas ao desenvolvimento de jogos.

A GameActivity também usa buffer duplo no buffer de entrada, permitindo que o jogo lide melhor com esse caso de alto volume de entrada.

Resultados

Ao implementar a GameActivity, Cat Daddy conseguiu melhorar significativamente o processamento de entrada do jogo, levando a uma redução de 35% nos erros de ANR. Isso melhorou a experiência do usuário e criou uma experiência de jogabilidade mais estável.

Como bônus, como a GameActivity herda de FragmentActivity, a CatDaddy também pôde integrar o EmbeddedWebView e o EmbeddedVideoView, que eram necessários para algumas das integrações de jogos sociais mais conhecidas.

Primeiros passos

Melhore sua experiência de jogo com a GameActivity e o restante do Android Game Development Kit.