Limpieza del cliente: progreso y contratiempos

La más reciente limpieza del cliente incluye noticias del progreso y algunos contratiempos.

Hace unos meses, anunciamos los planes para arreglar el cliente de League of Legends, un esfuerzo denominado ''campaña de limpieza del cliente''.

El equipo de Riot se compromete a mantenerlos informados de nuestro progreso, incluso cuando tenemos problemas. Para ser sinceros, aún nos queda un largo camino por recorrer antes de estar satisfechos con el rendimiento del cliente.

En el blog de hoy, hablaremos de algunos progresos positivos que hemos logrado. También compartiremos detalles sobre algunos de los contratiempos que hemos tenido y cómo planeamos solucionarlos con los próximos pasos que tomaremos.


ALGO DE PROGRESO

Como dijimos en nuestro primer blog del cliente, queríamos centrarnos primero en reducir el tiempo de arranque a unos 15 segundos, incluso para los jugadores del percentil 90. El tiempo de arranque, como recordarán, es la medida del tiempo que le toma al cliente arrancar.

Para lograr nuestro objetivo, dijimos que consolidaríamos y reduciríamos el número de complementos y aplicaciones de Ember del cliente. Si son nuevos con esta terminología, solo recuerden que los complementos son herramientas que nos permiten dividir el código del cliente en segmentos útiles. Las aplicaciones de Ember son herramientas que dirigen nuestra interfaz de usuario.

Hasta ahora, el trabajo en esta área ha progresado bastante bien. En la tabla de abajo, se puede ver el número total de complementos y aplicaciones de Ember en el cliente a lo largo del tiempo. En cada versión, hemos reducido la cantidad. Ahora hay alrededor de un 10% menos de aplicaciones de Ember y un 20% menos de complementos que el cliente tiene que cargar durante el arranque, en comparación con cuando empezamos este proceso.

ClientCleanup_Charts_fixed_v2_LATAM.jpg

¡Esas son buenas noticias! Sin embargo, también hallamos algunos contratiempos que queremos compartir con ustedes.


ALGUNOS CONTRATIEMPOS

Durante las primeras versiones del año, vimos mejoras considerables en el tiempo de arranque como resultado de nuestro trabajo con los complementos.

Sin embargo, a partir de la versión 10.3, empezamos a ver que los tiempos de arranque se movían lentamente en la dirección equivocada, con la versión 10.7 representando un punto bajo para los tiempos de arranque en general.

Podrán verlo en el gráfico de abajo. Para ayudarles a comprender este gráfico, tengan en cuenta que un avance positivo es poder ver las curvas acercándose al lado izquierdo del gráfico (tiempos de arranque más rápidos).

chart2.png

Una posible explicación para el reciente contratiempo es el aumento de la tensión que hemos visto en los servidores de LoL en las últimas semanas. Por razones un tanto obvias, muchos de ustedes alrededor del mundo tienen más tiempo en casa. Están jugando mucho LoL, y eso supone un reto para nuestra infraestructura de servidores, lo que resulta en tiempos de respuesta inconsistentes y tiempos de arranque más lentos para el cliente.

A medida que aumentemos la capacidad del servidor para hacer frente a la afluencia, puede resultar que empecemos a ver mejoras reales y positivas en el rendimiento del cliente de nuevo. También abordaremos otras posibles causas, como reducir la cantidad de código Javascript que se carga durante el arranque.

Independientemente de la razón del contratiempo, hay motivos para mantener la esperanza: como dijimos en nuestro primer blog de desarrolladores, en el proceso de abordar el tiempo de arranque y el tiempo de confirmación de la selección de campeones (que es lo siguiente en nuestra lista), estamos limpiando y reelaborando ciertos aspectos fundamentales de la arquitectura del cliente.

Esto significa que estamos corrigiendo errores y revisando más a detalle algunos de los problemas arquitectónicos fundamentales del cliente que les causan problemas.

Uno de esos problemas arquitectónicos que hemos descubierto tiene que ver con una característica del cliente llamada Affinity.


EL PROBLEMA CON AFFINITY

Lanzamos Affinity como una característica cuando hicimos la ''actualización del cliente'' hace unos años. Básicamente, es una herramienta que nos permite especificar qué complementos se deben cargar antes de que el arranque pueda completarse.

Descubrimos dos problemas con Affinity:

  • Affinity no funcionaba. En algún momento durante 2018, Affinity dejó de funcionar sin aviso. Como Affinity no funciona correctamente, el cliente carga por defecto todos los complementos durante el arranque y después de las partidas.
  • Aunque lo arregláramos, Affinity no resolvería nuestros problemas. Creemos que incluso cuando Affinity funcionaba como estaba diseñado, no estaba priorizando la carga de complementos de forma eficiente. Hablando claro, el cliente siempre ha tenido un problema con la carga de demasiados complementos durante el arranque.

En resumen: tenemos que reemplazar completamente a Affinity con una solución mejor y más eficiente.

Estos descubrimientos han sido una sorpresa para nosotros, pero han validado una de las creencias fundamentales que teníamos cuando empezamos a trabajar en el cliente: al tomarnos el tiempo de revisar detalladamente las entrañas del cliente, hemos sido capaces de descubrir algunas de las causas fundamentales de los problemas.


    PRÓXIMOS PASOS

    Ahora que sabemos que Affinity no está haciendo lo que se supone que debe hacer, podemos implementar una nueva solución que priorice los complementos adecuadamente. Al hacerlo, aceleraremos los tiempos de arranque de los jugadores y desbloquearemos otras mejoras del cliente.

    Nada de esto altera fundamentalmente nuestros planes para arreglar el cliente, pero puede retrasarnos un poco. De cualquier manera, vemos este descubrimiento como algo bueno, ya que nos da un camino más claro hacia adelante. Si esto resulta en una experiencia menos problemática y más fiable para todos, entonces nuestro esfuerzo no habrá sido en vano.

    Una vez que hayamos conseguido que los tiempos de arranque del cliente sean satisfactorios, comenzaremos la segunda fase de la campaña de limpieza del cliente: reducir los tiempos de respuesta del cliente en la selección de campeones. El trabajo en la selección de campeones es obviamente la parte más atractiva de esta campaña para muchos de ustedes, y tampoco podemos esperar a llegar a ella.

    Los mantendremos al tanto de nuestro progreso. Tendremos otro blog como este dentro de los próximos meses. Como siempre, gracias por jugar.