Qual é a maneira eficiente de construir um servidor para um jogo multiplayer online?
Depende realmente do jogo!
Se é um jogo básico onde você quer enviar as jogadas para outro jogador, por exemplo, xadrez, você pode fazer o devido com ajax básico e uma base de dados. O mesmo com os jogos de cartas típicos e assim por diante.
Se é algo como slither.io que requer interações mais ou menos em tempo real com outros jogadores, você vai precisar de websockets e talvez um sistema de mensagens.
Apenas lembre-se que o que importa é a percepção do jogo por parte dos jogadores. Se eu jogar slither.io, não importa onde os outros jogadores realmente estão. Os eventos enviados por eles, quanto aos seus movimentos, são enviados para mim e interpretados pela minha instância local do jogo. Portanto, é a minha visão do mundo que conta. Se eu encontrar um dos outros jogadores e perecer, não é o outro jogador que encontro, mas a representação dos seus movimentos.
Isso significa que você pode escapar com muitas interpretações do estado do jogo, desde que não seja injusto no jogo e o jogador final esteja se divertindo.
Tecnologias que poderiam ser úteis seriam algo como
- ##li>Node.js - event driven serverside JavaScript, conhecido por sua grande performance para todos os tipos de API's#li>Redis - In-memory database for keeping state of running games.
Artigos semelhantes
- Qual é a maneira mais eficiente em termos de custos para construir uma casa inteligente?
- Qual é a maneira mais eficiente de construir força muscular?
- Que tipo de servidor e banco de dados você deve usar para um jogo online multiplayer, baseado em navegador com chat?
- Porque é que uma VPN é considerada melhor e mais eficiente do que um servidor proxy?