Saltar para conteúdo


Foto
- - - - -

Tratar pedidos


  • Por favor inicie sessão para responder
5 respostas a este tópico

#1 Bruno.Garces

Bruno.Garces

    Novato

  • Membros
  • Pip
  • 8 mensagens

Mensagem publicada 27 August 2010 - 13:09

Boas gente!Já ando na comunidade há algum tempo, não sou é muito participativo, mas vou estando sempre atento ao que se vai passando..Este caramelo: http://androidpt.com...&id=20729#20729 :PNeste momento estou a tratar da parte de interacção com outros jogadores, visto ser um jogo multiplayer. Precisava de alguma orientação visto não saber muito bem como fazer isto. Suponhamos: o jogador A escolhe o adversário, e selecciona uma de duas jogadas, x ou y. Quando faz isto, o outro jogador tem de receber uma notificação e decidir se quer jogar ou não. Se sim, faz a sua jogada e aparece o resultado combinado das jogadas; se não, cada um vai à sua vidinha. Se alguém souber, qualquer ajuda é bem vinda :cheer:CumpsBruno Garcês

#2 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 27 August 2010 - 13:19

Bruno.Garces escreveu:

Boas gente!Já ando na comunidade há algum tempo, não sou é muito participativo, mas vou estando sempre atento ao que se vai passando..Este caramelo: http://androidpt.com...&id=20729#20729 :PNeste momento estou a tratar da parte de interacção com outros jogadores, visto ser um jogo multiplayer. Precisava de alguma orientação visto não saber muito bem como fazer isto. Suponhamos: o jogador A escolhe o adversário, e selecciona uma de duas jogadas, x ou y. Quando faz isto, o outro jogador tem de receber uma notificação e decidir se quer jogar ou não. Se sim, faz a sua jogada e aparece o resultado combinado das jogadas; se não, cada um vai à sua vidinha. Se alguém souber, qualquer ajuda é bem vinda :cheer:CumpsBruno Garcês

hummmm sockets?!

#3 Bruno.Garces

Bruno.Garces

    Novato

  • Membros
  • Pip
  • 8 mensagens

Mensagem publicada 27 August 2010 - 13:38

r3pek escreveu:hummmm sockets?!

pois, era o que eu andava a ver, mas como praticamente nunca trabalhei com sockets estou um pouco à nora. Supostamente, terei de ter no servidor um ficheiro php com filosofia FIFO (First In First Out) e terei de fazer a conexão por aí mas como não sou um entendido na matéria posso estar a dizer algum disparate :) Como é que é feito essa conexão?

#4 nps

nps

    Novato

  • Membros
  • Pip
  • 9 mensagens

Mensagem publicada 27 August 2010 - 22:40

Boas,Ora bem, multiplayer... atravéz que que meio? Internet ou Ligações locais? (Wifi, bluetooth...)Se for pela internet, depende da arquitectura que quiseres... para facilitar as coisas no que toca a portas e segurança é recomendável um servidor central a fazer de host, para os jogos, e implementas o cliente em android. Em todo o caso não te recomendo php, o que tu queres do php é essencialmente o POST para mandar informações para o servidor ... usa mesmo sockets...Essencialmente um socket é uma estrutura virtual para designar uma ligação bidirecional entre um servidor e um cliente... funciona sempre assim... Tens uma função bind(), listen() e accept() da parte do servidor, e uma connect() da parte do cliente. Depois tens o send(data). - O server faz bind(localhost:porta); associa uma porta á estrutura do socket;- Com o listen() ele fica á espera duma ligação naquele socket, e crias um evento para quando ele receber uma tentativa de ligação.-No evento da ligação (não sei como é em java, usei sockets no .net só) o servidor faz um accept().Depois ambos podem mandar pacotes abstractos de dados de um lado para o outro. No caso de ser um jogo em tempo real aquilo tem umas funções para usar antes streams... que são mais rápidas.Tens ainda portanto que criar um event listener para a recepção de dados...Primeiro, familiariza-te com a API de sockets (é do java mesmo, não é específica do android).No que toca á arquitectura, identifica o tipo de comunicações que podes ter entre o servidor e o cliente. Geralmente queres 3 tipos:1- negociação (login, ver jogadores ligados, propor jogos etc.)2- Comandos client -> server;3- Estado do jogo, server -> clienteSe fosse um jogo de xadrez portanto, os comandos seriam a tua jogada, o estado do jogo seria o tabuleiro actual, e negociação seriam criar jogo, convidar jogador etc. etc.No caso de ser local, simplesmente crias uma rede Ad-Hoc por wifi (não é bem suportado no 1.6 pra baixo) e usas um dos terminais como servidor e o outro como host... é capaz de ser até mais simples, pois não é preciso criar uma 'Game Lounge' (onde um gajo vai á procura de um jogo.Boa sorte com isso, e espero que te tenha ajudado em alguma coisa o meu post longuissimo...

#5 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 28 August 2010 - 09:20

Não diria melhor. Excelente post.

#6 Bruno.Garces

Bruno.Garces

    Novato

  • Membros
  • Pip
  • 8 mensagens

Mensagem publicada 28 August 2010 - 14:36

boas, como disse e bem o r3pek, excelente post nps :) o jogo vai ser através da internet... pelos vistos vou ter de pegar mesmo nos sockets, já me andava a preparar. vou ter em atenção o que disseste e familiarizar-me com a api. A ver se me safo :P