Limpeza do cliente: nosso trabalho continua

Neste blog, fornecemos mais detalhes sobre nosso progresso na otimização do cliente do LoL.

No início deste ano, nos comprometemos a falar, a cada dois meses, sobre o trabalho que temos feitos nos bastidores para melhorar o desempenho do cliente de League of Legends.

A atualização de hoje é a terceira parte dessa série. Confira o primeiro blog aqui e o segundo aqui.

Resumindo: temos avançado consideravelmente rumo ao nosso objetivo de limpar o código que compõe o cliente. Também temos resolvido diversos bugs que encontramos no caminho, compartilhados mais abaixo. Contudo, apesar do progresso, ainda há muito a ser feito. A Campanha de Limpeza continua!


PROGRESSO RECENTE

Como dissemos em nosso primeiro blog do cliente, acreditamos que a melhor forma de resolver muitos dos problemas de desempenho do cliente é consolidando e reduzindo a quantidade de plugins e aplicativos do Ember.

Para quem não sabe, plugins são ferramentas que nos permitem quebrar o código do cliente em blocos úteis. Os aplicativos do Ember auxiliam na execução da interface de usuário do cliente.

Continuamos avançando rumo ao nosso objetivo. O gráfico abaixo mostra o número total de plugins e aplicativos do Ember ao longo do tempo.

Architecture-Stats-por-BR.jpg

Ao ver o gráfico acima, vocês provavelmente devem ter pensado: "Tá, mas como isso influencia o desempenho do cliente?". A resposta é complicada, mas aqui vai um resumo: menos plugins e aplicativos do Ember significam um código mais eficiente. Ter um código mais simples gera um melhor desempenho do cliente e facilita a manutenção pelos desenvolvedores.

Um dos parâmetros que temos usado para avaliar o impacto do nosso trabalho é o tempo que o cliente leva para inicializar. Abaixo, temos um gráfico que mostra como essa métrica tem sido acompanhada:

Loading-Screen-Render-por-BR.jpg

Vemos que o tempo de inicialização tem se mantido estável nos últimos meses. Consideramos esse fato um sucesso moderado, em razão dos riscos inerentes ao trabalho que temos feito. Entrar em enormes blocos de código e reorganizar plugins sem cuidado pode causar diversos imprevistos, mas, até o momento, nada de ruim aconteceu.

Esperamos ver mais melhorias no tempo de inicialização já nas próximas atualizações, especialmente agora, que desenvolvemos uma nova solução que nos permite especificar de forma inteligente quais plugins são carregados ao inicializar o cliente. Acompanhe o blog do cliente mais recente para conferir uma discussão mais profunda sobre esse tópico, na seção intitulada "O problema da Affinity".

Nosso plano agora é continuar o trabalho de consolidação pelos próximos meses. Acreditamos que os benefícios da redução do número de plugins a longo prazo são bastante significativos, já que, ao limpar o código de modo geral, facilitamos a resolução de bugs, problemas de memória e travamentos.

Já que estamos falando de bugs, vamos dar uma olhadinha no que foi corrigido recentemente?

CORREÇÕES DE BUGS RECENTES

A equipe do cliente tem resolvido uma imensidão de bugs nos últimos meses. A partir da Atualização 10.13, vocês poderão acompanhar as correções de bugs do cliente em uma seção própria nas Notas de Atualização do LoL.

Enquanto isso, aqui vai uma lista, organizada por atualização, de alguns dos bugs do cliente que a equipe resolveu desde o começo do ano:

  • 10.1 - A posição do cliente não é mais redefinida depois de uma partida.
  • 10.1 - O logotipo do LoL próximo ao botão "Jogar" deixa de desaparecer esporadicamente.
  • 10.1 - [MAC] Corrigimos um problema que fazia com que o cliente fechasse ao recuperar a conexão à internet após ter ficado desconectado por mais de um minuto.
  • 10.1 - As alterações nos planos de fundo do perfil agora são exibidas corretamente para os outros jogadores.
  • 10.3 - Abrir links com o botão do meio do mouse deixa de causar erros no cliente.
  • 10.3 - O ícone da Loja agora fica devidamente destacado ao ser selecionado depois de usar um Baú Hextec nos Espólios.
  • 10.3 - A Coleção deixa de definir a organização em ordem alfabética inversa como padrão quando os filtros são trocados.
  • 10.3 - O filtro "Marcos alcançados" na Coleção agora funciona corretamente.
  • 10.4 - Um erro que desconfigurava o painel social e a janela de chat na Seleção de Campeões caso certas ações fossem executadas (remover amizade, ser removido ou bloqueado) foi corrigido.
  • 10.4 - A pesquisa por Campeões voltou a funcionar com grafias alternativas na Coleção.
  • 10.4 - A pesquisa por Campeões na Coleção deixa de diferenciar letras maiúsculas e minúsculas.
  • 10.4 - A organização de Campeões por ordem alfabética na Coleção agora é mais precisa.
  • 10.4 - O cliente deixa de exibir uma tela preta depois que o jogador clica em "Jogar novamente" e entra em uma partida enquanto visualiza suas ofertas personalizadas.
  • 10.5 - Uma barra de rolagem desnecessária no fundo da página de Campeões na Coleção foi removida.
  • 10.7 - O botão "Enviar solicitação de amizade" em saguões personalizados voltou a funcionar normalmente.
  • 10.7 - A tela "Ver programação" deixa de ficar borrada ao exibir futuros torneios na seção do Clash.
  • 10.8 - Sair da aba de Emotes sem salvar as alterações agora exibe a notificação de salvamento.
  • 10.8 - O jogador não é mais levado à pagina de Perfil ao sair da tela de fim de partida.
  • 10.8 - Os ícones de invocador agora são exibidos adequadamente ao fazer login no cliente.
  • 10.9 - O ícone de invocador Tropa Azul Combatente agora pode ser selecionado normalmente.
  • 10.9 - Os jogadores não receberão mais a mensagem de erro ao tentar fazer login enquanto o LoL estiver fechado para manutenção.
  • 10.9 - Corrigimos um erro que impedia a visualização dos nomes dos jogadores na lista de bloqueados.
  • 10.9 - Realizamos diversas correções relacionadas a falhas de memória causadas por uma versão desatualizada do Ember.
  • 10.10 - Corrigimos um bug que fazia com que as páginas de runa parecessem ter sumido ou sido excluídas ao fazer login.
  • 10.10 - As páginas de runa agora fecham automaticamente quando o botão "Jogar" é acionado.
  • 10.10 - Quando reordenadas, as páginas de runa não causam mais erro ou são duplicadas.
  • 10.10 - Corrigimos um erro que não permitia que os jogadores editassem as páginas de runa.
  • 10.11 - As configurações "Habilitar Modo Configuração Leve" e "Fechar cliente durante as partidas" agora são salvas corretamente quando a janela é fechada.
  • 10.11 - Corrigimos um erro que fazia com que o botão de "raridade de skin" na Coleção ficasse translúcido.
  • 10.11 - Corrigimos um erro que, às vezes, não permitia que os jogadores entrassem no modo Espectador.
  • 10.12 - Corrigimos alguns problemas que comprometiam a funcionalidade da página de runas durante a Seleção de Campeões.

PRÓXIMOS PASSOS

Ao trabalharmos no cliente, sempre nos fazemos a mesma pergunta: o cliente do LoL é digno de nossos jogadores?

Claramente, a resposta é não. Ao menos por enquanto.

Temos muitos bugs para corrigir, erros para evitar e problemas de engenharia muito profundos para resolver. O trabalho que começamos no início deste ano continuará até que possamos responder sim.

Sabemos que levará algum tempo até que possamos chegar lá, mas manteremos todos vocês atualizados ao longo de todo o processo! Nas próximas atualizações, queremos continuar consolidando os plugins e aplicativos do Ember, além de eliminar todos os bugs que encontrarmos em nosso caminho. Quando voltarmos para falar sobre nosso progresso, esperamos estar prontos para entrar em uma nova fase da nossa campanha, focada especificamente em melhorar a responsividade na Seleção de Campeões.

Como sempre, valeu por jogarem e, dentro de alguns meses, voltaremos em outro blog do cliente!