LIMPIEZA DEL CLIENTE: Selección de campeón y final de la partida
Este año, nos comprometimos a compartir actualizaciones bimensuales sobre nuestro trabajo en curso de cara a mejorar el rendimiento y la fiabilidad del cliente de League of Legends.
La actualización de hoy es la quinta de la serie (echad un vistazo a la primera, la segunda, la tercera y la cuarta).
Resumen: ahora que hemos terminado de mejorar los tiempos de inicio del cliente y nuestra arquitectura, por fin vamos a empezar con la selección de campeón. También hemos decidido centrarnos en el final de la partida.
Comenzamos con la selección de campeón
En marzo, cuando empezamos con esta serie de publicaciones, mencionamos nuestros dos objetivos principales: mejorar el tiempo de arranque del cliente y la capacidad de respuesta de la selección de campeón, en ese orden. En septiembre, por fin conseguimos reducir el tiempo de arranque (el tiempo que tarda en iniciarse el cliente) hasta 15,5 segundos para el 90 % de los jugadores y anunciamos que íbamos a comenzar a trabajar en la selección de campeón.
Aquí tenéis las novedades.
Memoria necesaria para la selección de campeón
Esperábamos que la selección de campeón necesitase una cantidad similar de reparaciones al resto del cliente: aplicaciones de Ember que consolidar, código que optimizar, errores que corregir y todo eso. Mientras estudiábamos la situación, descubrimos un problema inesperado: la memoria necesaria para la selección de campeón (y del cliente) aumenta cada vez que se pasa por una selección en una misma sesión de juego.
En el nonagésimo percentil, esto funciona de la siguiente forma:
- La primera vez que entráis en la selección de campeón, el consumo de memoria del cliente es de 481 MB.
- La segunda vez requiere 56 MB más.
- A partir de la tercera vez, da pequeños saltos de entre 15 y 25 MB.
![graphcomms.jpg](https://cmsassets.rgpub.io/sanity/images/dsfx7636/news_live/bcc8ec8de7c189f48df3e74d7088fd26058b45ae-1542x624.jpg)
Básicamente, cuantas más partidas juguéis en una sesión de juego, más lento funcionará el cliente hasta que sea imprescindible reiniciarlo.
Sin duda, la existencia de fugas de memoria en el cliente no es ninguna novedad y dedujimos que parte de dichas fugas se producía en la selección de campeón. Sin embargo, el tamaño y el alcance de las fugas que hemos descubierto hacen que sea necesario que modifiquemos nuestro enfoque. Además del trabajo que habíamos planeado inicialmente, estamos implementando herramientas de desarrollo más especializadas para poder identificar y hacer frente a las fugas de memoria de todo el cliente más eficazmente, lo que reducirá el tiempo necesario para implementar mejoras.
Sí, lo estamos haciendo al mismo tiempo y, aunque no hemos progresado mucho, planeamos lanzar los primeros ajustes del rendimiento de la selección de campeón en la versión 10.23. Hemos mejorado la selección de hechizos de invocador y aspectos de guardián para que, al abrirlos, no creen aplicaciones de Ember adicionales. Esto ha tenido como resultado una reducción de la memoria utilizada pequeña, pero medible (alrededor de 1,6 MB), al escoger hechizos de invocador y aspectos de guardián durante la selección de campeón. Estas son dos de las primeras fugas de memoria que descubrimos, ¡y corregirlas ha sido una gran forma de practicar para encargarnos de los casos más extremos en un futuro cercano! Esperamos lanzar mejoras más significativas antes de que acabe el año.
Análisis de la experiencia de usuario (UX) y la interfaz de usuario (IU)
Además de arreglar lo que no funciona, otra parte de nuestro trabajo para mejorar la selección de campeón consiste en identificar qué partes de la experiencia gustan a los jugadores y cuáles podemos pasar a un segundo plano o eliminar porque no les parecen importantes. La experiencia de la selección de campeón es fundamental en el bucle básico del juego y, cuanto menos compleja sea, menos posibilidades habrá de que algo vaya mal. Hemos aprovechado los datos de las encuestas que han completado los jugadores para determinar qué es importante en lo relativo a la UX y la IU de la selección de campeón, y estamos añadiendo métricas del cliente para reforzar dichas encuestas con los datos de actividad de los usuarios.
Aquí tenéis algunos de nuestros resultados iniciales, y lo que hemos hecho o planeamos hacer al respecto:
- Los jugadores quieren una mayor claridad y rapidez de respuesta ante sus clics, especialmente cuando se trata de escoger o bloquear campeones. Mejoraremos la velocidad y fiabilidad de la respuesta visual y auditiva de la interfaz para conseguir dicha claridad.
- A los jugadores no les parecen importantes las animaciones de la selección de los hechizos de invocador y aspectos de guardián. Por ello, vamos a eliminarlas (además de corregir el problema de la fuga de memoria del que hemos hablado arriba).
- Vamos a añadir un sistema de telemetría para ver con qué frecuencia utilizan los jugadores determinadas funciones secundarias de la selección de campeón mientras se preparan para la partida. Si, simplemente, no está mal tener una función en cuestión, puede que la eliminemos para maximizar las mejoras de rendimiento.
- Panel de emoticonos
- Campeones favoritos
- Misiones
Entrar en selección de campeón
Uno de los mayores focos de frustración que nos han comentado los jugadores tiene que ver con que entrar en la selección de campeón puede acarrear un montón de problemas. La fiabilidad de la selección de campeón es indispensable para que los jugadores puedan centrarse en la partida que tienen por delante. Es fundamental que resolvamos cualquier problema que pueda interferir con vuestra capacidad para bloquear campeones o fijar vuestra selección. Tampoco queremos que os tengáis que preocupar por si los aspectos, hechizos de invocador o runas que habéis utilizado cientos de veces han cambiado sin que lo sepáis.
Ahora que empezamos con el trabajo en este campo, los objetivos principales de nuestro enfoque consisten en hacer que los jugadores lleguen a la selección de campeón con el tiempo necesario para tomar decisiones críticas, asegurarnos de que el bloqueo y la selección de campeones son fiables, y hacer que todos los jugadores entren en partida sin problemas.
Final de la partida
Aunque no es una de las áreas en las que pensábamos centrarnos inicialmente cuando empezamos con la campaña de limpieza del cliente, el final de la partida (todo lo que ocurre desde que pulsáis "Continuar" en la pantalla de victoria o derrota hasta que podéis interactuar con la sala de después de la partida) ha resultado ser un foco de frustración equiparable a los tiempos de arranque o la fiabilidad y capacidad de respuesta de la selección de campeón. Nos vamos a centrar en la frustración relativa a dos áreas principales:
- Los jugadores nos han avisado de problemas que causan que el cliente se quede colgado con un botón de "Reconectar" durante un tiempo después de que termine la partida, en lugar de pasar de inmediato a la pantalla de honor. Seguimos investigando qué causa este problema.
- A veces, el cliente se bloquea cuando los jugadores vuelven a él después de la pantalla de victoria o derrota, lo que les impide ver o interactuar con la pantalla de honor y la sala de después de la partida. Tenemos preparadas algunas correcciones prometedoras que deberían estar disponibles en la versión 10.23.
El error de los ajustes y de las ventanas emergentes
En mitad de todo nuestro trabajo con la selección de campeón y el final de la partida, nos hemos encargado recientemente de errores en los ajustes que han aparecido durante las últimas versiones. Estos errores consisten en cosas como que la selección de campeón no recuerde vuestros hechizos de invocador o que antiguas ventanas emergentes aparezcan una y otra vez (y otra, y otra, y otra). Ha sido toda una odisea localizar estos problemas. Había diversos equipos actualizando independientemente los sistemas secundarios al mismo tiempo, lo que creó unos cuantos casos aislados que se han combinado para crear la tormenta perfecta: multitud de jugadores experimentando al menos un error en sus ajustes. Desde nuestra última publicación, hemos introducido tres correcciones independientes que deberían ayudar a reducir la mayoría de estos problemas. La más reciente llegó en la versión 10.21.
A medida que continuemos mejorando significativamente la selección de campeón y el final de la partida, seguiremos colaborando con nuestros equipos internos para hacer frente a los focos de frustración que vayan apareciendo.
¡Eso es todo por ahora! Tenemos un montón de trabajo que hacer de aquí a fin de año, ¡y queremos agradeceros vuestra paciencia mientras hacemos todo lo que está en nuestras manos para mejorar el cliente para nuestros jugadores en cada versión!