Jogos em Real Time com Turn

13 views
Skip to first unread message

Gorio

unread,
Jun 1, 2016, 12:09:39 AM6/1/16
to androidbrasil-dev
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.

Obrigado

Atenciosamente

Gorio

Vitor Bruno de Almeida

unread,
Jun 1, 2016, 10:12:58 AM6/1/16
to Android Brasil - Dev
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

Gorio

unread,
Jun 1, 2016, 11:17:17 AM6/1/16
to androidbrasil-dev
Boa tarde Vitor, 

Pensei exatamente em fazer isso, porém preciso pensar em algo para fazer essa lógica.

O jogo é o seguinte


Obrigado

--
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-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Atenciosamente

Gorio
(www.gorio.eng.br)

 

Gorio

unread,
Jun 1, 2016, 11:58:55 AM6/1/16
to androidbrasil-dev
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.

Vitor de Almeida

unread,
Jun 1, 2016, 1:09:02 PM6/1/16
to androidb...@googlegroups.com
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


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-...@googlegroups.com.

Gorio

unread,
Jun 1, 2016, 1:24:31 PM6/1/16
to androidbrasil-dev
Muito Obrigado VB.

Farei uns testes aqui e depois deixo um feedback aqui.

Abs

Gorio
Reply all
Reply to author
Forward
0 new messages