En nuestra última publicación se detalla el progreso para mejorar el cliente de League of Legends.
Hace unos meses, nos comprometimos a compartir bimensualmente las novedades sobre los entresijos de nuestro trabajo para mejorar el rendimiento del cliente de League of Legends.
La novedad de hoy es la tercera de la serie. (Echad un vistazo a la primera publicación aquí, y a la segunda aquí).
Resumen: estamos avanzando constantemente en nuestra meta de limpiar el código que hace funcionar el cliente. También estamos eliminando los errores que nos encontramos, pero hablaremos de ello después. A pesar del progreso, todavía nos queda mucho trabajo por delante. La campaña de limpieza continúa.
Como mencionamos en la primera publicación sobre el cliente, creemos que la mejor forma de solucionar algunos de los problemas de rendimiento del cliente es consolidar y reducir el número de plugins y aplicaciones de Ember del cliente.
Para aquellos que no lo sepan, los plugins son herramientas que nos permiten separar el código del cliente en partes útiles, mientras que las aplicaciones de Ember ayudan a que funcione la interfaz de usuario del cliente.
Hemos seguido avanzando hacia este objetivo. En la gráfica de abajo se aprecia el número total de plugins y aplicaciones de Ember a lo largo del tiempo.
Si estáis observando la gráfica de arriba, os estaréis preguntando "vale, pero ¿cómo afecta esto al rendimiento del cliente exactamente?". La respuesta es complicada, pero en niveles superiores, menos plugins y aplicaciones de Ember son sinónimo de un código del cliente más eficiente. Un código menos cargado genera un mejor rendimiento y también facilita el mantenimiento del cliente para los desarrolladores.
Una de las formas en las que hemos medido el impacto de nuestro trabajo es supervisando el tiempo que tarda el cliente en arrancar. Aquí tenéis una gráfica en la que se muestra la evolución de dicha métrica a lo largo del tiempo.
Como podéis observar, los tiempos de arranque han permanecido constantes durante los dos últimos meses. Y lo cierto es que consideramos que eso es un éxito en parte, a la vista de los riesgos de este trabajo. Trabajar con pedazos enormes de código y volver a conectar plugins podría traer consigo problemas inesperados si no vamos con cuidado, aunque hasta el momento parece que no se ha dado el caso.
Esperamos empezar a ver más mejoras en los tiempos de arranque en las próximas versiones, sobre todo ahora que hemos desarrollado una nueva solución que nos permite especificar de una forma más inteligente los plugins que queremos que carguen al arrancar el cliente. (Echad un vistazo a la publicación más reciente sobre el cliente si os interesa un análisis en profundidad de este tema, en la sección "El problema de Affinity").
El plan actual consiste en seguir con el trabajo de consolidación durante al menos los próximos dos meses, puesto que creemos que reducir el número de plugins y aplicaciones de Ember traerá consigo beneficios a largo plazo. Al limpiar el código del entorno en general, hacemos que sea más fácil eliminar errores, prevenir pérdidas de memoria y evitar que se quede colgado.
Hablando del tema, veamos los últimos errores que hemos corregido.
El equipo del cliente ha aprovechado la oportunidad para hacerse cargo de montones de errores durante los últimos meses. A partir de la versión 10.13, podréis ver las correcciones de errores en su propia sección de las notas de la versión de LoL.
Mientras tanto, aquí tenéis una lista por versiones de algunos de los errores del cliente que el equipo ha estado solventando desde principios de año.
¡Y hasta aquí la lista hasta ahora! Si os habéis topado con un error y queréis informarnos, no dudéis en escribirnos a través de este formulario. También podéis enviarnos comentarios haciendo clic en el botón de "error" de la esquina inferior derecha del cliente.
Cuando trabajamos en el cliente, siempre nos hacemos una pregunta fundamental: ¿está el cliente de League of Legends a la altura de nuestros jugadores?
Está claro que la respuesta es no. Al menos, no todavía.
Aún quedan muchos errores que corregir, caídas del juego que evitar y problemas de arquitectura que solventar. La misión que nos hemos propuesto este año continuará hasta que podamos responder a esa pregunta (¿está el cliente de League of Legends a la altura de vosotros, jugadores?) con un rotundo "sí".
Tardaremos en llegar a esa meta y os mantendremos informados durante el proceso. Durante las próximas versiones, seguiremos consolidando los plugins y aplicaciones de Ember, conforme acabamos con los errores con los que nos vayamos encontrando. Cuando anunciemos la siguiente actualización, esperamos estar listos para comenzar con una nueva fase de la campaña, tras lo cual nos centraremos en mejorar la capacidad de respuesta de la selección de campeón.
Como siempre, gracias por jugar. Os traeremos otra publicación sobre el cliente en un par de meses.