Oi Gorio,
-- Sugestão de como eu faria no seu lugar:
1. Voce tem acesso a um ID de cada participante. Assuma qualquer lógica pra definir internamente quem é o "host" da partida a partir desses IDs (exemplo: quem o string.compareTo() dizer que é o maior). Esse host pode ser o primeiro ou decidir quem é o primeiro e avisar o outro. Colocaria algum tipo de animação na tela por pelo menos um segundo e até que os dois lados troquem uma mensagem de "I'm ready". Outra possibilidade é começar sempre o jogador que tem mais vitórias... nesse caso, mande uma mensagem com seu número de vitórias e fique aguardando receber o número de vitórias do oponente.
Nesse momento, ambos jogadores estão prontos para começar o jogo e já sabem se ele começa jogando ou esperando.
2.1. Se for sua vez, permita que o jogador jogue e envie as mensagens relevantes para que o outro lado atualize a UI (no caso do jogo, uma mensagem unreliable para cada toque) durante o período de 10 segundos. Ao final da contagem, termine o turno enviando uma mensagem reliable de fim de turno e mude o estado para "não sua vez".
2.2. Se não for sua vez, desligue as interações e coloque uma barra de progresso. Evite mostrar o tempo restante do oponente em segundos, tente mostrar de forma menos determinada pra poder acomodar demoras no envio de mensagem de fim de turno, caso contrário a contagem pode chegar no 0 e não receber mensagem nenhuma, o que seria estranho. Usaria uma contagem de 12 - 13 segundos mostrando apenas uma barra de progresso, pra minimizar essas discrepâncias. Ao receber mensagem de fim de turno, mude o estado para é sua vez.
Talvez quem esteja esperando possa ter algum tipo de mensagem de provocação, enviar emoticons, sons... Essas coisas devem ser mostradas instantaneamente pra quem está enviando e enviadas como mensagens unreliable... quem está recebendo (jogador que está no turno) deve exibir apenas se recebeu as mensagens durante seu turno... mas é basicamente isso aí, é um jeito um pouco diferente de pensar mas, uma vez acostumado, é bem tranquilo.
Abraço, boa sorte,
VB
On Wed, Jun 1, 2016 at 12:58 PM Gorio <goriofab@gmail.com> wrote:
Aproveitando o gancho, consigo saber quem foi que criou a partida ? Talvez dessa forma eu possa definir quem começa a partida sempre será o jogador que criou o game.--Em 1 de junho de 2016 12:17, Gorio <goriofab@gmail.com> escreveu:Boa tarde Vitor,Pensei exatamente em fazer isso, porém preciso pensar em algo para fazer essa lógica.O jogo é o seguinteObrigado--Em 1 de junho de 2016 11:12, Vitor Bruno de Almeida <contato@vitordealmeida.com.br> escreveu:Oi Gorio,--Você vai precisar implementar os turnos através de mensagens reliable, que respeitam a ordem de envio.Caso esteja usando o Google Play Games como backend, https://developers.google.com/games/services/common/concepts/realtimeMultiplayer#sending_game_data
Não conheço especificidades do jogo Button Clicker, mas se tiver alguma peculiaridade, avise que tento ajudar (mande o link também pra não ter confusão)Abraço,VB
On Wednesday, June 1, 2016 at 1:09:39 AM UTC-3, gorio wrote:Bom dia,Estou tentando adaptar o jogo Real Time Button Clicker do Android para que fique com a característica de um jogo onde só um pode clicar quando for a sua vez de jogar.A ideia é colocar um Countdown timer de 10s sendo que o Player2 só poderá clicar após o Player1 ter clicado ou o tempo do Player1 ter sido esgotado e vice-versa.Nos exemplos dos Jogos do Android, existe uma opção Turn Based, porém não é em tempo real.Gostaria de saber como devo fazer para tornar o jogo em Tempo Real respeitando a lógica de que só um pode realizar uma operação por vez.ObrigadoAtenciosamente
Gorio
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/3dzsEgVoU9w/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
0 comentários:
Postar um comentário