Dev
LIMPIEZA DEL CLIENTE: 2021 a la fecha y los planes

Mejoramos el Chromium Embedded Framework (CEF) mientras investigamos otras oportunidades de mejora.

  • Se copió al portapapeles

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

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

En resumen, durante el primer trimestre de 2021 trabajamos en abrir camino para mejorar el Chromium Embedded Framework (CEF). Todavía tenemos pendientes algunos asuntos, pero esperamos contar con una nueva versión del Chromium Embedded Framework (CEF) a mediados del año, lo que brindará muchos beneficios para los jugadores.

Actualización al Chromium Embedded Framework (CEF)

Tal como mencionamos la última vez, uno de los proyectos más importantes que tenemos es actualizar la versión del cliente del Chromium Embedded Framework (CEF), el navegador web en el centro de la arquitectura del cliente de LoL. Subestimamos su importancia la última vez, así que seremos directos. La actualización del CEF es el cambio con mayor impacto que podemos hacer para mejorar el cliente, tanto en términos de beneficios directos como para explotar nuestra habilidad de realizar otras mejoras.

La última vez que actualizamos el CEF fue en noviembre de 2019 (versión 74); al momento de escribir este artículo, la versión más reciente es CEF 90. Actualizar el CEF (apuntamos al CEF 90) tendrá los siguientes beneficios:

  • Reducción de fallas del cliente
    • Las versiones desactualizadas del CEF no se llevan bien con algunos equipos. La información inicial nos indica que la mayoría de las fallas se deben a una versión desactualizada del CEF. Creemos firmemente que una vez que lo actualicemos, los jugadores experimentarán menos fallas.
  • Mejoras de compatibilidad
    • El equipo de CEF realiza pruebas exhaustivas de nuevas versiones en muchas combinaciones de hardware. El cliente de LoL recibe el beneficio de esas pruebas gratis.
  • Rendimiento más rápido de WebSocket
    • El cliente de LoL se compone de dos grandes partes: la "parte frontal", es decir, la aplicación visual con la que interactúas y un "cimiento" mucho más pequeño que se encuentra tras bambalinas y es el que toma la información de nuestros servidores y hace un seguimiento de todo lo que el cliente necesita para mostrarte la información correcta. Por ejemplo, algunas tareas que hace el cimiento son:
      • "Este jugador habilitó la opción de cerrar el cliente durante las partidas y acaba de entrar a una; elimina la parte frontal hasta que termine".
      • "Este jugador acaba de abrir la pestaña de Colecciones. ¿Qué campeones posee?".
    • Un WebSocket es básicamente un conducto que comunica la parte frontal con el cimiento. Un conducto más largo y directo acarrea información más rápido; esto es lo que obtenemos con una versión más nueva del CEF. Las mejoras al WebSocket pueden resultar en un mejor rendimiento en momentos donde se transfiere mucha información (Final de la partida, Selección de campeones), en especial para los jugadores con equipos más antiguos. Si comparamos nuestras versiones CEF, la diferencia podría ser de hasta:
      • 4.1 veces más rápido en Windows
      • 7.8 veces más rápido en Mac
  • Rendimiento mejorado de las animaciones
    • En particular, las animaciones que están animadas mediante procesos según la información, como la barra de experiencia en la pantalla de Final de la partida (tenemos muchas de este tipo). Estas animaciones son, técnicamente, un tipo de pérdida de memoria; por lo tanto, el rendimiento general del cliente durante sesiones largas también mejorará.
  • Mejora de FPS: reducción de la ''lentitud'' y un mejor reconocimiento de clics
  • Nuestros desarrolladores pueden trabajar de forma más fácil (es decir: más rápido y confiable)
    • Maneras adicionales de evitar las pérdidas de memoria durante sesiones de juego más largas.
    • Una nueva métrica que nos brinda información más certera sobre cuánto tardan las cosas en renderizarse en la pantalla del cliente.
  • Uso más eficiente del procesador
    • La versión actual de CEF del cliente (74) inauguró una característica llamada ''Servicio de Red'', la cual canaliza todos las solicitudes de red a través de un hilo único en tu procesador; esto libera otros hilos para otras cosas, como la carga de contenido. En este momento, no estamos usando esta característica porque era muy nueva cuando actualizamos el CEF por última vez y no tuvimos tiempo de experimentar con ella. Con nuestra próxima mejora, podemos empezar a planificar un soporte para ella en LoL.
  • Rendimiento mejorado de Javascript
    • Las versiones más nuevas de Chromium traen consigo importantes mejoras al motor v8 que usa para manejar Javascript. Al igual que con las mejoras de compatibilidad, este es un beneficio que conseguimos tan solo con actualizar las versiones.


En el trimestre pasado, nos hemos enfocado en mejorar nuestros componentes de red actuales (por ejemplo, la tecnología del sitio web para incrustar videos, las notificaciones emergentes, etc.) para lograr versiones que sean compatibles con las versiones nuevas del CEF y así asegurarnos de que la mejora del CEF no perjudicará nada. Queremos que la mejora de estos componentes sea una experiencia sin problemas, así que, con suerte, no notaste nuestra presencia cuando desplegamos estas mejoras en las últimas versiones. Estas mejoras se mueven entre una gran cantidad de código, por lo que estamos al tanto de los inconvenientes menores ocasionales que pueden pasar desapercibidos durante las pruebas, pero los vamos solucionando sobre la marcha.

Para concluir, estamos a unas pocas semanas de terminar estas mejoras de componentes y podremos pasar a la actualización del propio CEF, el cual esperamos tener actualizado para finales de julio de 2021.

Panel social

Otra de las áreas de interés que mencionamos la última vez era el Panel social. Nuestro plan a largo plazo es migrar el panel social de ComponentsJS (arquitectura vieja) a Ember. Por el momento, esta transición está suspendida mientras nos concentramos en terminar la actualización del CEF, aunque ya completamos algunos de los primeros pasos necesarios para la transición a Ember y nos pondremos a trabajar de nuevo en ello una vez que el CEF esté actualizado.

Estos son los problemas más importantes que resolvimos en lo referente al Panel social antes de trasladar nuestra atención a la mejora del CEF:

  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. La información de clasificatoria desaparece de la tarjeta de perfil si un jugador está en una partida normal
  4. Fluctuación entre Desconectado, el poro triste y Cargando Lista de amigos al iniciarse

Actualización del uso de la memoria y errores de Javascript

Continuamos monitoreando el uso de la memoria para las partidas jugadas en una sola sesión. Nos complace informar que vimos una caída de casi 30MB por partida jugada desde la versión 10.25 y una disminución continua general en las fallas por falta de memoria.

El último tema que queremos tocar son los errores de Javascript. Cometimos un error en nuestra publicación anterior acerca del número real de errores de JS que experimentaron los jugadores en las regiones de Riot. En la versión 10.25, fueron nada menos que 265 millones. Algo bueno es que esto solo acentúa aún más la urgencia del problema; además, el número real de errores que experimentaron los jugadores no cambió, solo cambió nuestra manera de contabilizarlos. Desde entonces, redujimos la cantidad de errores a 140 millones por versión y confiamos que reduciremos aún más este número en el futuro.

Nuestros planes

Aunque la actualización del CEF es nuestra principal meta para el corto plazo, también tenemos algunos proyectos para revisar más adelante en el 2021.

  • La transición del Panel social a Ember, como comentábamos anteriormente.
  • Revisar el Final de la partida. Aunque nos ocupamos de algunos problemas mayores con el desempeño del Final de la partida a fines del año pasado/principios de este año, aún tenemos mucho trabajo por delante. Son muchos los jugadores que todavía se quejan del tiempo que tardan en volver al cliente o que el final de la partida se congela. Una vez que comience este proyecto, haremos un mapa de todas las interacciones del cliente con el motor y los servicios dentro del juego, luego analizaremos qué podemos hacer para mejorar la experiencia. El final de la partida trabaja con muchos otros servicios que el equipo del cliente no posee, así que parte del proceso será asociarnos con otros equipos para priorizar las correcciones en conjunto.
  • Ingresar a la Selección de campeones tarde. Existe un problema con una alta tasa de reporte para algunas regiones, lo que nos dice que hay una dependencia a la conexión de red del jugador (la infraestructura de Internet varía de región a región). Aunque no podemos hacer mucho para abordar los problemas de red, podemos trabajar con el equipo de competitividad y hacer todo lo que esté a nuestro alcance para asegurarnos de que todos los jugadores dentro del cliente lleguen a la Selección de campeones en un tiempo razonable.
  • Estabilidad del cliente durante sesiones largas. Uno de nuestros objetivos emergentes a fines del año pasado fue abordar las pérdidas de memoria, lo que ocasiona que el cliente necesite cada vez más memoria a medida que se juegan múltiples partidas o que permanezca inactivo por largos períodos de tiempo. A modo de un seguimiento más integral, buscaremos maneras intuitivas para que los jugadores experimenten el cliente como si recién acabaran de iniciar sesión, sin importar cuántas partidas hayan jugado ni cuánto tiempo haya pasado desde que abrieron el cliente. La solución aquí podría ser continuar redoblando la apuesta y abordar las pérdidas de memoria más dificultosas, pero tendremos que evaluar ese trabajo contra las soluciones a corto plazo.

¡Eso es todo para esta actualización! Como siempre, el trabajo que hacemos proviene en gran medida de los comentarios que recibimos a través de numerosos medios, como nuestras encuestas para jugadores habituales. Te pedimos que nos digas qué partes del cliente necesitan más trabajo. ¡Además, cuál de nuestros cambios tuvo el mayor impacto en tu experiencia de juego!



  • Se copió al portapapeles