Cómo revivir a un dragón

Por Riot Costy

El 29 de septiembre de 2016, el primer día del Campeonato Mundial 2016, desactivamos a Aurelion Sol debido a un grave error de jugabilidad. El 2 de octubre, el cuarto día del Mundial 2016, el Forjador de Estrellas hizo su regreso triunfal a la Grieta. Esta es la historia del error que llegó en el peor momento posible y del equipo que trabajó sin descanso para encontrar una solución.


San Francisco - 10:30 p.m. (PT), 29 de septiembre

TSM de Norteamérica y Royal Never Give Up (RNG) de China comenzaron la partida final del primer día del Mundial 2016. A los dos minutos, Bjergsen de TSM pausa la partida debido a un problema de visibilidad con el Aurelion Sol de Xiaohu de RNG. Las estrellas que orbitan pasivamente a Aurelion habían desaparecido por completo.

LUKE RINARD, diseñador de Aurelion Sol: Como el diseñador de juego de Aurelion Sol, estaba muy entusiasmado de verlo en una partida profesional a ese nivel. Ya había sido elegido antes, pero vamos... ¡es el Mundial! ¡Y lo eligieron el primer día! Entonces pausaron el juego y pensé: "Oh, no... apuesto que tiene que ver con Aurelion". Eso me sucede a menudo cuando Bardo o Aurelion están en una partida, pienso: "¡Apuesto que es él!" y generalmente no lo es. Esta vez sí lo fue.

BRIAN BOSSE, arquitecto de ingeniería: Estaba en casa siguiendo la transmisión cuando vi que hubo una pausa, y cada vez que hay una pausa mi corazón se detiene un poco. Me pongo a rezar: "Que sea un problema de audio, un problema de audio... Dios, por favor, que sea un problema de audio" porque a menudo lo es (y normalmente eso se soluciona rápido). Pero no lo fue.

AMELIA VON HADEN, programadora de jugabilidad: Estábamos viendo el evento, cuando vimos la repetición y exclamamos... "¡Aaaaaah, noooo!"

RAVEN KEENE, árbitro principal: La reacción inmediata a los errores es siempre la misma: solo trata de recabar la mayor cantidad de información posible. En este caso en particular, el árbitro se involucró diciendo que Bjergsen se quejaba de no poder ver las estrellas de Aurelion Sol. Obtuvimos la grabación del escenario, lo que nos da la visibilidad que habría tenido el jugador en cuestión. No vi ningún problema desde mi cliente de espectador, pero revisando el archivo de video de Bjergsen, fue muy claro que él veía un problema.

Reiniciamos el cliente y al principio todo estaba bien. Decíamos: "Oh, bien, quizás esto solo fue un problema en el que el recurso no se cargó correctamente y no tendremos que pedir una repetición en esta ocasión". Pero entonces, en menos de un minuto el problema volvió a aparecer, y en ese momento quedó claro que un reinicio no nos ayudaría en esta situación. Teníamos que pasar a la siguiente solución. Fue entonces cuando se ofreció una repetición.

NICK TROOP, productor de esports en vivo: Ver a un campeón potencialmente deshabilitado por el resto del evento del que no sabíamos con anticipación, de alguna manera se siente como que fallamos, aun cuando algunos errores son únicos e inesperados, como el de Aurelion Sol.


Los Ángeles - 11 p.m., 29 de septiembre

Con Aurelion Sol deshabilitado, la presión estaba en encontrar la causa del error e identificar una solución potencial. Un equipo de Rioters se apresuró a llegar a la oficina de Los Ángeles para analizar el problema.

BRIAN BOSSE: En ese momento estaba en el chat interno y el canal empezó a estallar con: "Tenemos un problema con los misiles de Aurelion Sol". Tuve algo que ver con la creación de ese sistema, así que pensé: "Ok, es hora de dar lo mejor de mí. Aquí vamos". Cuando confirmamos con la segunda pausa que esto no iba a desaparecer, me puse mi baticapa, fui a la oficina y empecé a analizarlo.

AMELIA VON HADEN: Entré de inmediato al chat solo para ver lo que pasaba con el error. Ya que soy programadora de jugabilidad, estoy muy familiarizada con el código del juego, así que, si era un problema relacionado a eso, pensé que era algo en lo que podría ayudar. También estuve en el equipo de campeones por poco tiempo mientras Aurelion Sol estaba en desarrollo, así que tenía un poco de conocimiento de la implementación de su pasiva. Terminé en el canal de intervención del Mundial, donde estaban charlando acerca del error. Como era algo en lo que probablemente podría ayudar, pensé: "Qué demonios, iré al estudio".

BRIAN BOSSE: Mientras conducía hacia el trabajo iba pensando: "¿Qué demonios ha fallado en el ambiente de esports? ¿Y esto será sistémico para todo lo demás?" Todo es posible en ese momento. Estábamos fuera de horas de trabajo, la estructura informativa normal no existe y cualquiera que esté disponible tiene que actuar, y yo estaba disponible, así que actué.


San Francisco - 12 a.m., 30 de septiembre

Cuando terminó el espectáculo del día, el equipo de esports en San Francisco empezó inmediatamente a tratar de reproducir el error. Este es un paso clave para identificar un problema y buscar una solución. En este punto hay tres equipos en todo el continente trabajando en este problema: el equipo de esports en el evento en San Francisco, el equipo de desarrollo en Los Ángeles y un equipo externo dedicado de Aseguramiento de la Calidad en Montreal.

RAVEN KEENE: Estuvimos ahí por horas tratando de descartar todos los pasos posibles que pudiéramos encontrar para la reproducción. Tratábamos de imitar la situación que veíamos en el escenario lo mejor que podíamos y luego tratábamos de ir eliminando las variables. No recuerdo cuántas pruebas terminamos haciendo, pero fueron más de 20 repeticiones de la partida, una y otra vez, para descubrir qué estaba causando esto.

NICK TROOP: La primera reproducción que ocurrió fue cuando un ingeniero usó nuestra herramienta de un solo jugador. Pudo reproducirlo teniendo a nueve Aurelion Sol en una partida, lo que obviamente no es posible, pero pudieron trabajar con eso desde el punto de vista de ingeniería y pudimos probar los resultados en el escenario. Una cosa es deshabilitar el campeón por el resto del día hasta que comprendamos el problema, pero es otra distinta que Raven tenga que enfrentar la decisión de deshabilitar al campeón durante todo el torneo. No queremos estar en esa posición; apesta para los espectadores y apesta para los profesionales.

RAVEN KEENE: Lo que hacía interesante este caso es que era muy confuso. Empezamos a usar las cuentas de los jugadores profesionales para revisar, pues nuestras cuentas de prueba no podían obtener la reproducción que necesitábamos. Eso nos hizo pensar que quizá era un problema relacionado con las cuentas, pues todo lo que creamos y todas nuestras variables eran constantes, y lo único que cambiaba era la cuenta misma.


Los Ángeles - 2 a.m., 30 de septiembre.

El equipo en el sur de California produce exitosamente su primera reproducción y comienza a trabajar en la ingeniería inversa para encontrar la causa raíz.

BRIAN BOSSE: Lo primero que se debe hacer en un caso como este es entender los hechos, qué sabes y qué no. En ese momento no teníamos nada más que un video de la pantalla de Bjergsen. Tratamos de reproducirlo cargando el cliente en nuestras computadoras locales y siguiéndolo lo más estrechamente posible hasta exactamente donde estaba Aurelion Sol, pero no se reproducía. Mierda. Eso hubiera sido fácil.

AMELIA VON HADEN: Habíamos estado sentados allí por horas analizando el código y tomé nuestra herramienta de un solo jugador para tener 20 espectadores sin retraso en lugar de uno. Estaba probando lo que hacía el juego con varios espectadores viendo. Tenía cerca de 20 espectadores al mismo tiempo y mi computadora apenas funcionaba, mientras otros trataban de reproducirlo.

BRIAN BOSSE: Para las 2 de la mañana, tuvimos una reproducción del síntoma, pero con una causa diferente. Ese fue uno de nuestros desarrolladores ejecutando 10 clientes y el servidor en la misma computadora, reproduciéndolo muy raramente. Como 1 de 50 o 100, sentado allí hasta que ocurriera, y solo ocurrió para uno de los misiles.

AMELIA VON HADEN: Finalmente lo reprodujimos y pensamos: "OH, MIERDA, LO LOGRAMOS. ¿HAY ALGO QUE PODAMOS HACER CON ESTO?" Lo reprodujimos en una configuración con la que no podíamos usar nuestro depurador, así que de inmediato todos fueron a las máquinas de programación y trataron de volverlo a reproducir del mismo modo. Después de unos 20 intentos, ¡lo logré! Solo habían desaparecido dos misiles, pero teníamos algo. Fue como desactivar una bomba. En cuanto conectamos el depurador, debíamos llamar a Brian: ya que él escribió el código, él lo conocía. Si alguien era capaz de analizar y descifrar esto, ese era Brian.

BRIAN BOSSE: Ni siquiera era lo mismo que sucedió en el escenario. Pero con ese ejemplo, logramos escarbar en el depurador y descifrar en qué estado estaba el misil que había producido ese síntoma. Y eso fue suficiente para que, durante las siguientes cinco horas, rastreáramos la verdadera causa con los espectadores. Nos tomó... 12 horas de principio a fin, incluyendo un pequeño descanso para dormir. El último miembro del equipo se fue a las 4:30 a.m. y el primero volvió a las 9 a.m.


Los Ángeles - 9:30 a.m., 30 de septiembre

Se había identificado la raíz del problema y los Rioters empezaron a llegar a la oficina para trabajar al día siguiente.

LUKE RINARD: Al día siguiente fui a trabajar y me enteré de que probablemente Aurelion había sido deshabilitado por un día o dos, pero ya teníamos una solución. Me sorprendí, pues era antes de la hora del almuerzo y pues... ¿cómo lo resolvieron? Brian se había quedado aquí toda la noche y su escritorio estaba completamente lleno de latas de refresco. Se veía algo demacrado, pero seguía despierto y trabajando, y estaba emocionado de encontrar la solución para el problema.

AMELIA VON HADEN: El castillo de latas de refresco de Brian era muy gracioso.

RAVEN KEENE: Nos llegó a todos una foto del escritorio lleno de latas. ¡Eran docenas!

LUKE RINARD: Fui al escritorio de Brian y le estaba explicando el problema a alguien, haciendo eso que hacen los ingenieros de gesticular mucho. Tratamos de preguntarle qué pasaba y uno de los ingenieros junto a él dijo: "Oye, oye, shhh. Está en medio de algo importante. Tuvo una epifanía".

BRIAN BOSSE: Siempre tuvimos dudas respecto al problema de los espectadores, ya que esa es la principal diferencia entre los ambientes de los esports y en vivo, porque los esports usan un sistema diferente para ser televisados. Mientras eso sucedía, estaban haciendo reproducciones en escena con la cuenta de Bjergsen, con la verdadera situación que había pasado, tratando de descubrir: "¿Cuándo se reproduce? ¿Cuándo no se reproduce?". Con la información que recabamos, más la información que conseguimos al depurar la extraña reproducción del síntoma que conseguimos, fuimos capaces de delinear la causa del problema.


San Francisco - 10 a.m., 30 de septiembre

Tras descubrir el problema e identificar una solución, el equipo de esports solicitó activar a Aurelion Sol para el cuarto día del Mundial.

RAVEN KEENE: Mi primera reacción fue "Gracias a Dios", y la segunda fue agradecer al dios Bosse por su gran trabajo. Luego llegamos al punto de buscar una solución. ¿Era una solución sencilla? En este caso sí lo era, porque podíamos ajustar las cuentas. Luego debíamos comunicarle esto a todas las personas en Riot que potencialmente pudieran ser afectadas por este error. En este caso, como estaba relacionado a las cuentas, eso incluía a todos los espectadores y a nuestros espectadores internacionales, así que se requirió mucho trabajo de nuestro equipo de Producción en vivo para informárselo a todos. Debíamos asegurarnos de que los equipos en la competencia supieran de inmediato cuándo estaría disponible e incluso analizar cuándo serían las rondas de bloqueos, porque necesitábamos informar esto antes de que se jugaran las rondas de bloqueo.

BRIAN BOSSE: Un gran alivio. Pasamos de tener todas las opciones imaginables a esta solución muy contenida, y ahora todo iba a estar bien. Era un final increíblemente favorable para todo esto.

LUKE RINARD: Fui y les dije cosas lindas a todos los que estuvieron involucrados, y les dije que significó mucho para mí. Todos los que ayudaron eran las estrellas. Su reacción cuando les decía "Gracias por ayudarnos" fue... "Bueno, sí, claro". Casi como si dijeran: "¿Por qué me agradeces? Por supuesto que voy a venir unas horas en medio de la noche del jueves".

BRIAN BOSSE: Quiero enfatizar que no llamamos a nadie para esto, tuvimos un par de ingenieros, unas cuantas personas de Control de calidad y parte del personal de producción que se ofrecieron como voluntarios. No obligamos a nadie a que viniera a trabajar en esto. Fue increíble ver cómo esas personas se quedaron tanto tiempo a arreglar esto.

AMELIA VON HADEN: Supongo que era mi deber ayudar. Ya era tarde, así que la mayoría ya se había ido a casa y habría nuevos combates al día siguiente. Conocía el problema y les serviría mi ayuda. Simplemente sentí... que era lo que debía hacer. Era lo mejor, para obtener la mejor experiencia del Mundial. Sé que muchos equipos han practicado con Aurelion y todos esperaban ver que se jugara. Pensar en tener un Mundial sin él era... no podía ser.


San Francisco - 8:30 p.m., 2 de octubre

Aurelion Sol se rehabilitó al cuarto día, y fue elegido por Huhi de Counter Logic Gaming para su combate contra ROX Tigers. Huhi dominó a los campeones coreanos con su selección favorita y ayudó a que CLG arrollara a los Tigers.

AMELIA VON HADEN: Nos sentimos como la gente que crea un campeón; cuando ven que juegan con él, siempre sienten un nudo en el estómago pensando que será una mala partida o que se va a descomponer... Con este asunto de Aurelion Sol, sentimos lo mismo cuando vimos que jugaban con él, esperando que no volviera a fallar.

RAVEN KEENE: Al principio, cuando volvió a ser elegido, fue uno de esos momentos de "¡Agárrense!". Ni siquiera respiramos durante los primeros minutos. Una vez que llegamos al punto en que la partida comienza a fluir y empiezas a ver las jugadas, el ambiente cambió por completo, por dentro, por fuera, entre los jugadores, los fans, todo. La historia cambió de Aurelion Sol, el campeón deshabilitado, a Aurelion Sol, el Destructor.

LUKE RINARD: Después de que fue elegido y CLG arrasó con él... Yo pensaba: "tal vez este personaje es demasiado poderoso, tal vez es muy fuerte". Verlo en el Mundial y verlo ser tan poderoso y exitoso, fue muy gratificante para mí. ¡Después de esa partida, el lunes volví a ir a agradecerles a todos de nuevo! Fui y les dije a todos cómo me alegró el mes ver que lo jugaran ese domingo. Luego, ver que lo jugaran en la tercera partida de la Final, en una partida tan decisiva, terminó de alegrarme el mes.


El Mundial es el pináculo de las competencias internacionales de LoL, y perder a un campeón tan importante como Aurelion Sol durante el Mundial habría sido devastador tanto para los jugadores como para los espectadores. Los Rioters que se unieron para solucionar este error trabajaron sin descanso, asegurándose de que todos los campeones estuvieran disponibles para los mejores jugadores del mundo durante la batalla por la Copa del Invocador.


8 months ago

Etiquetado con: 
Aurelion Sol