Multiplayer tutorial 1: Conceitos

  • 0 favourites

Index

Tagged

Contributors

Stats

15,092 visits, 16,757 views

Tools

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

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