Como funcionam os jogos online multiplayer? As coordenadas de cada objecto no jogo são constantemente transmitidas através da rede?
Depende do jogo. Mas raramente qualquer jogo estará transmitindo "todos os objetos do jogo" através de servidores. Isso's porque muitos objetos não'nem mesmo se movem, como uma árvore ou uma casa, e essas coisas ficam do lado do cliente no computador da pessoa's. No entanto, talvez no Battlefield, onde os edifícios são destruídos, o servidor tem de enviar essa informação através do servidor, quando o edifício é quebrado.
Em counter-strike, a maioria das ações feitas pelos jogadores precisam ser transmitidas para os servidores e transmitidas para todos os outros, como posição, direção que você'refacear, e atirar. Mas eles não'não precisam enviar as coordenadas de cada objeto no jogo. Eles definitivamente don't enviam detalhes cosméticos, como sangue. Então é por isso que no contra-ataque, você pode atirar em alguém e ver sangue do seu lado, mas depois o servidor lhe diz que você não fez nenhum dano. Isto é porque:
1. Eles atiram em você e vêem em seu computador que eles atiraram em você e sangue pulverizado
2. 0.01 segundos depois, você atira neles e vê em seu computador que atirou neles e sangue pulverizado
3. O servidor recebe os dois eventos e determina que #1 aconteceu antes de #2
4. O servidor diz a você e ao seu oponente que você morreu antes mesmo de atirar em sua arma.
Em um RPG talvez a direção que seu personagem está enfrentando não seja tão importante, então talvez o servidor o ignore e só atualize a posição. Exemplos são certos MMO's e Diablo 2 (talvez Diablo 3 I'não tenho certeza), no qual você pode girar seu personagem em círculos, mas seus amigos apenas vêem você parado.
A maior parte do tempo o servidor terá uma "refresh rate" que é a frequência com que actualiza a informação do jogador. Quanto mais rápido melhor, especialmente em um jogo como Starcraft ou Counter-strike onde cada momento importa. Por exemplo no CS existem servidores de 64-tick e 128-tick. tick significa, número de vezes por segundo que a informação é actualizada.
A possibilidade de "desync" é provavelmente aumentada por: demasiada informação processada no cliente antes de confirmar com o servidor, taxa de tick muito baixa, e/ou latência muito alta. Por exemplo, se o seu cliente mostra 10 passos para a direita antes de esperar que o servidor confirme que você realmente o fez, então na sua tela você pensou que você moveu 10 passos para a direita. Então recebe uma atualização do servidor dizendo que você realmente morreu 5 segundos atrás. E boom a tela salta e você vai como "wtf". Costumava acontecer muito no Diablo 2. No counter-strike você sabe imediatamente quando você está desconectado porque você não é mais capaz de se mover; seu computador está constantemente recebendo atualizações sobre onde o servidor diz que você está.
Artigos semelhantes
- Qual é a maior estatística que um Pokemon pode ser (qualquer estatística, cada gênero, cada item, cada transformação, cada habilidade)?
- Como as fotos podem ser transmitidas por ondas de rádio?
- Como funcionam os jogos multiplayer online?
- Quais são os melhores jogos multiplayer grátis para PC, em que se pode comunicar com outros jogadores online através de um microfone?