Microversiones al rescate de Anivia

Por bananaband1t

Hace algunas semanas, Anivia Reina del Carnaval llenó a la Grieta de un espíritu fiestero. Todo era disfraces y celebración hasta que comenzaron a llegar reportes sobre el ave gélida. Los equipos de control de calidad de Riot confirmaron que su habilidad definitiva no aplicaba correctamente la debilitación que duplicaba el daño de Quemadura Gélida. El error fue lo suficientemente perjudicial como para que la desactiváramos hasta encontrar una solución, la cual deberíamos probar antes de implementarla en los servidores. Eso significa que lo más pronto que podrían volver a jugar con Anivia sería el viernes por la tarde... pero no enviamos correcciones de errores los viernes a menos que el juego esté severamente descompuesto. El riesgo de causar accidentalmente un problema grave durante las horas pico del fin de semana es demasiado alto.

Así, la fiesta terminaba justo después de comenzar y Anivia quedaría exiliada de la Grieta hasta el lunes. Pero esperen, Anivia no fue desactivada durante todo el fin de semana.

¿Qué nos permitió salvar a la Criofénix de ese terrible destino? Para responder esto, tendremos que sumergirnos en el glamoroso mundo de los servidores del juego, los clientes, los relanzamientos y las microversiones.


Pongámonos (un poquito) técnicos

Los datos del juego se guardan en dos ubicaciones: en el cliente y en el servidor. Los datos del cliente se descargan a las computadoras de todos y es necesario que descargues una versión nueva para cambiarlos. El cliente contiene mucha información visual y de audio, como, por ejemplo, la apariencia de la Grieta, los modelos de los campeones y las voces.

El servidor del juego es donde te conectas después de la selección del campeón; es como un pequeño universo que gobierna tus partidas de 5v5 (o 3v3 o 1v9). Cuando realizamos un cambio en los servidores del juego, no es necesario que hagas una descarga ni hay tiempos de espera. Los servidores contienen información numérica, como, por ejemplo, las estadísticas de los campeones, además de los scripts que controlan el funcionamiento de las habilidades (pero no necesariamente su apariencia).

Concepto para la ilustración de Anivia Reina del Carnaval

Durante mucho tiempo, el único modo de realizar un cambio en el cliente o en el servidor era enviar información nueva en la forma de versiones (lanzamientos) o de correcciones de errores (relanzamientos). Los relanzamientos están dirigidos, la mayoría de las veces, a los datos del servidor y eran, en gran parte, el modo en que corregíamos los problemas importantes (problemas extremos de balance, errores de campeones, etc.) en el pasado.

Los relanzamientos son riesgosos y necesitan de pruebas de calidad inmediatas, a pesar de que la mayoría de los problemas son pequeños y solamente necesitan cambios menores en los datos. Sin embargo, no podemos relanzar solamente una pieza, tenemos que relanzar todos los datos. El arquitecto de ingeniería Brian "Riot Penrif" Bossé dice: "Realizar un proceso pesado de pruebas de calidad para un cambio pequeño puede ser una pérdida de tiempo y puede llegar a ser más arriesgado de lo que se esperaba".

Y, aunque se hagan pruebas, no relanzamos los viernes a menos de que haya una emergencia extrema (como, por ejemplo, que las filas clasificatorias se descompongan o que solo se pueda jugar con Teemo). Parte de la arquitectura de LoL se construyó hace mucho tiempo, antes de que supiéramos la cantidad de contenido que colocaríamos en esa base, y a veces esa base no es tan confiable como nos gustaría.

Una vez, luego de relanzar los datos del cliente, el archivo ejecutable de todos los jugadores de LoL se borró. Entonces, nadie pudo abrir League of Legends. La líder de Release, Donna "Riot Feithen" Mason dice: "Idealmente, si presionamos un botón, esperamos que suceda lo mismo cada vez, pero a veces no es el caso".

Seguimos trabajando para actualizar algunas de las bases de LoL, pero mientras tanto, ocasionalmente los relanzamientos serán impredecibles. Normalmente procedemos con precaución, particularmente antes del fin de semana, porque los relanzamientos nos obligan a reenviar toda la información sin importar qué tan pequeño sea el cambio.

Sabíamos que tenía que haber un modo mejor de arreglar errores menores que causan problemas mayores.


Microversiones, las superheroínas silenciosas

Hace un año, una nueva tecnología llamada "microversiones" lo cambió todo. A diferencia de los relanzamientos, las microversiones pueden realizar cambios específicos en los datos del juego. Si te imaginas al servidor del juego como un tablón de anuncios, la microversión sería como agregar una nota. Los relanzamientos significan cambiarlo todo, a veces solamente para corregir una errata. Con las microversiones, el juego sigue ahí, pero cuando se carga una partida nueva, busca si hay notas nuevas y realiza esos cambios específicos.

Podemos enviar una microversión globalmente en menos de dos minutos.

Esto hace que las microversiones sean mucho menos riesgosas y mucho más veloces que los relanzamientos. Primero, las microversiones se construyen a partir de datos existentes del servidor en lugar de lanzarlo todo de nuevo, así que los cambios son mucho más contenidos. Y segundo, las microversiones son muy sencillas de implementar y de revertir. Podemos enviar una microversión globalmente en menos de dos minutos y eliminarla igual de rápido.

Durante un tiempo, las microversiones solamente podían utilizarse para realizar cambios numéricos, existían para solucionar problemas de balance, rápido. No había forma de realizar cambios específicos a los scripts que controlan cómo funcionan las habilidades de los campeones; es decir, que los relanzamientos seguían siendo el único modo de corregir (la mayoría) de los errores que resultaban en una desactivación.

Justo unas semanas antes de que ocurriera el error de Anivia, se terminó de construir la tecnología salvadora de campeones: ahora podemos usar las microversiones para realizar cambios específicos en los scripts de las habilidades.


El renacimiento de Anivia

El día del debut de Anivia Reina del Carnaval, supimos que había un error en su habilidad definitiva en todos sus aspectos. Los miembros del equipo de control de calidad comenzaron a trabajar para ubicar la fuente del problema. El diseñador de juego asociado, Matthew "PhRoXzOn" Leung-Harrison, quien trabajó en los cambios de Anivia realizados en la versión 6.23 dice: "En cuanto vi el error, supe exactamente qué estaba ocurriendo".

Todos los campeones de LoL tienen un archivo lógico que contiene los scripts que controlan sus habilidades. Este no contiene necesariamente información sobre cómo se ven las habilidades o cuánto daño infligen. Más bien, controla cómo deberían funcionar las habilidades. Es como una motherboard que conecta toda la información y la sintetiza en lo que ves en la pantalla.

Debido a una confusión, terminamos por enviar una versión descompuesta del archivo lógico de la definitiva de Anivia a los servidores. Como resultado, parecía que su habilidad definitiva no tenía problemas. Presionabas "R" y tenía efectos bonitos de partículas, pero no funcionaba correctamente. Tormenta Glacial debería aplicar una debilitación de dos segundos para duplicar el daño de Quemadura Gélida, pero solamente aplicaba una debilitación de 0,5 segundos. Como lo dijo el líder de control de calidad, Brian "Aotus" Brause: "Te veías hermosa... pero no infligías ningún daño".

Después de identificar el problema, actualizamos su script lógico y realizamos pruebas de control de calidad. El cambio solucionó el error nuevo, pero una revisión más a fondo reveló una vieja brecha que se originó en la versión 6.23. Afortunadamente, el proceso de control de calidad para las microversiones es bastante veloz, ya que solamente revisamos los resultados de un cambio en específico. Realizamos una segunda modificación, la cual sí funcionó, corregimos ambos errores y estábamos listos para enviarla a los jugadores vía microversión.

Olvídate de desactivarla por todo el fin de semana, en tan solo cuatro horas, Anivia estaba de vuelta para continuar con la fiesta en la Grieta (correctamente)


¿Las microversiones arreglan todos los problemas?

Aunque las microversiones se utilizaron en el pasado para resolver problemas de balance, esta fue la primera vez que modificamos un script lógico y salvamos a la campeona del cruel destino de la desactivación a través de ellas. Esta tecnología no funciona con todo. No verás que las utilicemos para añadir un ala nueva en Anivia ni para agregar efectos especiales de hielo, pero son una forma rápida y de bajo riesgo de solucionar algunos problemas.

Ahora, estamos trabajando para encontrar una mejor forma de comunicarles a los jugadores los cambios de las microversiones. Actualmente los incluimos en la parte superior de las notas de la versión, pero ¿quién se pone a leer esas notas mucho después de haber lanzado esa versión? Consideramos transmitir los cambios más importantes, como las debilitaciones y las mejoras, en el cintillo de noticias del cliente, pero eso solamente está ahí para notificarte si algo está descompuesto o es inestable. Esperamos que el cliente actualizado proporcione un mejor medio para compartir los cambios de las microversiones.

Mientras tanto, Riot Penrif bromea: "Si algo funciona de repente cuando pensaste que estaba descompuesto, puedes suponer que las microversiones salvaron el día".


2 months ago