Casa > C > Como É Configurado Um Servidor Para Um Jogo Multiplayer?

Como é configurado um servidor para um jogo multiplayer?

Criei recentemente um jogo multiplayer snake, e é muito difícil que eu tenha antecipado.

>p>Parece que o seu jogo não é baseado em turnos, pois você perguntou sobre>p>como é que um jogador é notificado que outro jogador fez uma jogada em tempo real?

Neste caso, você precisa resolver um problema difícil no jogo multiplayer, que é a latência, a latência causa 2 tipos de problema.

a) Como propagar mudanças de estado do Jogador A para o Jogador B

b) Como reconhecer o comando do Jogador A e renderizar sua UI o mais rápido possível

Para o problema a), ele pode ser simplificado como segue

  1. Player A move, e enviar o comando move para o servidor em T0.>li>Server recebeu o comando move em T100.>li>li>Server enviou o comando move para Player B.>li>Player B recebeu o comando move em T200.

Note: T significa tempo, vamos assumir que a unidade está em milisegundos, o que é razoável.

Isso significa que o PlayerB só sabe que o PlayerA moveu 200 milisegundos depois, isso é um problema quando há interação entre jogadores (que é o principal ponto de venda do jogo multiplayer), porque isso significa que jogadores diferentes têm uma visão um pouco diferente do jogo, o que pode causar algum resultado inconsistente, por exemplo Do ponto de vista do jogador A, ela matou o jogador B, mas do ponto de vista do jogador B, ele não é morto, como resolver isso depende do desenvolvedor do jogo.

Valve tem um artigo sobre esta compensação de Lag

Problema b) é mais grave pois afecta directamente a experiência de jogo, se o Jogador A premir um botão de mover, quer mostrar que ele se moveu imediatamente, e não 100 ms depois.

Isso normalmente é resolvido usando a previsão do cliente, significando que seu cliente precisa prever o que está acontecendo no servidor antes que o servidor reconheça o pedido do jogador.

Há algum artigo na internet,

Acho a série por gabriel muito útil

Multijogador de ritmo rápido (Parte I): Introduction

Shameless plug: I also wrote one as I find there is some missing details which might help beginners

How does Multiplayer Game sync their state? Part-1

De Boswall

Como construir um jogo multiplayer em tempo real para celular :: Porque é que os EUA estão a proibir os 5G da Huawei? Será que os EUA querem jogar sujo na competição global para a implantação do 5G?