← Diário de Desenvolvimento
Testes Públicos

Dev Log #10: Movimentação mais suave, melhor desempenho e novas ferramentas de desenvolvimento

Este artigo descreve trabalho em andamento, não mudanças já lançadas no cliente público.

Duas semanas e meia de desenvolvimento


Este é um dos nossos maiores registros de desenvolvimento até agora, cobrindo o trabalho realizado entre 1º e 17 de agosto. Grande parte desse período foi dedicada a uma parte fundamental da experiência: como seu personagem e todos ao seu redor se movimentam.


Também fizemos melhorias extensas no combate, talentos, interfaces, desempenho, launcher e diversos sistemas utilizados diariamente. Nos bastidores, começamos a desenvolver uma nova geração de ferramentas internas que nos ajudará a criar conteúdo e resolver problemas com mais eficiência no futuro.


Reformulação completa da movimentação dos outros jogadores


O maior esforço deste período foi uma investigação completa sobre como os outros jogadores se movimentam na sua tela.


Instrumentamos dois clientes simultaneamente e registramos os dados exatos de posição e tempo enviados, recebidos e exibidos por ambos. Isso nos permitiu investigar vários problemas relacionados, incluindo jogadores deslizando ou mudando de posição repentinamente após esquivas, saltos terminando antes do destino e corrigindo a posição no último instante, habilidades de movimentação sendo executadas no lugar antes de teleportar o personagem e personagens desviando da trajetória ao caminhar para trás.


Esses problemas eram causados por várias falhas diferentes que atuavam em conjunto. Em vez de corrigir cada sintoma separadamente, reformulamos a maneira como o cliente reconstrói a movimentação dos outros jogadores a partir dos dados recebidos pela rede.


As esquivas agora terminam muito mais próximas do destino correto. Os saltos de outros jogadores começam na posição adequada, mantêm sua velocidade durante todo o movimento e fazem a transição correta para a animação de aterrissagem. Os personagens não continuam mais deslizando enquanto permanecem presos na pose de aterrissagem, e a movimentação para trás não causa mais desvios visíveis.


Habilidades que movimentam o personagem, como Scamper, agora são exibidas corretamente para os jogadores próximos, em vez de parecerem ser executadas no mesmo lugar antes de mover repentinamente o personagem para a posição final.


Tempo de combate e efeitos de status


A investigação da movimentação também revelou vários problemas envolvendo o tempo do combate e os efeitos de status.


Knockdown, arremessos para o alto e outros efeitos de controle de grupo estavam terminando aproximadamente 10% antes do esperado no servidor. Isso criava uma pequena janela em que os jogadores podiam agir antes que o efeito realmente devesse terminar. Agora, essas durações são aplicadas de forma consistente.


As reações ao receber um golpe agora aplicam corretamente o bloqueio de ações e não podem mais ser canceladas antes do tempo. Também corrigimos situações em que habilidades podiam ocasionalmente ser utilizadas durante efeitos de status que deveriam impedi-las.


Outro problema fazia com que a próxima habilidade utilizada por um jogador remoto passasse para uma camada de animação mais fraca depois de determinadas habilidades de movimentação. Isso foi corrigido.


Os tempos de recarga dos talentos agora permanecem sincronizados quando uma habilidade é recusada ou cancelada. Anteriormente, o tempo exibido podia ficar incorreto e ocasionalmente fazer uma habilidade falhar exatamente quando a interface indicava que ela estava pronta.


Defesa, esquiva e combos


A defesa recebeu várias correções importantes. Quando o servidor recusa uma defesa porque o personagem não possui stamina suficiente ou não pode agir, o cliente agora é informado imediatamente. Antes, o personagem podia continuar visualmente preso na posição de defesa mesmo depois de o servidor já ter cancelado a ação. Essa era a causa da impressão de que a defesa parava de funcionar após receber vários ataques de um chefe.


Levantar e abaixar a defesa enquanto caminha agora produz uma transição suave em vez de alternar bruscamente entre as animações. A barra de stamina também passa a refletir o custo da defesa assim que ela é levantada.


As esquivas agora terminam junto com o fim de sua animação, removendo o atraso adicional que podia impedir o personagem de agir mesmo depois de já estar de pé. A esquiva também não pode mais cancelar incorretamente uma reação ao receber dano.


No PvP, a janela para conectar uma habilidade à seguinte era menor do que deveria. Ela foi aumentada para 2 segundos para restaurar o fluxo de combate esperado.


Os comandos de habilidade feitos durante uma sequência de ataques básicos agora são colocados na fila com mais consistência, em vez de serem silenciosamente ignorados. Isso era especialmente perceptível ao conectar habilidades depois de ataques super ou upper.


Todos os tipos de arma agora podem continuar um ataque corretamente depois de uma esquiva. Anteriormente, isso funcionava como esperado apenas com espadas, maças e arcos. Lanças, espadas de duas mãos, machados de duas mãos, staffs e armas duplas podiam impedir o personagem de agir até que a esquiva terminasse completamente.


Usar uma poção, consumir comida ou aplicar uma bandagem não será mais interrompido inesperadamente por uma mudança de postura sem relação com a ação.


Também corrigimos problemas visuais nos equipamentos que podiam esconder o escudo de outro jogador durante o combate ou exibir uma arma na mão do personagem e nas costas ao mesmo tempo.


Talentos, tempos de recarga e buffs


Encontramos e corrigimos uma falha que estava silenciosamente reduzindo a zero o dano de 47 buffs diferentes desde meados de maio.


Isso incluía a explosão final da sequência de acúmulos de todas as gemas elementais, normalmente reconhecida pelos jogadores como os diamantes elementais. Se você viu os acúmulos sendo formados corretamente, mas o golpe final não causava dano, essa era a razão. O efeito final agora causa o dano corretamente.


Uma passiva do Sorcerer criada para reduzir os tempos de recarga de Flame Pillar e Flame Tornado estava sendo aplicada de forma invertida, aumentando os tempos em vez de reduzi-los. O efeito agora funciona corretamente.


Também corrigimos os tempos de recarga exibidos, que mostravam consistentemente um segundo a mais do que a duração real.


O requisito Style Mastery para habilidades de outros estilos era exibido incorretamente em vermelho para todos os personagens, incluindo aqueles que já haviam cumprido a exigência. Agora, seu estado é exibido corretamente.


Itens de gestos adquiridos, incluindo a dança de casal e a reverência de Ano-Novo, agora só aparecem como opções para a barra de ações quando o personagem realmente os possui. Antes, gestos indisponíveis podiam aparecer como itens que poderiam ser arrastados, sendo recusados depois com uma mensagem confusa.


Outra correção impede que o segundo efeito de determinados tipos de buff seja descartado silenciosamente.


Elemental Solvent


Os jogadores que desejam remover o encantamento elemental de uma arma sem substituí-lo por outro elemento agora podem utilizar o Elemental Solvent.


A pedra remove o encantamento elemental atual e devolve a arma ao estado sem encantamento. Não há chance de falha nem custo adicional em gold além da própria pedra.


Melhorias na barra de ações e na interface


Corrigimos dois problemas que afetavam a barra de ações. Colocar uma habilidade ou item na segunda ou terceira página da barra podia enviá-lo incorretamente para a primeira página, e aumentar o nível de uma habilidade podia deixar a versão anterior na barra em vez de substituí-la pela nova.


Mensagens do chat contendo apóstrofos não são mais descartadas silenciosamente.


A tela de carregamento agora exibe o nome da zona de destino.


O Find a Party foi restaurado. A janela não exibia nenhum grupo disponível e todo o fluxo de procura estava sem funcionar. A listagem de grupos, as solicitações de entrada, a aceitação de jogadores e a saída do grupo agora estão conectadas do início ao fim.


As notificações de entrada de amigos agora exibem uma mensagem completa em vez de mostrar apenas o nome do personagem.


Digitar em qualquer campo de texto não movimenta mais seu personagem. Essa correção se aplica ao chat, às pesquisas no Trade Market, às mensagens, aos avisos de guilda e aos demais campos de texto do jogo.


Mira de habilidades direcionadas ao chão


Habilidades direcionadas ao chão, como Meteor e a cura direcionada do Cleric, agora podem ser posicionadas corretamente em todas as direções.


Anteriormente, o indicador de alvo podia ficar inacessível próximo aos cantos da tela, e a movimentação da mira ficava progressivamente mais pesada conforme o cursor se afastava. Iniciar a habilidade também podia forçar a câmera para um ângulo fixo.


Essas limitações foram removidas. Agora, o indicador se movimenta de forma consistente por toda a área disponível, e a câmera permanece no ângulo escolhido pelo jogador.


Arena e eventos programados


Os contadores das filas da Arena eram exibidos uma linha abaixo dos botões que representavam, fazendo com que cada botão mostrasse a quantidade de jogadores da atividade errada. Agora, os contadores estão alinhados com as atividades corretas.


Também corrigimos um problema que fazia o evento programado de Capture the Flag recusar todas as tentativas de inscrição sem apresentar nenhuma resposta.


Pré-visualização e preços da Cash Shop


O botão de pré-visualização da Cash Shop agora funciona em todos os 588 produtos disponíveis atualmente.


Os jogadores podem visualizar armaduras, armas, pacotes e o conteúdo de lucky boxes. Quando uma caixa pode conter vários trajes, a pré-visualização permite alternar entre todas as aparências possíveis.


Os descontos dos pacotes agora aparecem no preço exibido. O valor correto com desconto já era cobrado no momento da compra, mas a página do produto continuava mostrando o preço original.


Bank e Trade Market


As abas premium 2 e 3 do Bank agora podem ser desbloqueadas corretamente.


Equipamentos encantados armazenados no Bank agora exibem seus atributos reais em vez de mostrar apenas os atributos básicos do item.


A opção Reset Interface, que anteriormente não produzia nenhum efeito, voltou a funcionar.


As pesquisas no Trade Market não exibem mais itens que nunca deveriam ser listados. Também adicionamos uma validação no servidor para impedir que clientes modificados coloquem itens não negociáveis no mercado.


Desempenho durante a transição entre zonas


Viajar entre zonas podia causar travamentos de mais de 400 milissegundos enquanto os NPCs próximos saíam do alcance e eram completamente destruídos pelo cliente.


Agora, os NPCs que saem do alcance são colocados em um estado reutilizável. Caso o jogador retorne, eles podem ser restaurados imediatamente em vez de serem reconstruídos desde o início. Isso reduziu o travamento durante a transição para uma fração de sua duração anterior.


Melhor desempenho em batalhas movimentadas


Os efeitos de partículas e as atualizações de animações agora podem ser processados em vários núcleos da CPU em vez de serem executados sequencialmente. Isso proporciona uma melhoria perceptível na taxa de quadros durante batalhas movimentadas e cenas com muitos efeitos ativos.


Também corrigimos um vazamento de memória que fazia o desempenho piorar durante batalhas prolongadas envolvendo muitos NPCs. Em casos graves, o jogo podia cair para aproximadamente um quadro por segundo depois de cerca de 30 minutos de combate.


Outro vazamento de memória afetava clientes deixados próximos a NPCs por longos períodos. Os dados de animação facial continuavam se acumulando sem serem liberados, podendo reduzir o desempenho de 250 para aproximadamente 30 quadros por segundo durante a noite. Agora, esses dados são liberados corretamente.


Um pico de latência específico do combate foi rastreado até uma verificação do indicador de alvo que competia pelo mesmo recurso utilizado para carregar as texturas. Isso foi corrigido.


A música de fundo também não é mais interrompida pelos efeitos sonoros do combate durante encontros movimentados.


Melhorias visuais


Equipamentos com iluminação própria, incluindo gemas brilhantes e efeitos semelhantes, não piscam nem ficam escuros dependendo do ângulo da câmera.


Os reflexos do ambiente foram aprimorados e agora aparecem mais próximos da renderização do jogo original, em vez de parecerem excessivamente planos ou opacos.


Corrigimos uma cerca de madeira distante cujas bordas iluminadas podiam apresentar cintilação em vez de permanecerem estáveis.


Nos níveis gráficos mais altos, os objetos agora mudam para níveis inferiores de detalhes na distância correta, em vez de fazer essa transição muito perto da câmera.


As árvores e a vegetação receberam melhorias na iluminação, distância e detalhes para aproximar sua aparência do motor gráfico original. Esse trabalho continuará enquanto concluímos a transição para substituir a antiga biblioteca de renderização de árvores.


Melhorias no launcher


Downloads interrompidos agora tentam continuar automaticamente utilizando intervalos progressivamente maiores, em vez de parar imediatamente e depender de uma tentativa manual que poderia falhar novamente.


Instalações grandes agora são baixadas em uma quantidade menor de partes maiores, em vez de centenas de pequenos arquivos. Isso também torna a barra de progresso e a estimativa de tempo restante mais estáveis.


Corrigimos um problema que abria uma segunda janela vazia quando o launcher já estava em execução, além de outro problema que podia solicitar permissão de administrador duas vezes durante a mesma inicialização.


O jogo não exige mais permissões de administrador para iniciar. O botão Play foi atualizado de acordo e agora abre o jogo corretamente sem elevação desnecessária de privilégios.


Também corrigimos uma falha do launcher que podia ocorrer ao executar o jogo através do Wine ou Proton no Linux.


Novas ferramentas de desenvolvimento


Nos bastidores, começamos a desenvolver nossa primeira geração de editores internos dedicados.


Um editor independente de efeitos agora nos permite criar e ajustar efeitos visuais enquanto observamos os resultados imediatamente. Também iniciamos um novo editor de árvores como parte da substituição da antiga biblioteca externa de renderização, além da primeira versão de um editor de colisões para encontrar e corrigir áreas sem colisão nas paredes ou no chão.


Essas ferramentas não são diretamente visíveis para os jogadores, mas representam um investimento importante no futuro do projeto. Elas nos ajudarão a criar novos conteúdos, investigar problemas e aplicar correções com mais eficiência conforme o desenvolvimento avança.


O que vem a seguir


Este Dev Log #10 atualiza o progresso do Client Alpha até seu estado atual. O trabalho realizado durante este período melhora a movimentação, a resposta do combate, a estabilidade, o desempenho e muitos dos sistemas utilizados diariamente pelos jogadores.


Continuaremos compartilhando as atualizações de desenvolvimento em conjuntos como este para que todos possam acompanhar o progresso de RaiderZ Global sem precisar procurar individualmente por cada alteração técnica.