olá.
estou programando a parte de rede de um jogo multiplayer.
Estou usando threads, mas estou com um problema na hora de sincronizar os movimentos.Tipo …eu movimento um player e ele se movimenta nos outros clientes mas com um delay que eu não posso deixar.
No servidor eu tenho uma classe só pra recibemento de msg , pensei em dar um sleep sempre que chegar uma msg ai vai dar tempo de processar nos outros clientes a ação… mas não funcionou…
sei que não expliquei muito bem…mas o problema em si é sincronizar os movimentos dos players…
desde já agradeço a atenção…
fui…
Daniel
Cara,
seus metodos estão declarados com synchronized ???
cara…os métodos que tratam do envio e recebimento de mensagens não estão como synchronized mas esta técnica é quando estou usando recursos compartilhados com por exemplo um arranjo ou coisa parecida não??..
quando cliente se conecta passo a ter threads individuais para envio e recebimento de mensagens …ou seja cada cliente tem no servidor threads para rec e enviar msg p/ o mesmo.
mas vou testar sincronizando os métodos…
valeu mesmo…
Olá!
não sei como vc está fazendo. Mas tente tratar o teu player como um player remoto. Explicando:
Quando vc mecher o seu player não o mecha diretamente, mas sim envie uma msg para a rede em broadcast ou multicast, e assim que vc receber, vc verifica qual o player e o meche. Deu pra entender?
Assim vc assegura que todos vão funcionar igualmente, não precisa fazer um código para o seu player e outro para um player remoto, todos funcionarão com um mesmo código. A única coisa que vc não vai poder assegurar é qeu todos movimentem-se ao mesmo tempo, devido ao delay da rede, isso não tem como impedir 
Será que deu pra entender?!
Abraços!
to tratando dessa maneira, mas achei que dava pra eliminar esse delay
ilusão minha, pois vai existir e dependendo da rede que estão rodando o jogo ele pode ficar ainda maior.A ideia que me passaram foi de criar um timer e corrigir na marra…vou tentar
valeu mesmo…mãos á obra que senão eu num formo…
Uma estratégia que os jogos interativos utilizam para minimizar esses artefatos é a seguinte:
Apenas como referência, pois talvez extrapole o escopo de um trabalho escolar, vale a pena também tentar liberar o poder de java.nio, evitando a criação de threads para atender as requisições. Um bom início seria o link http://www.onjava.com/pub/a/onjava/2004/09/01/nio.html?page=1.