Gostaria de criar um servidor de jogo multiplayer simples para um jogo simples:
O jogo deve ser semelhante ao Command & Conquer, você tem alguns tanques e alguns soldados. Você pode selecionar um soldado e clicar no mapa, para onde o soldado deve ir. Se o soldado chega a uma área onde não podia ir, ele anda por aí. E soldados podem ser abatidos por inimigos.
Como devo estruturar o servidor do jogo e o que deve ser feito no cliente?
Ou seja, se um soldado se move de X para Y, mas ao redor do prédio Z, acho que o servidor deve ser capaz de calcular exatamente onde o soldado está localizado (no caso de um inimigo atirar nele), e o cliente também precisa saber a posição para pintando o soldado.
O que deve ser feito no servidor e acho que tenho que criar um protocolo para isso. Eu acho que o servidor precisa acompanhar o estado do jogo e a hora. Alguém está tendo sugestões sobre como fazer isso? ou poderia recomendar alguma leitura?
fonte
Existem basicamente duas abordagens:
O cliente confiável é um pouco mais complexo, mas tem a vantagem de você poder descarregar grande parte de sua computação do servidor. O custo da operação do servidor é um dos maiores problemas para jogos com vários jogadores e reduzirá seriamente sua escalabilidade.
Uma boa abordagem (para iniciantes) é permitir que cada cliente de jogador lide com suas próprias unidades. Na próxima etapa, você pode usar ciclos de reposição para permitir que os clientes dos jogadores verifiquem as ações de outros clientes. O servidor não precisa fazer mais do que trocar mensagens, mantendo a sincronização e garantindo a persistência (por exemplo, banco de dados).
Se você planeja ter algum tipo de lobby ou bate-papo, lide com cada um desses tópicos em um servidor extra. Isso tornará as coisas muito mais fáceis no futuro.
fonte