Optimización de Godforge: Más de 200 héroes, mundos con millones de polígonos.

No te pierdas nuestra entrevista con los cofundadores y codirectores ejecutivos de Fateless, Simon Lockerby e Hisham Saleh, donde comparten las estrategias de optimización clave que utilizaron para gestionar una lista de más de 200 héroes y entornos de alta fidelidad con hasta un millón de polígonos en Godforge . Explican cómo trabajar con Unity les ayudó a reducir con éxito el uso de memoria de 4 GB a 1,3 GB y a lograr un aumento del 57 % en la velocidad de fotogramas.
SIMON LOCKERBY: Godforge es un juego de rol por turnos con equipos, centrado en la mitología. Podrás luchar contra Ra, Zeus o incluso contra uno de los dioses mayas como Cizin, y enfrentarte a épicas batallas contra jefes finales.
Cuando empezamos a trabajar con Unity, algunos de los mayores desafíos que tuvimos en cuanto a la optimización para dispositivos móviles giraban en torno al tamaño de la compilación, la velocidad de fotogramas en el juego y la velocidad de descarga.
Teníamos varias cosas que queríamos probar y optimizar, incluyendo variantes de sombreado, aumentar la velocidad de fotogramas, reducir el tamaño de la descarga de nuestro APK y la velocidad de descarga general.

AUMENTO DEL RENDIMIENTO A LO LARGO DEL TIEMPO
HISHAM SALEH: A medida que desarrollamos y ampliamos el juego, no se trata de un proyecto de seis meses. Ha sido un proceso largo. Por lo tanto, los objetivos de optimización y los dispositivos objetivo han cambiado con el tiempo, y eso es simplemente una expectativa.
Siempre queremos poder ofrecer soporte para la mayor cantidad de dispositivos móviles posible. Queríamos asegurarnos de tener un PC bien montado, así que nos hemos centrado en que el equipo sepa cuál es el nivel mínimo, cuál es el punto de referencia de lo que se necesita para lograrlo. Y luego queremos que se vea lo mejor posible en la versión más baja y, posteriormente, en la versión móvil más alta, como objetivo principal. Unity creó muchas herramientas para que pudiéramos hacer eso.
SIMON LOCKERBY: Eso nos ha ayudado mucho a prepararnos para el futuro gracias a las herramientas que nos proporcionó el equipo de Unity . Nos ayudó a identificar cuándo se estaban incluyendo mallas grandes o mallas duplicadas en la compilación, para asegurarnos de que estábamos utilizando atlas desde el principio, y todos estos sistemas que se han implementado significan que podemos controlar el tamaño futuro de la compilación, las velocidades de descarga futuras, la velocidad de fotogramas, todo ese tipo de cosas.
HISHAM SALEH: Si me fijo en en qué estábamos realmente centrados, ya sabes, en estos entornos, incluso en estos personajes, y en lo que estamos viendo en pantalla. Si tienes millones de polígonos, que creo que no son exactamente millones, pero quizás un millón de polígonos en una escena, y estás intentando cargarlo todo a la vez, no se va a cargar muy rápido.
Entonces, la llamada de oclusión realmente hizo que pudiéramos hacer todo lo que queríamos hacer, todo podía verse realmente genial, pero también podía cargar rápido, y entonces los jugadores entraban, jugaban la batalla, y en lugar de ser, no sé, a veces eran cinco o seis segundos o algo así, era ridículamente, ya sabes, carga bastante rápido en un dispositivo realmente bueno y tal vez como un segundo o dos segundos como máximo en los dispositivos de gama más baja.

OPTIMIZACIÓN DEL RENDIMIENTO DE CARGA DE ACTIVOS
SIMON LOCKERBY: Lo más importante fue cuando conseguimos todos los nuestros, porque somos coleccionistas de héroes, tenemos una gran variedad de héroes, más de 200. Así, podemos tener más de 200 retratos de héroes disponibles para un jugador en cualquier momento. Así que, al incluirlos en un atlas, la velocidad de carga de nuestra lista de héroes se volvió rapidísima en comparación con lo que era antes, que era pésima.
HISHAM SALEH: Aplicar las mejores prácticas a Addressables redujo considerablemente el tamaño de la CDN y nos resultó de gran ayuda. Es decir, se trataba principalmente de asegurarnos de no cargar cosas que no necesitábamos cargar, de proporcionarle al jugador las cosas cuando era necesario y de no tener montones y montones de versiones y copias dando vueltas en la compilación.
A veces, cuando uno se centra en terminar las cosas y asegurarse de que el juego tenga un aspecto y una sensación excelentes, y que funcione lo suficientemente bien, puede perder de vista estas buenas prácticas, por lo que hay que volver atrás y corregirlo.

MEJORA DE LA MEMORIA Y LA VELOCIDAD DE FOTOGRAMAS
HISHAM SALEH: Diría que la optimización de los activos fue lo que más influyó en ello. Creo que cuando analizábamos un dispositivo de gama baja con 2 o 3 GB de memoria, resultaba complicado para un juego con la calidad que buscábamos, por lo que optimizar los mipmaps y asegurarnos de que todo estuviera estandarizado y se cargara correctamente y en el momento adecuado, realmente nos permitió alcanzar el nivel que buscábamos.
SIMON LOCKERBY: Literalmente pasamos de tener, creo que eran 4 GB de memoria antes de empezar con estas optimizaciones, a tan solo 1,3 GB. Fue, pues, un cambio colosal.
El equipo de Unity logró mejorar nuestras variantes de sombreado en un 76%. Lograron mejorar nuestra velocidad de fotogramas en un 57%. Existen excelentes herramientas para identificar el tipo de dispositivo que simplemente intentaba jugar.
Así que, como saben, en cuanto a la carga, podemos elegir una configuración baja, media o alta, dependiendo del tipo de dispositivo, y por lo tanto, se activaría el tipo de perfilado adecuado para ese dispositivo, lo que supone un verdadero cambio radical para nosotros cuando entramos en producción.
Descubre más juegos Made with Unity en nuestra página de Steam Curator y consulta más historias de desarrolladores de Unity en el Unity y el centro de recursos de Unity.
