2K reduce la tasa de ANR en un 35% con Android Game Development Kit

Información general

Cat Daddy Games es un estudio de propiedad plena de 2K con sede en Kirkland, Washington y el desarrollador de NBA 2K Mobile. El equipo quería mejorar la calidad y estabilidad generales de sus juegos, en particular, reduciendo los errores de "Aplicación no responde" (ANR). Los errores de ANR se producen cuando el subproceso de IU de una app para Android se bloquea durante demasiado tiempo. Cuando eso sucede, el subproceso principal de la app, que se encarga de actualizar la IU, no puede dibujar ni procesar eventos de entrada del usuario, lo que le genera frustración. Si la app se está ejecutando en primer plano, el sistema mostrará un diálogo que le permite al usuario forzar el cierre de la app.

Qué hizo la empresa

Reducir los ANR es una prioridad para Cat Daddy. El equipo de control de calidad trabajó sin descanso y estableció un patrón de ANR común: descubrieron que, cuando se pausaba la app y se reanudaba rápidamente, una gran cantidad de entradas táctiles podía provocar un error de ANR. Una investigación adicional con Firebase Crashlytics demostró que este ANR era del tipo android.os.MessageQueue.nativePollOnce, el tipo más común de ANR para NBA 2K Mobile.

Cat Daddy también observó que el manejo de entradas mejorado en GameActivity podía evitar este tipo de ANR, por lo que decidieron pasar a GameActivity.

GameActivity es un componente del Android Game Development Kit, que está diseñado para ayudar a los juegos para Android a procesar comandos del ciclo de la app, eventos de entrada y entradas de texto en el código C/C++ de la aplicación. GameActivity ofrece varias mejoras centradas en el juego con respecto a NativeActivity, como Fragment, la renderización en un SurfaceView y otras compatibilidad con bibliotecas populares relacionadas con el desarrollo de juegos.

GameActivity también usa almacenamiento en búfer doble en su búfer de entrada, lo que permite que el juego maneje mejor este caso de alto volumen de entrada.

Resultados

Con la implementación de GameActivity, Cat Daddy pudo mejorar significativamente el control de entradas del juego, lo que generó una reducción del 35% de los errores de ANR. Esto mejoró la experiencia del usuario y creó una experiencia de juego más estable.

Como beneficio adicional, debido a que GameActivity hereda de FragmentActivity, CatDaddy también pudo integrar EmbeddedWebView y EmbeddedVideoView, que eran necesarios para algunas de las integraciones de juegos sociales más populares.

Comenzar

Mejora tu propia experiencia de juego con GameActivity y el resto de Android Game Development Kit.