Logo Warface

Atualização sobre o Netcode e as novidades que estão por vir

31/03/2017 - Comunicados

novidade

Saudações, Soldado!

 

Chega mais, que está na hora de ficar por dentro de todos os detalhes referentes à atual situação do Netcode e de várias novidades que estão por vir.

Então vamos começar pelo assunto que vem despertando o interesse e curiosidade da maioria: o Netcode. Mas antes de entrarmos em maiores detalhes, vamos iniciar pelo começo: o que é esse tal de Netcode. E pra que você entenda tudo tintim por tintim, te convidamos a uma leitura baseada em uma explicação completa fornecida pela própria Crytek sobre o que é o Netcode e como tudo irá funcionar após a correção do mesmo.

 

O que é o Netcode

Pra quem não sabe, o Netcode, nas palavras da própria Crytek, é um sistema que sincroniza a posição do jogador e sua velocidade, bem como a posição e o estado atual da arma, além do desempenho do disparo e o registro de dano enquanto a contagem do dano é processada. Pode parecer algo complicado a primeira vista, mas tudo fica mais fácil de entender se exemplificarmos.

Como todos nós sabemos, a sincronização do jogador é um dos elementos de maior relevância no Warface.  O tiro, por exemplo, depende totalmente disso. Imagine que você atirou em um jogador. Se a posição desse jogador para o servidor for muito diferente da posição em que ele está ocupando no jogo (em sua máquina), o dano não será registrado.

O servidor utiliza basicamente, duas informações para definir o posicionamento de um jogador: a sua posição antes de se mover e a posição enquanto estiver realizando o movimento. Com estes dados em mãos, entra em cena um algoritmo heurístico que será o grande responsável por posicionar o jogador dentro do servidor, definindo assim, uma posição alvo. Esse algoritmo heurístico é bem robusto e rápido, mas essa agilidade não garante que o jogador estará de fato na mesma posição tanto para o servidor, quanto para o jogo que está sendo executado na máquina do usuário. As diferenças são mínimas, mas em situações extremas (como as que envolvem problemas de conexão à internet ou a complexidade de um ponto do mapa), o jogador pode acabar se movendo em uma determinada direção no jogo em sua máquina, enquanto que no servidor, ele estará indo para outro lado bem diferente. Por exemplo: o servidor pode registrar o jogador em pé na ponta de uma caixa, enquanto que na tela de seu computador, esse mesmo jogador já pulou de cima desta caixa para o chão.

Uma das maiores desvantagens dessa programação é que, em situações de perda de pacote, o sistema tem que "adivinhar" o próximo movimento e, consequentemente, o posicionamento do jogador. Em casos de objetos parados ou com uma velocidade relativamente baixa, isso funciona perfeitamente. Mas no caso de um jogador, por sua vez, que pode mudar sua velocidade ou direção quase que num piscar de olhos, a coisa muda de figura. Some a essa desvantagem o fato de que o sistema não pode precisar com 100% de certeza onde o jogador estará nestas situações, e teremos um possível problema pela frente.

 

Quando os problemas de posicionamento podem acontecer?

A resposta é em casos de Resync ou Snaps. Estes são os dois maiores obstáculos enfrentados por nós quando o assunto é movimentação, e nada mais são do que:

- Resync: Quando você corre ou, com maior frequência, pula em algum lugar e assim que você pisa nesse local, é teleportado para trás;

- Snaps: Quando você observa outro jogador e, de repente, ele é teleportado para algum outro lugar.

 

Ok, problema identificado. Mas e agora?

Antes de tudo, é importante dizer que nós estamos trabalhando arduamente, em conjunto com a Crytek, para diminuir a possibilidade de Snaps e Resyncs, e assim minimizar quaisquer questões relacionadas a erros de posicionamento. Nesse sentido, nossas atenções estão voltadas para um método conhecido como interpolação, que é amplamente conhecido na indústria de FPS. O ponto chave é que o sistema não aplica a informação da posição do jogador no exato momento em que acontece a interação, mas guarda as informações da posição do usuário para si e aguarda por um tempo específico - o chamado "período da interpolação".

O tempo da interpolação é definido de acordo com uma necessidade: a de manter armazenados dois movimentos antes de se decidir para onde mover o jogador. Isso acaba nos garantindo uma espécie de "reserva", pois podemos perder uma informação da posição do jogador que ainda assim teremos uma informação válida para mover o personagem para aquela direção. Deste modo, tem-se acesso a duas informações referentes ao posicionamento do personagem armazenadas em "buffer", e o sistema escolherá entre essas informações e selecionará a informação de posicionamento válida.

Esse tipo de sistema é utilizado por grandes títulos FPS da atualidade, como Overwatch.

A implementação do método de interpolação no WF não só irá melhorar a performance in-game e a experiência geral do jogo, como também abrirá caminhos para melhorias futuras, como a criação do sistema de Espectador em 1ª pessoa, que é algo muito esperado pela comunidade competitiva do jogo.

 

E quando essa mudança chegará?

Gostaríamos de compartilhar com todos que o novo Sistema de Movimentação já está em sua fase final de desenvolvimento, e aproveitamos para lembrar que a sua implementação exige um grande esforço por parte da desenvolvedora. Afinal de contas, não se trata de uma simples reforma do sistema, mas sim de um sistema refeito do início. Por este motivo, esperamos contar com a sua compreensão, Soldado.

Levando isso em consideração, ainda não é possível precisar quando o método de interpolação será de fato implementado, pois a Crytek ainda não nos passou nenhum tipo de previsão. Mas saiba que estamos tão ansiosos quanto você para descobrir essa data, e assim que ela nos for passada, não hesitaremos em divulgá-la!

 

Mas já tem novidade pintando na área!

Nós, da Level Up, estamos preparando várias mudanças para o Warface durante o ano de 2017, mudanças essas que não se limitarão apenas ao novo Sistema de Movimentação que chegará para corrigir o Netcode. Todas essas mudanças serão feitas com base em pedidos da própria comunidade, e o anúncio dessas novidades será realizado no dia 06/04/2017. Aguardem, que vem coisa boa por aí!

 

 

Equipe Level Up

Ranking