Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal! Estou mais uma vez aqui, implorando pela ajuda de vocês. Bem, estou desenvolvendo um jogo de navegador (game of browser) e empaquei em um dilema, tenho certeza de que muitos aqui já jogaram um jogo do tipo na web. Vou dar um pequeno exemplo para entenderem qual é o problema.
*Digamos que o jogo é de guerra, e que cada um mandou fazer em sua cidade, um edifício e um pouco de soldado.Imagine dois jogadores nesta situação:
*O **jogador numero 1**, atacou o **jogador numero 2**, com **10**(dez) **soldados**, às **12 horas**, para ser exato;
*O ataque ao **jogador 2**,deverá **chegar as 13 horas**;
*As **11 horas**, o **jogador 2**, havia mandado **construir um "armazém"**, o mesmo só ficaria** pronto á 15 horas** (**2 horas depois do ataque chegar**). Além disso, ele (**jogador 2**) mandou fazer **10 unidades de soldados às 12:30**. Estes soldados, ficam pronto **um acada 10minutos**, sendo assim, no horário em que o **ataque chegar(13h)**, na **cidade do jogador 2**, haverá **apenas 3 soldados prontos**, e 7 estarão ainda sendo feito mais **o armazém que ainda não ficou pronto**;
AGORA VEM A PARTE QUE NÃO SEI COMO FAZER!
Todo este calculo será feito na pagina php, o script da hora por exemplo. Posso mandar o php, registrar no banco de dados, que o jogador 2 está fazendo tropas e contruindo algo, alem disso, digo que horas ele deverá terminar(em segundos) faço uma subtração entre (HORA FINAL) - (HORA ATUAL), assim, consigo um relógio, que quando chegar a 0, posso ordenar uma ordem para o php como atualizar no BD, de que este edifico agora está pronto por exemplo. Sei que o php, só vai reverificar se este “tempo” é zero, se a página for atualizada de novo. Se a pagina estiver aberta, é fácil, pois haverá um relógio em Java script, que atualizara a pagina para mim no memento certo. Porém, e se o jogador estiver desligado, ou seja, não estiver no jogo no momento?
Como vou salvar as atualizações no BD, mostrando todos os detalhes desta hora em questão, pois, as 13 horas, o ataque chega, tenho que fazer um calculo para ver quem ganha ( isso é na pagina php), salvar um relatório no BD para o usuário ver mais tarde, salvar no BD quanto sobrou de tropas para ambos.
Se as 15 horas, quando o armazém ficar pronto, o jogador 2 estiver fora do jogo, ainda sim, tudo deve ser atualizado, para quando ele voltar, ele estará lá. Se alguém atacar o jogador ás 13:10, terá na cidade 4 unidades.
Bem, espero que eu tenha sido bem explícito quanto ao problema e espero que me ajudem. Não sei mais o que fazer!
Tive uma idéia, mas não me parece boa. Teria uma página “mãe” que receberia os dados de todos os jogadores, e ficaria atualizando sempre, porem, á mudanças no jogo a qual quer hora, fica imprevisível saber quando terá uma mudança por parte do jogadores! A página teria que ficar atualizando a cada 1 segundo. Mas isso seria estranho para mim. Parece “gambiarra”!
Ajudem, por favor...!
>
muitos jogos de browser pelo menos que eu conheço não necessita ficar fazendo isso em quanto o jogador não estiver.
você vai ter guardado a data em que aquilo precisa terminar simples na sua página sempre que buscar os dados faça uma verificação se data for maior que a atual ele libera tudo.
o que vai acontecer com isso? simplesmente nada se ele não tiver no jogo mais na hora que ele entrar tudo isso acontecerá de uma vez só.
e caso o outro jogador 1 ataque o jogador 2 quando o jogador 2 estiver off?
você não precisa que o jogador 2 esteja on por tanto que tenha os dados dele o jogador 1 executara o script para ambos.
conseguiu captar a ideia?
É, parece que estou entendendo, se for o que eu estou pensando, acho que da certo, (acho que é o obvio!). Bem, vou tentar fazer um teste rápido, espero que de certo... Volto aqui para falar como foi, se mais auguem apoia ou tem outra ideia, por favor, diga.
Obrigado pela ajuda... obrigado mesmo!
muitos jogos de browser pelo menos que eu conheço não necessita ficar fazendo isso em quanto o jogador não estiver.
você vai ter guardado a data em que aquilo precisa terminar simples na sua página sempre que buscar os dados faça uma verificação se data for maior que a atual ele libera tudo.
o que vai acontecer com isso? simplesmente nada se ele não tiver no jogo mais na hora que ele entrar tudo isso acontecerá de uma vez só.
e caso o outro jogador 1 ataque o jogador 2 quando o jogador 2 estiver off?
você não precisa que o jogador 2 esteja on por tanto que tenha os dados dele o jogador 1 executara o script para ambos.
conseguiu captar a ideia?