Dev
LIMPIEZA DEL CLIENTE: resumen del 2020 y novedades

Presentamos un resumen del progreso en 2020 y repasamos los planes para el 2021.

  • Se copió al portapapeles

Nos comprometimos a compartir actualizaciones frecuentes del trabajo que hacemos para mejorar el rendimiento y confiabilidad del cliente de LoL.

La actualización de hoy es la sexta de la serie. (Consulta la primera, segunda, tercera, cuarta y quinta aquí).

En resumen, pasamos el 2020 mejorando el tiempo de inicio del cliente, su arquitectura, la selección de campeones, el fin de la partida, las fugas de memoria, las caídas del cliente y corregimos errores. Estamos en plena planificación para el primer trimestre del 2021 y queremos concentrarnos en mejorar el panel social y seguir mejorando la estabilidad general del cliente.


Resumen del 2020

Formamos nuestro equipo a finales de 2019 y gran parte de nuestro trabajo inicial consistió en pasar por el proceso de comprender el estado del cliente de LoL. Como parte de ese proceso, decidimos centrarnos en las partes del cliente que se veían más afectadas de acuerdo con los comentarios de los jugadores a nivel global y, con base en eso, determinamos qué puntos debíamos abordar para mejorar el cliente. Aún tenemos trabajo por hacer, pero si echamos un vistazo al 2020, nos damos cuenta de que hemos podido hacerle mejoras significativas al cliente.

  • Creamos nuestra encuesta global sobre el cliente, que utilizamos para determinar en qué debemos trabajar. La mayoría de los logros que mostramos a continuación son el resultado de lo que los jugadores querían que se abordara.
  • Redujimos el tiempo de arranque (inicio) a 16 segundos para el 90% de los jugadores a nivel mundial (de 29.5 segundos al comienzo del 2020).
    • Esto lo logramos mediante un trabajo de arquitectura, que incluyó una reducción del 63% en las aplicaciones de Ember del arranque (las que se cargan al iniciar el cliente) y una reducción del 57% de los complementos dentro del cliente. En otras palabras, limpiamos mucho código.
  • Mejoramos la capacidad de respuesta y fiabilidad de la selección de campeones a la hora de elegirlos y bloquearlos.
    • Solucionamos problemas de rendimiento al filtrar los campeones y mejoramos la cuadrícula de selección de campeones.
    • Investigamos el uso de ciertas funciones en la selección de campeones. Hablaremos más de eso a continuación.
    • Mejoramos el tiempo de confirmación y bloqueo de campeones.
    • Corregimos las fugas de memoria dentro y alrededor de la selección de campeones (hablaremos de eso a continuación).
  • Solucionamos el problema que hacía que el cliente se congelara por completo y quedara en negro cuando los jugadores volvían a él mediante el flujo del final de la partida tras terminar una partida.
  • Solucionamos el problema que hacía que el cliente quedara atascado en el botón "Reconectar" durante el final de la partida, cuando no debería aparecer.
  • Corregimos 175 errores durante el 2020, que van desde cosas pequeñas a problemas que hemos tenido desde siempre.
    • Nombres de jugadores que aparecían como "..." en el chat.
    • La barra de tareas que no se iluminaba al recibir un mensaje en el chat.
    • La falta del panel social para los jugadores nuevos.
    • Ajustes que se restablecían cuando el jugador iniciaba sesión desde una computadora diferente.
    • Notificaciones de regalo repetidas en el inicio de sesión.
    • Jugadores que se encontraban con una pantalla de inicio negra tras realizar varias acciones en el cliente.
  • Mejoramos la capacidad de respuesta de la pestaña de colecciones y de cada una de sus subsecciones.
  • Redujimos en un 40% el tiempo de carga de la pestaña de runas; ahora su interfaz es más fluida y fiable.
  • Abordamos 30 fugas de memoria en todo el cliente. Esta es un área especialmente difícil que descubrimos a fin de año, por lo que estamos bastante satisfechos de haber podido entregar las mejoras antes de la época de fiestas.
    • Las fugas de memoria se producen cuando una parte del programa no logra liberar su memoria al completar una tarea. Esto deja menos memoria total para otros programas que ejecuta el sistema. Los resultados siempre son malos, pero las causas son bastante difíciles de encontrar, en especial en aplicaciones grandes.
    • Antes de nuestras primeras correcciones de fugas de memoria en la versión 10.23, los jugadores de las regiones de Riot experimentaron alrededor de 193 000 caídas por falta de memoria en cada versión. A finales de 2020, en la versión 10.25, ¡vimos una reducción del 55% en esas caídas!

Como mencionamos anteriormente, usamos los datos de la encuesta global sobre el cliente para decidir qué deberíamos abordar. Las mejoras mencionadas representan un progreso en las áreas más reportadas, pero esto solo importa si todos los jugadores sienten que vamos en la dirección correcta. Por eso nos complace contarles que, además de las métricas basadas en el juego, hemos visto tendencias positivas en las encuestas en general, lo que significa que más jugadores sienten que han tenido una experiencia menos frustrante con el cliente.

...Menos frustrante. Todavía tenemos muchas cosas que hacer este año y seguiremos compartiendo actualizaciones al respecto.


Características poco frecuentes en la selección de campeones

Si tuvieron oportunidad de leer nuestra publicación anterior, mencionamos que estamos considerando la idea de eliminar algunas características poco frecuentes de la selección de campeones con el fin de mejorar el rendimiento general. Tras evaluar los favoritos, misiones y gestos, decidimos no eliminar ninguno de ellos y, en vez de eso, trabajaremos para optimizarlos. Ya corregimos un problema con los gestos y ahora estamos trabajando para crear favoritos seguros y misiones que funcionen como se espera.


Nuestros planes

Actualmente estamos terminando de planificar el primer trimestre del año, pero esto es lo que queremos abordar en el cliente de LoL:

Panel social

Durante el año pasado, vimos un aumento en los problemas relacionados con el panel social. En diciembre corregimos un error en el que las tarjetas de perfil de los amigos en la partida no mostraban el tipo de partida o el campeón. Estos son los problemas que planeamos abordar:

  1. La falla de conexión en el panel social
  2. La lista de amigos no carga, aparece un estado incorrecto, no aparece la lista de amigos
  3. Los jugadores no ven una solicitud de amistad si la lista de amigos está llena
  4. La información de clasificatoria desaparece de la tarjeta de perfil si un jugador está en una partida normal
  5. El chat no funciona correctamente al enviar mensajes en sucesión rápida
  6. Las carpetas se reordenan solas entre sesiones
  7. Las carpetas de LoR y Valorant se pierden al filtrar por "Agrupar juegos y servidores"
  8. Los cuadros de texto se superponen al hacer clic en "Mostrar fechas" en el cuadro de chat
  9. La notificación de solicitud de amistad solo aparece cuando la opción está desactivada y viceversa

Además, dejaremos de lado la antigua estructura de Javascript (hablaremos más sobre JS en un segundo) y trasladaremos el panel social a Ember. Esa transición es una buena oportunidad para repasar y limpiar puntos conflictivos del código, lo que permite aumentar la fiabilidad y tener menos errores.

Estabilidad del cliente

Ahora presentaremos dos áreas de enfoque nuevas para mejorar la estabilidad del cliente de LoL: caídas del cliente y errores en Javascript, que pueden causar distintos problemas como... caídas del cliente. En vez de enfocarnos en una porción específica del cliente (por ejemplo, selección de campeón, arranque del cliente), tomaremos un enfoque más amplio en el cliente. Además del trabajo de estabilidad (que ya era nuestra prioridad), abordaremos estos cuatro puntos:

  • Reducción de caídas: en la versión 10.25, los jugadores en 16 regiones de Riot experimentaron 2.2 millones de caídas del cliente. Tras nuestra investigación inicial, parece que la mejor opción es abordar la mayoría de las caídas mediante la mejora de nuestra versión de Chromium. Este es el navegador web en el centro de la arquitectura del cliente de LoL.
  • Reducción de errores de Javascript: en la versión 10.25, los jugadores en 16 regiones de Riot experimentaron 36 millones de errores de Javascript (JS) en el cliente. Aunque no todos los errores de JS producen caídas o un impacto en el rendimiento, incluso los errores invisibles pueden acumularse con el tiempo y producir mayor impacto. Reducir esta cifra producirá una serie de beneficios en todo el cliente.
  • Seguir corrigiendo fugas de memoria: corregir algunas de ellas fue una gran victoria para nosotros durante el año pasado. Queremos seguir así este año.
  • Seguir trabajando en la arquitectura para limpiar nuestra base de códigos: para actualizar Chromium (como lo mencionamos anteriormente), tenemos que completar muchos requisitos previos, que en sí mismos, mejorarán más el rendimiento del cliente. Planeamos completar este trabajo y realizar la mejora de Chromium a mediados de año.
    • La última vez que actualizamos Chromium fue en diciembre de 2019, un par de meses antes de comenzar con la campaña de limpieza de cliente. Tuvimos buenos resultados con esa actualización (CTRL+F "Chromium") y hablaremos sobre las mejoras que vienen con esta próxima actualización cuando estemos próximos al lanzamiento.

¡Agradecemos todos los comentarios que recibimos respecto al cliente y los leemos con atención! ¡Tuvimos un buen 2020 y seguiremos con el impulso para mejorar el cliente para nuestros jugadores!



  • Se copió al portapapeles