Um jogo RTS típico é implementado com o modelo de rede padrão: passo a passo ponto a ponto.
Considere Starcraft 2, já que o Battle.net presumivelmente não sabe nada sobre o estado do jogo, uma vez que há apenas uma comunicação entre os dois jogadores em um modelo ponto a ponto, como o Battle.net sabe quem foi o vencedor no final . Confiar nos dois pares para não tentar trapacear e relatar resultados precisos é ingênuo.
networking
multiplayer
rts
user782220
fonte
fonte
Respostas:
Se bem me lembro, o SC2 na verdade não é ponto a ponto; é cliente-servidor com o Battle.net (embora ainda seja um passo determinístico), então isso não é problema. No mundo real, no entanto, fazer com que todos os colegas concordem com algum estado ou o resultado de alguma operação ("vencedor" é certamente um estado compartilhado neste ponto) é comprovadamente impossível em um tempo limitado. Veja a prova formal do problema dos generais bizantinos e também o problema do consenso de Fischer. Este é um ponto de partida decente (veja as citações e leia as): Consenso (Ciência da Computação)
fonte
Se todos os jogadores concordam, isso é obviamente preciso. Senão, o estado do jogo é inválido e ninguém "venceu". No entanto, observe que você pode usar o SSL para criptografar as comunicações entre a BNet e o cliente do jogo - o que obviamente deve existir; caso contrário, como podem existir recursos como o bate-papo no jogo? Não há razão para acreditar que os clientes não se comuniquem com o Battle.NET durante um jogo.
fonte