Optimización de la duración de la batería en Monster Walk

UNITY TEAM /
Jun 2, 2026|3:59 Min
Paseo de monstruos | Juegos de Talofa
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.

No te pierdas nuestra entrevista con Jenny Xu, CEO de Talofa Games, donde explica los desafíos técnicos y las decisiones de desarrollo que hay detrás de la creación de una experiencia fluida en segundo plano, incluyendo cómo el equipo utiliza los hooks de Unity para OnApplicationFocus y OnApplicationPause para guardar el estado del juego.

JENNY XU:Cuando concebimos Monster Walk , el problema de diseño fundamental que intentábamos resolver era cómo lograr que los pasos, como los pasos reales que das, se sientan como si estuvieras jugando un juego. No se siente como una obligación, no parece añadido a la fuerza, no parece una aplicación de fitness y un juego a la vez, dos cosas diferentes, sino que realmente es como un juego que juegas llevando una vida más saludable en la vida real.

El mayor desafío técnico fue lograr que esos pasos en tiempo real, como los datos en vivo, se sintieran realmente fluidos e integrados en la experiencia del juego, teniendo en cuenta todas las limitaciones de la plataforma, como la entrega en segundo plano y la duración de la batería. Para nosotros, la clave estaba en el seguimiento de pasos en tiempo real y en cómo lograr que eso no resultara ni demasiado punitivo ni demasiado gratificante para los jugadores, de manera que realmente les hiciera responsables de su estado físico.

CONSOLIDACIÓN DE FLUJOS DE DATOS POR PASOS

Gracias a que hemos utilizado Unity, nos ha resultado muy fácil conectarnos tanto a los plugins nativos de Android como a los de iOS. Y estamos trabajando con Android Health Connect, Google Fit, Garmin, todas estas fuentes de datos que llegan a nuestro juego. Y tenemos que consolidar todo eso e indicarle al jugador cuántos pasos creemos que ha dado entre la última vez que entró al juego y la siguiente vez que lo abrió.

Por suerte, Unity nos ofrece la posibilidad de acceder a las API nativas. Así que, en cierto momento, incluso creamos nuestro propio contador de pasos porque no podíamos dar por sentado que tendrían Health Connect. No podíamos dar por sentado que tuvieran Google Fit. Quizás no tenían nada. Y creamos este complemento nativo que se integra con Unity y que funciona a la perfección, contando los pasos en segundo plano, incluso con la aplicación cerrada.

Así que tuvimos que construir prácticamente una solución de tres capas dentro de nuestro proyecto Unity para dar soporte a eso. Y, al mismo tiempo, que no consuma demasiada batería ni se ejecute constantemente en segundo plano para que los jugadores no quieran desinstalarla.

Y lo mismo ocurría a la hora de equilibrar todos los datos que recibíamos. Gracias a Apple, tienes Apple Health, tienes pasos nativos en primer plano, como cuando la aplicación está abierta y el teléfono está vibrando, tal vez el jugador esté dando un paso, pero también Apple Health también está registrando un paso en ese momento.

Entonces, ¿cómo se consolidan los datos redundantes? ¿Cómo lograr que no resulte ni demasiado gratificante ni demasiado castigador? Encontrar el punto óptimo, ser capaz de adaptarnos al jugador en función del modelo de dispositivo que tuviera y lograr que la experiencia fuera mágica, ese fue el desafío técnico más difícil.

OPTIMIZACIÓN DE LA DURACIÓN DE LA BATERÍA

Dado que Monster Walk es un juego que se ejecuta en segundo plano durante todo el día, tuvimos que diseñar sistemas que permitieran avanzar en la jugabilidad sin sobrecalentar el teléfono. Incluso entre iOS y Android, el comportamiento en segundo plano es muy diferente.

Así que tuvimos que ser extremadamente cautelosos a la hora de guardar el estado del jugador, y básicamente, debido a que realizamos un procesamiento en segundo plano de los pasos y los datos de salud, tuvimos que dar a los jugadores la ilusión de que, mientras estaban ausentes, sus monstruos seguían caminando con ellos, incluso si la aplicación estaba cerrada.

Así que diría que gran parte de ello tiene que ver con el diseño y, además, somos muy cuidadosos al cerrar procesos, asegurándonos de que no se ejecuten subprocesos en segundo plano y de que el jugador no vea la aplicación abierta y que esta consuma batería.

Así que aprovechamos muchos de los hooks de Unity para OnApplicationFocus, OnApplicationPause, y simplemente usamos esos momentos para guardar rápidamente el estado. Y luego, cada vez que regresan, revisamos nuestra última partida guardada, reanudamos la actividad, comprobamos su recuento de pasos y les decimos: "Oye, acabas de caminar efectivamente esta distancia con tu pequeño amigo monstruo". Como, bienvenido de nuevo.

Consulta más historias de desarrolladores de Unity en el Unity y el centro de recursos de Unity.