Como funcionam os algoritmos de detecção de impacto em videogames?

HI hiker_peter US 📗 Estudante 👁 98 ⚑ Denunciar Matemática

Ando a jogar muitos jogos de tiro competitivos ultimamente e juro que às vezes meus tiros não registram mesmo parecendo que acertei em cheio. Tenho curiosidade sobre a matemática e geometria reais que os jogos usam para determinar se uma bala ou ataque corpo a corpo conecta com um inimigo. A latência afeta isso mais do que eu penso?

2 respostas

★ Melhor resposta

Eu com certeza já tive esses momentos em que um tiro parece perfeito na minha tela, mas não acerta, e sim, é quase sempre uma questão de latência. A maioria dos jogos usa o que chamam de hitscan ou detecção baseada em projéteis - hitscan verifica instantaneamente se um raio da sua arma intersecta com a hitbox do inimigo (geralmente uma forma simplificada como um cilindro ou cápsula), enquanto projéteis são objetos reais que viajam e checam colisões a cada frame. O problema é que seu cliente mostra uma posição do inimigo um pouco diferente da que o servidor vê, já que seu input leva tempo para chegar ao servidor e o estado do servidor leva tempo para voltar a você, então o que parecia um headshot na sua tela pode ter sido um erro no servidor autoritativo. Alguns jogos tentam compensar com predição do lado do cliente ou aim assist, mas sempre há esse atraso inerente - é por isso que shooters competitivos muitas vezes se sentem diferentes em servidores de ping baixo versus ping alto.

A frustração é real - eu já passei por isso vendo um headshot passar direto pela cabeça de alguém. A latência importa muito mais do que a maioria das pessoas percebe, mas não é só sobre seu ping; o servidor precisa reconciliar o que você viu na sua tela com onde o inimigo realmente estava alguns frames atrás, e esse atraso cria uma lacuna. A maioria dos shooters usa ou hitscan (raycast instantâneo da sua arma) ou física de projéteis, mas ambos são distorcidos pela netcode - o servidor pode ter já movido seu alvo no momento em que seu cliente envia os dados do disparo. O que a resposta anterior meio que deixou passar é que mesmo com hitscan, alguns jogos deliberadamente adicionam previsão do lado do cliente ou compensação de lag que podem fazer os acertos parecerem inconsistentes se você estiver espiando por trás de cantos ou se o algoritmo de reconciliação do servidor discordar do seu cliente sobre o posicionamento. Nem sempre é uma questão de latência pura comendo seus disparos; às vezes é a forma do jogo de decidir cuja versão da realidade "vence" em uma situação de fração de segundo.

Sua resposta

Entrarpara responder.