Desarrollo
La limpieza del cliente continúa

En nuestra última publicación se detalla el progreso para mejorar el cliente de League of Legends.

DesarrolloAutoresRiot Cactopus, Riot Sparango, Riot Id, Riot A Huevo
  • Copiado al portapapeles

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.

PROGRESO RECIENTE

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.

Architecture-Stats-spa.jpg

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.

Loading-Screen-Render-spa.jpg

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.

CORRECCIÓN DE ERRORES RECIENTE

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.

  • 10.1 - La posición del cliente ya no se reinicia al terminar una partida.
  • 10.1 - Hemos corregido un error que a veces provocaba que el logo de LoL situado al lado del botón de "Jugar" desapareciese.
  • 10.1 - [MAC] Hemos corregido un error que a veces provocaba que el cliente se quedase colgado al recuperar la conexión a internet después de haber estado desconectado durante más de un minuto.
  • 10.1 - Los cambios del fondo del perfil ya se muestran correctamente a otros jugadores.
  • 10.3 - Hacer clic a enlaces con el botón central ya no provoca que el cliente deje de funcionar.
  • 10.3 - El icono de la tienda ya aparece resaltado correctamente después de utilizar un cofre hextech en el botín.
  • 10.3 - Cambiar el orden de la colección ya no vuelve automáticamente al orden alfabético inverso al cambiar los filtros de ordenación.
  • 10.3 - Cambiar el orden de la colección en función de las "Metas alcanzadas" ya funciona como es debido.
  • 10.4 - Hemos corregido un error que provocaba que el panel social y la ventana del chat dejasen de funcionar en la selección de campeón si se ejecutaban ciertas acciones (eliminar a un amigo, que te eliminasen como amigo, que te bloqueasen).
  • 10.4 - Ya se pueden volver a buscar campeones en la colección utilizando formas alternativas de escribir sus nombres.
  • 10.4 - Ya no influyen las mayúsculas al buscar campeones en la colección.
  • 10.4 - Ordenar de forma alfabética a los campeones en la colección ya funciona como es debido.
  • 10.4 - El cliente ya no muestra una pantalla negra después de hacer clic en "Volver a jugar" si el jugador entró en partida mientras echaba un vistazo a las ofertas personalizadas.
  • 10.5 - Hemos eliminado una barra innecesaria de la parte inferior de la página de campeones de la colección.
  • 10.7 - Hemos corregido un error que provocaba que el botón de "Enviar solicitud de amistad" no funcionase en las salas personalizadas.
  • 10.7 - La pantalla de información de "Ver programación" ya no aparece borrosa al ver los próximos torneos desde la sección de Clash.
  • 10.8 - Al abandonar la pestaña de emoticonos sin guardar los cambios, aparecerá un aviso de guardado como estaba previsto.
  • 10.8 - Salir de la pantalla de final de partida ya no lleva al jugador a la página del perfil.
  • 10.8 - Ya aparecen los iconos de invocador al iniciar sesión en el cliente.
  • 10.9 - Hemos corregido un problema que provocaba que no se pudiese seleccionar el icono de invocador súbdito luchador azul.
  • 10.9 - Los jugadores ya no reciben el mensaje de error incorrecto al intentar iniciar sesión mientras LoL está cerrado por labores de mantenimiento.
  • 10.9 - Hemos corregido un error que provocaba que los nombres de los jugadores bloqueados no fuesen visibles en la lista de bloqueados.
  • 10.9 - Hemos corregido varios errores para hacer frente a las pérdidas de memoria causadas por aplicaciones de Ember de versiones antiguas.
  • 10.10 - Hemos corregido un error que causaba que las páginas de runas no apareciesen o se eliminasen al iniciar sesión.
  • 10.10 - Ahora las páginas de runas se cierran automáticamente cuando el botón de "Jugar" está pulsado.
  • 10.10 - Reorganizar las páginas de runas ya no genera páginas de runas duplicadas, ni hace que el cliente se quede colgado.
  • 10.10 - Se ha corregido un error que impedía que los jugadores pudiesen editar las páginas de runas.
  • 10.11 - Las opciones de "Activar modo de bajo rendimiento" y de "Cerrar el cliente durante la partida" ya se guardan tras cerrar la ventana de ajustes.
  • 10.11 - Hemos corregido un error que provocaba que el botón de "rareza de los aspectos" de la colección apareciese parcialmente vacío.
  • 10.11 - Hemos corregido un error que a veces impedía que los jugadores accediesen al modo espectador.
  • 10.12 - Hemos corregido algunos errores que afectaban a la funcionalidad de las páginas de runas durante la selección de campeón.


    ¡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.

    PRÓXIMOS PASOS

    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.



    • Copiado al portapapeles