Rede em jogos de estratégia em tempo real

10

Qual é o atual estado da arte para a rede de jogos de estratégia em tempo real?

Lembro-me de que, alguns anos atrás, alguns títulos AAA transmitiam apenas as entradas do jogador (Starcraft 1, Age of Empires). Como isso exige que você mantenha todo o resto totalmente determinístico, isso ainda é uma opção viável? A sincronização de geradores de números aleatórios parece viável, mas e as diferenças sutis nas implementações de FPU etc.?

Ou os jogos de estratégia estão usando algo mais próximo das redes de jogos de ação, onde entidades individuais são transmitidas (com alguma forma de previsão e (delta) compressão)?

Se sim, como são tratados itens voláteis, como projéteis?

E quanto ao cliente / servidor versus ponto a ponto? Suponho que tudo isso esteja fortemente inter-relacionado.

Obrigado pelo seu tempo!

ltjax
fonte
Duplicado do RTS Game Protocol - sim, ainda é assim que é feito. Quanto às diferentes implementações de FPU, veja aqui e aqui .
BlueRaja - Danny Pflughoeft 01/09/11

Respostas:

5

http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php Ainda é assim que as redes são feitas nos jogos RTS. P2P também é a maneira normal de lidar com conexões. No entanto, o uso de um modelo de bloqueio de timestep resulta em um caso irritante de dessincronização e manipulação de trapaça. Há uma boa maneira de se recuperar quando uma dessincronização acontece e todos os jogos RTS simplesmente dizem "Quit the match". O rastreamento de erros de dessincronização também é um pesadelo.

Peter Ølsted
fonte
1
Outro bom artigo sobre jogos de rede bloqueados com timestep: altdevblogaday.com/2011/07/09/…
tenpn
1

Esta é uma ótima leitura e responderá a muitas de suas perguntas:

http://udn.epicgames.com/Three/NetworkingOverview.html

No meu jogo de estratégia / defesa, estou usando um modelo de cliente / servidor e sou capaz de manter tudo determinístico até agora. O cliente envia apenas solicitações do servidor para fazer coisas (mas na verdade nunca faz nada) e envia atualizações, criações e exclusões para os clientes quando as coisas mudam. Embora meu jogo seja determinístico no momento, nunca confio em meus clientes para fazer algo certo, o servidor é o chefe e tem controle total sobre o jogo. O cliente é apenas um terminal burro.

Para tornar tudo realmente simples, estou usando uma combinação de Reflexão e Evento para manter minhas entidades completamente no escuro sobre o lado das redes. Eu também uso o conceito de um ator e uma "força" (em oposição a um ator e peão em um FPS como o Unreal). Isso permite um encapsulamento muito bom e um local para guardar o dinheiro e outras coisas da Força.

John McDonald
fonte