Olá pessoal,
fiquei com uma duvida que não achei explicação vagando no Google.
Suponhamos que temos um jogo ao estilo “Mario” feito em Java, que terá de ser Multiplayer.
ou seja, imaginem Mario e Luigi sendo controlados por 2 jogadores simultaneos cada um em seu proprio PC.
o Servidor estaria em uma terceira maquina, suportando o jogo.
Sendo a conexão feita via socket, como seria feita a sincronia do movimento de ambos os jogadores?
no exemplo de Chat que eu criei (vide Assinatura), não exigia algo em ‘tempo real’ dando refresh continuamente para saber se uma pessoa esta digitando ou não…
o SocketListener (criado 1 par de listeners para cada usuario, sendo 1 no ‘array do server’ e 1 no proprio client), apenas aguardava o usuario mandar 1 palavra, esta palavra sendo recebida era retransmitida para todo o Array de Usuarios que estavam registrados no Server, e então todos tinham as mesmas informações na tela.
Agora em um jogo ou algo mais dinamico, como funcionaria?
Se o Mario segura o botão de andar para a direita por 5 segundos, ele estaria enviando repetidamente um comando por socket chamado, por exemplo,
“Mario Andar Direita”
o servidor então captura essa ‘String’, e envia essa informação tb para o Luigi avisando para o Mario da tela dele se mover para direita.
Seria isso? ou tem um jeito mais facil de manter essa sincronização?
Se fossemos tentar criar um jogo em grande escala com 100+ pessoas online, não sobrecarregaria o numero de informações sendo enviadas por sockets e tendo q ser traduzidas e retransmitidas para todos os jogadores ?
Alguem tem um exemplo prático de um sistema assim funcionando?
Obrigado.