Estou apenas pesquisando um pouco de tecnologia para usar em um jogo para múltiplos jogadores em dispositivos móveis.
No momento, é mais um experimento, portanto, no momento, a única coisa que os Jogadores precisam estar cientes dos outros jogadores.
Se esse fosse um aplicativo típico da Web e não um jogo, haveria solicitações HTTP disparando o tempo todo - mas, como esse é um jogo, o desempenho e a precisão serão um problema.
Como o jogo é direcionado para várias plataformas de telefone, digamos que o cliente seja escrito em JavaScript ou em uma estrutura baseada em JavaScript. A tecnologia do servidor é totalmente aberta.
Cada jogador precisará fazer o equivalente a uma postagem HTTP e obter apenas um protocolo mais rápido. A razão para o multiplayer ser baseado na Web é porque o multiplayer através de Bluetooth ou outra rede local seria muito diverso nas plataformas e poderia causar problemas.
Portanto, a questão se resume a qual é um bom protocolo / tecnologia a ser usado no multiplayer JavaScript? Algum conselho sobre as coisas do lado do servidor ou isso importa? Alguma razão para eu abandonar essa arquitetura de duas camadas e usar a conexão direta de telefone a telefone?
fonte
Tanto a pergunta quanto a resposta aceita foram publicadas em 2011, e os tempos mudaram bastante desde :)
O Websockets é bastante prevalente, mas uma tecnologia ainda melhor é o WebRTC, que permite fluxos UDP não confiáveis. Estes são muito, muito melhores para jogos.
Além da comunicação, existem muitos outros obstáculos a serem superados ao escrever jogos multiplayer, como reconciliação do estado do jogo, previsão do lado do cliente, serialização e muitos outros.
<shameless self promotion>
Sou um dos desenvolvedores originais do lance.gg , um servidor / biblioteca de jogos para vários jogadores baseado no node.js, onde resolvemos muitos dos problemas mencionados (e muitos outros!). Nosso objetivo é facilitar o desenvolvimento de jogos multiplayer para desenvolvedores de jogos JavasScript. Convido você a usá-lo como ponto de partida para fazer seu jogo.
</shameless self promotion>
fonte
Verifique isto:
fonte