Multiplayer tutorial 1: Conceitos

3

Index

Tagged

Contributors

Stats

23,817 visits, 37,327 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 14 Aug, 2015. Last updated 25 Feb, 2019

Lag compensação

Considere o seguinte problema: Um jogador está parado e com o objetivo de jogador B, que está concorrendo para a direita. Jogador A passa o mouse exatamente sobre o jogador B e atira. (Suponha que o tiro é instant-hit, como um laser ou projétil velocidade infinita.) A mensagem para o anfitrião indicando que eles estão atirando leva 100ms para chegar lá. Durante esse tempo, o jogador B continua a se mover para a direita. O anfitrião recebe os 100ms mensagem final e testes de colisão em que o jogador A é com o objetivo - mas eles perdem, porque o jogador B mudou O jogador A viam-se dar um golpe direto, mas nunca causou qualquer dano!.

Em geral, o anfitrião vê cada jogador fazer de tudo um pouco tarde por causa de sua latência, e os jogadores acabam faltando alvos em movimento. Este tipo de problema vai enfurecer os jogadores, que, eventualmente, saber que eles realmente precisa apontar para o espaço vazio à frente de onde o jogador está se movendo. Isto não é muito realista ou justo. Compensação Lag é uma técnica para evitar este resultado.

Tempo

Rewinding

O anfitrião sabe até por trás de cada jogador está vendo o jogo , porque é medir a latência de todos. Então, quando o anfitrião recebe a mensagem indicando o jogador A é tiro, ele sabe que eles realmente fizeram que 100ms atrás.

O anfitrião é lembrar os últimos segundos da história de cada objeto. Ele pode, então, olhar para trás e ver onde o jogador B foi 100ms atrás. Então, ele pode testar se o jogador A fez sucesso no jogador B no momento em que originalmente demitido. Esta é a forma como a latência do jogador A é compensada pelo anfitrião, e isso significa que o jogador A prováveis ​​desfere um golpe na hospedar quando eles se vêem marcar um hit em sua própria tela.

[Compensação Lag em um jogo multiplayer] [19]

Isso cria um outro problema, porém. Jogador B está em um atraso também. Se eles têm uma latência de 100ms, em seguida, o anfitrião está se movendo-los sobre 100ms atrás de onde eles se vêem (lembre-se a sua previsão entrada local move-los de imediato). Em cima disso, o anfitrião está se movendo-los ainda mais para trás quando o teste para uma colisão quando incêndios jogador A.

Isso significa que o jogador B vê o jogador A com o objetivo por trás deles, onde eles iriam perder, a demissão, e, em seguida, são atingidos de qualquer maneira! Em casos extremos, o jogador B pode ter de fato chegou a abrigar do jogador A, de modo que eles não podem ser diretamente atingido, e então, de repente, ter prejuízos. Isso é chato para o jogador B, mas normalmente não é tão ruim quanto ter nenhuma compensação - pelo menos os jogadores, na verdade, tem que apontar diretamente para o outro para bater. Uma solução comum é a de não indicar claramente onde os jogadores estão apontando, então jogador B não pode ver facilmente o jogador A parece estar apontando para trás, fazendo com que pareça mais aceitável quando eles são atingidos.

  • 0 Comments

Want to leave a comment? Login or Register an account!