Blog dos Desenvolvedores | NXT - Últimas Correções

Mod Kitty está aqui para nos contar sobre como nossos bravos testadores testam o cliente NXT e o que aprendemos com o último fim de semana de beta.

Não se esqueça de que vem aí outro fim de semana de beta fechado, começando na sexta-feira, 18 de março, ao meio-dia UTC (horário do jogo)!


O Blog dos Desenvolvedores desta semana é um pouco diferente, já que ele foi escrito da perspectiva da Equipe de Controle de Qualidade. Já teve curiosidade de saber como avaliamos a qualidade de um jogo tão grande quanto o RuneScape, remodelado em um mecanismo de jogo novinho em folha? Leia tudo sobre o assunto aqui!

Descubra as diferenças

À medida que o mundo do RuneScape foi tomando forma no NXT, percebemos que ele ficou bem diferente do que estávamos acostumados no cliente antigo. As sombras dinâmicas, os novos sistemas de iluminação, a distância de renderização aumentada e todas as outras coisas novas criaram uma experiência de jogo totalmente nova, mas tivemos que nos assegurar de que ela ainda fosse imediatamente reconhecível como o jogo que vocês conhecem e amam.

Passamos muito tempo testando o cliente Java ao lado do novo, e para nos ajudar nessa tarefa, eu desenvolvi um teste automatizado que passa por 30 locais diferentes e faz capturas de tela lado a lado dos dois clientes. Isso foi útil para nos mostrar como o ambiente mudou, e usamos essas imagens para fazer com que a versão nova ficasse parecida com a antiga em termos de atmosfera, cores e iluminação.

Cidade de TzHaar antes Cidade de TzHaar depois

Erros de conteúdo e de mecanismo de jogo

O ambiente e os modelos dos últimos 15 anos foram criados com as restrições do cliente Java em mente. Essas limitações não se aplicam mais ao cliente NXT, mas quando a implementação estava sendo feita, notamos que muitos elementos do mundo ficaram um pouco divergentes. Por exemplo, muitos locais pareciam estar muito mais próximos uns dos outros do que o esperado; locais ou NPCs pareciam flutuar porque alguns edifícios estavam configurados para serem carregados mais tarde; e determinados materiais pareciam estar muito mais brilhantes por causa da iluminação diferente.

Criamos uma solução programática para a iluminação e os efeitos ambientais padrões, mas isso não funciona perfeitamente em todos os ambientes, então demos aos artistas a capacidade de personalizá-los. Vamos chegar lá, mas é um processo bastante demorado, principalmente porque as atualizações semanais acontecem em paralelo. Então sejam pacientes!

Erros relatados no último fim de semana de beta

A primeira coisa que temos que dizer é obrigado pelo enorme volume de feedback que vocês nos deram ao longo do fim de semana de beta. Em segundo lugar, nós lemos tudinho!

Tanto os desenvolvedores do NXT quanto a Equipe de Controle de Qualidade passaram um tempo analisando a enorme quantidade de dados recebidos depois do fim de semana de beta. Isso inclui:

  • 15.000 relatórios de erro no jogo;
  • 50 tópicos no fórum;
  • Registros do servidor com detalhes dos travamentos do cliente;
  • Um monte de feedback no Twitter, Reddit e YouTube.

Passamos por tudo com muito cuidado, não só para identificar novos erros, como também para mapear os erros e problemas que foram relatados com mais frequência.

Descobrimos que:

Alguns jogadores não conseguiram abrir o cliente ou tiveram problemas para instalá-lo.

Aprendemos muito sobre esses problemas com os jogadores que postaram no tópico "Critical Bug Reports", e tentamos resolver todos eles. Quando chegar o próximo fim de semana de beta, esperamos que muito menos pessoas não consigam instalar ou abrir o NXT - e, com sorte, nenhuma!

Travamentos!

Reescrever o mecanismo de jogo em C++ permitiu que nossos desenvolvedores controlassem e otimizassem os recursos do PC de perto, incrementando muito o desempenho. Porém, a reformulação de algo tão complexo do zero torna os travamentos inevitáveis.

Felizmente, nos preparamos para isso e implementamos um relator de travamentos, então na maioria das vezes que o cliente travava, nossos servidores detectavam os erros. Muitos deles foram corrigidos dessa forma.

A partir do feedback recebido de vocês, observamos quatro tipos de travamentos no jogo:

  • Travamentos na transição do Lobby para o jogo – Devidos em sua maioria a problemas de compatibilidade.
  • Travamentos na iniciação do aplicativo – Relacionados em sua maioria com bibliotecas ou atualizações do sistema operacional necessárias ausentes ou permissões erradas.
  • Travamentos após mais ou menos uma hora de jogo – Significa que os jogadores encontraram de fato uma condição que gerou o travamento.
  • Executa pela primeira vez mas trava na segunda devido a um erro ao salvar o arquivo ("Error Saving File") - É provável que exista um processo rs2client.exe residual em execução que esteja evitando que o novo processo acesse os seus recursos. Este problema já deve estar corrigido.

Problemas de compatibilidade

Isso significa que o jogo se comporta de maneiras diferentes, dependendo da combinação entre hardware e sistemas operacionais. Nosso objetivo principal sempre foi fazer com que o jogo alcance o maior número possível de jogadores, e para isso temos que avaliar a qualidade da experiência de jogo do RuneScape no maior número possível de configurações de PC. Esse objetivo foi alcançado em três etapas principais:

  • Usando o nosso laboratório de compatibilidade interno, composto atualmente por mais de 30 máquinas – desktops e laptops -, cada uma com uma combinação diferente de sistema operacional, CPU, GPU, etc.
  • Liberando o NXT para nossos funcionários jogarem em casa, nos permitindo assim acesso a um conjunto ainda maior de computadores.
  • Entrando em contato com empresas de teste e investindo em mais testes de compatibilidade para essas máquinas.

Testar a capacidade do nosso cliente de ser executado conforme pretendido em dezenas de PCs pode ser uma tarefa demorada e repetitiva, mas nós facilitamos o processo criando uma estrutura de testes automatizados com o Python. Em conjunto com um sistema de relatórios de fácil utilização, essa opção permite a configuração e a iniciação de testes sempre que necessário em diversas máquinas em simultâneo, bem como monitorar de perto o desempenho de cada versão do cliente NXT.

Não tem nada de novo nesse processo, já que temos usado testes automatizados para o cliente Java há anos. Tudo que precisávamos fazer era aumentar a escala de ambos os testes e o número de máquinas onde o teste era realizado.

O fim de semana de beta fez com que descobríssemos diversos problemas de compatibilidade com que não tínhamos nos deparado, seja no teste que fizemos com os funcionários da empresa ou nos testes fornecidos pela empresa de teste. Depois de investigarmos esses problemas, encontramos algumas causas comuns. Siga as instruções abaixo para ter a melhor experiência possível com o NXT:

  • Não execute o RuneScape como Administrador: Isso pode fazer com que arquivos essenciais não tenham privilégios de leitura/gravação.
  • Atualize seu sistema operacional: Garantir que o seu sistema operacional esteja em dia com as suas atualizações ajuda a executar o NXT e aumenta a segurança e a estabilidade do seu PC.
  • Atualize os drivers da GPU: Com drivers mais antigos, algumas placas integradas da Intel ou GPUs da Radeon mais antigas podem apresentar problemas gráficos como quadros intermediários brancos ou polígonos brilhantes longos. Ao atualizar os drivers, todos podem contar com um melhor desempenho.

Também identificamos problemas com versões mais antigas do OSX. Continuaremos executando testes mais detalhados para essa versão do sistema operacional.

Problemas de desempenho

O nosso objetivo é fazer com que o RuneScape se pareça - e possa ser jogado - como um jogo moderno. Qualquer jogo 3D lançado nos últimos anos exige um bom desempenho da GPU: essa é a natureza de aplicativos com gráficos 3D, e a principal razão da existência de GPUs.

Eu li no fórum que alguns de vocês estavam preocupados com o sobreaquecimento das suas máquinas. Contanto que tenha cuidado caso decida fazer overclock, não deverá haver nenhum problema – o NXT não exigirá mais do seu PC do que qualquer outro jogo 3D moderno (e, em muitos casos, exigirá muito menos).

Outra discussão comum que vi no fórum foi: "Eu executo o Java em definição alta - por que devo executar o NXT em definição baixa?" Caso tenha lido as edições anteriores do Blog dos Desenvolvedores, você já saberá que a definição alta do NXT não é a mesma coisa que a definição alta do Java. Na verdade, basta uma olhada rápida para notar:

Torre dos Magos - não visível Torre dos Magos - visível

Hmm... Cadê a minha torre?

É importante observar que, se estiver executando o cliente NXT em definição baixa, você ainda terá mais recursos ativados do que com o cliente antigo em definição alta. E o melhor de tudo é que você terá uma melhor taxa de quadros por segundo com menor uso da CPU!

Sombras dinâmicas Sombras dinâmicas

Observe as sombras dinâmicas sob todos os objetos animados.

E essa é a aparência dos gráficos num laptop com Intel(R) HD Graphics 4000, CPU Intel(R) Core(TM) i5-3210M a 2,50 GHz, com baixa definição de gráficos (em descanso perto do Castelo de Lumbridge):

Comparação de QPS entre NXT e Java ao longo do tempo
QPS - NXT QPS - Java

Comparação de uso de CPU entre NXT e Java ao longo do tempo
CPU % - NXT CPU % - Java

Lag

Muitos reclamaram que o cliente é lento, oferece um tempo de resposta insatisfatório e demora para ser carregado. Identificamos casos onde precisamos otimizar a forma como os ativos são carregados, especialmente no caso de CPUs com 4 núcleos ou menos. Esta situação está atualmente sendo corrigida, o que deverá ajudar jogadores que tenham se deparado com o problema.

Em sua maioria, os problemas de carregamento têm afetado a aparência e a jogabilidade de animações e combate, e recebemos diversos relatórios de erros sobre isso: congelamentos após uma animação (como Explosão), animações aparecendo de forma inconstante ou simplesmente não aparecendo.

Corrupção de sprites/ícones exibidos incorretamente

Depois de jogar NXT por algum tempo, muitos jogadores relataram que estavam vendo objetos duplicados na mochila, sombras escuras em torno de objetos no mundo e outros erros gráficos semelhantes. Esses erros foram particularmente difíceis de corrigir, especialmente porque aconteciam apenas depois de algumas horas de jogo contínuo. Fizemos algumas alterações no código para evitar que essas situações ocorressem, mas são necessários mais testes de resistência para garantir que a correção funciona perfeitamente.

Problemas de combate

Os usuários que testaram o NXT durante o fim de semana de beta reclamaram a respeito da falta de confiança que tinham no combate. Isso acontecia sobretudo em batalhas contra chefes, onde os jogadores reclamaram que os avisos de dano nem sempre eram renderizados no topo como normalmente acontece, os chefes por vezes ficavam fora do lugar e alguns recursos de combate não tinham a aparência ou o comportamento esperado.

Nas semanas depois do fim de semana de beta, demos prioridade a solucionar esses problemas, para que você não tenha que se preocupar em arriscar seus objetos e o conteúdo do seu banco ao testar o NXT.

Outros problemas

Temos nos concentrado em melhorar o comportamento do minimapa. O minimapa apresentava problemas ao ser atualizado em áreas que deveriam aparecer durante um teleporte, e por vezes não era atualizado durante uma transição se o cliente estivesse demorando para carregar a nova área.

Outros problemas surgiram da nossa tendência de otimizar e aprimorar a forma como o sistema antigo funciona. Por isso, ainda continuamos selecionando onde trabalhar. Graças à maior distância de renderização, o jogador pode clicar num NPC que esteja a uma cidade de distância, contanto que ele esteja visível na tela.

NPC distante

Isso requer cálculos de pixels e de diferentes níveis de profundidade de tela, além de exigir várias buscas. Fizemos o melhor que podíamos para desenvolver soluções inteligentes para esses problemas, mas alguns casos, como NPCs que mudam de forma quando surgem, ainda precisam ser melhorados.


O legado

Espero que esse artigo consiga representar de maneira fiel o trabalho que desenvolvemos na equipe de QA, e quais são as melhorias que você pode esperar no futuro do novo cliente.

Usamos muitas vezes a palavra "legado" na nossa equipe. Na maioria dos casos, ela refere-se à forma como o conteúdo anterior funciona e como podemos melhorá-lo, mas também significa o legado dos jogadores que estiveram conosco durante todos esses anos, e a necessidade que temos de propiciar a mesma experiência incrível com que eles se acostumaram. Temos plena consciência de que os nossos usuários estão acostumados com uma experiência de jogo de alta qualidade, e estamos concentrando nossos esforços em fornecer tudo isso e muito mais para cumprir essas expectativas.

Mod Kitty
Técnico de QA do RuneScape

Voltar ao início