Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
Ajuda com IA Dinamico
Página 1 de 1
Ajuda com IA Dinamico
E aew galera,tudo bem ?
Estive criado um jogo estilo yu-gi-oh,com atk ,def e tals,mas o problema e que vejo possibilidades apenas para modo dual player,quero dizer,minha visão de criação desse jogo se limita ao jogo de duelo entre dois players.
Com isso pensei,seria bem legal ter uma espécie de IA para fazer o jogo como o modo single player,apenas você e a máquina.Mas com isso veio minha dúvida :
Como fazer algo automatizado ? Pois colocar possibilidade por possibilidade vai ficar trabalhoso.
A máquina terá que ver o que é melhor por exemplo : destruir um monstro do inimigo ou destruir a carta mágica com efeito "x" ...........
Desde já agradeço
Estive criado um jogo estilo yu-gi-oh,com atk ,def e tals,mas o problema e que vejo possibilidades apenas para modo dual player,quero dizer,minha visão de criação desse jogo se limita ao jogo de duelo entre dois players.
Com isso pensei,seria bem legal ter uma espécie de IA para fazer o jogo como o modo single player,apenas você e a máquina.Mas com isso veio minha dúvida :
Como fazer algo automatizado ? Pois colocar possibilidade por possibilidade vai ficar trabalhoso.
A máquina terá que ver o que é melhor por exemplo : destruir um monstro do inimigo ou destruir a carta mágica com efeito "x" ...........
Desde já agradeço
Última edição por TRFN em Seg 21 Nov 2011, 14:47, editado 1 vez(es)
Convidad- Convidado
Re: Ajuda com IA Dinamico
Se por "precisas e objetivas" você quer dizer "com código", pode esquecer.
O lance é que uma IA desse porte, além de ser, sim, um bocado complexa, requer um completo entendimento da engine que você tem E das estratégias a serem adotadas em CADA caso. Mais que isso, requer também que se saiba quais estratégiasNÃO adotar. E ainda é preciso saber ser justo com o jogador, ou seja, a IA só tomará as decisões com base nas cartas que estão abertas. Não usar, jamais, as cartas encobertas pra serem levadas em conta nas decisões.
Bom, já que estou gastando seu tempo, um resumo dessas dicas:
será preciso conhecer a engine por completo para:
- Saber quais cartas devem estar na mesa a cada momento
- Saber que tipo de ação um jogador poderia tomar (e, portanto, que tipo de ação a IA pode tomar)
-
será preciso conhecer bem as estratégias para:
- definir qual o melhor curso de ações em função das cartas que estão na mesa e da probabilidade das cartas que não estão na mesa serem desse ou daquele tipo
- em função do que for "melhor", tomar decisões que pareçam ao jogador agressivas, conservadoras ou até idiotas, dependendo do estilo que você quer dar ao inimigo.
Será preciso saber contar cartas para:
- Estimar quais cartas o jogador pode ter e levar a probabilidade dele ter essa ou aquela carta na tomada de decisão.
Enfim, é basicamente uma questão de prever todas as possibilidades e tomar decisões baseadas em que caso o presente momento se encontra. Sei que não é um jogo de truco, mas seria assim: eu tenho zap e sete de copas, o que é garantia de vitória. Assim, a jogada destina-se a valorizar o jogo.
Conservador: Eu jogo a terceira carta, vejo o resultado. Se ganhei, truco a volta. Se perdi, espero pra ver o que o adversário tem e truco na hora de mostrar minha carta, o que pode induzi-lo a aumentar a aposta.
Agressivo: Truco logo de cara. Se o adversário (jogador) correr, fim, pego um "tento" ("tento" é ponto, caso você não jogue truco). Se ele chamar, eu tento PERDER a primeira rodada pra ele gritar que aumentou a aposta (seis!!!) e, na mesma hora, aumento de novo.
Note, em nenhum dos casos eu sei o que o jogador tem, só planejo o curso de ações com base no que está disponível. Se você jogar bastante, vai acabar descobrindo as melhores estratégias e poderá implementá-las na sua IA. Ou isso ou o jogador vai descobrir a melhor estratégia e acabar com os inimigos sem o menor esforço (a menos, claro, que você trapaceie e coloque inimigos impossíveis de serem vencidos).
Não foi muito objetivo, né? Foi mal, mas é que não dá pra ser objetivo. A pergunta É subjetiva.
O lance é que uma IA desse porte, além de ser, sim, um bocado complexa, requer um completo entendimento da engine que você tem E das estratégias a serem adotadas em CADA caso. Mais que isso, requer também que se saiba quais estratégiasNÃO adotar. E ainda é preciso saber ser justo com o jogador, ou seja, a IA só tomará as decisões com base nas cartas que estão abertas. Não usar, jamais, as cartas encobertas pra serem levadas em conta nas decisões.
Bom, já que estou gastando seu tempo, um resumo dessas dicas:
será preciso conhecer a engine por completo para:
- Saber quais cartas devem estar na mesa a cada momento
- Saber que tipo de ação um jogador poderia tomar (e, portanto, que tipo de ação a IA pode tomar)
-
será preciso conhecer bem as estratégias para:
- definir qual o melhor curso de ações em função das cartas que estão na mesa e da probabilidade das cartas que não estão na mesa serem desse ou daquele tipo
- em função do que for "melhor", tomar decisões que pareçam ao jogador agressivas, conservadoras ou até idiotas, dependendo do estilo que você quer dar ao inimigo.
Será preciso saber contar cartas para:
- Estimar quais cartas o jogador pode ter e levar a probabilidade dele ter essa ou aquela carta na tomada de decisão.
Enfim, é basicamente uma questão de prever todas as possibilidades e tomar decisões baseadas em que caso o presente momento se encontra. Sei que não é um jogo de truco, mas seria assim: eu tenho zap e sete de copas, o que é garantia de vitória. Assim, a jogada destina-se a valorizar o jogo.
Conservador: Eu jogo a terceira carta, vejo o resultado. Se ganhei, truco a volta. Se perdi, espero pra ver o que o adversário tem e truco na hora de mostrar minha carta, o que pode induzi-lo a aumentar a aposta.
Agressivo: Truco logo de cara. Se o adversário (jogador) correr, fim, pego um "tento" ("tento" é ponto, caso você não jogue truco). Se ele chamar, eu tento PERDER a primeira rodada pra ele gritar que aumentou a aposta (seis!!!) e, na mesma hora, aumento de novo.
Note, em nenhum dos casos eu sei o que o jogador tem, só planejo o curso de ações com base no que está disponível. Se você jogar bastante, vai acabar descobrindo as melhores estratégias e poderá implementá-las na sua IA. Ou isso ou o jogador vai descobrir a melhor estratégia e acabar com os inimigos sem o menor esforço (a menos, claro, que você trapaceie e coloque inimigos impossíveis de serem vencidos).
Não foi muito objetivo, né? Foi mal, mas é que não dá pra ser objetivo. A pergunta É subjetiva.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Ajuda com IA Dinamico
Olha cara,desculpa se fui um pouco "inventador de moda" ao colocar aquilo no final,não foi essa minha intenção,precisava mais de ideias que tudo.
É que as vezes não sei expor minhas ideias.
A propósito,jogo truco sim,todos os dias eu jogo(2° a 6° feira,na escola) .
Mas voltando ao assunto,eu entendi o que você quis dizer basicamente,inclusive até tinha pensado em algo "parecido",só não aprofundei como você aprofundou no assunto.O que seria minha ideia é tipo inserir todas as jogadas possíveis e ver qual a melhor,já que o máximo de cartas e 5 no campo de batalha é também o máximo no baralho é 40 cartas.Veja um exemplo do que pensei :
Essa é minha ideia,mas se eu tiver que transcrever todas as jogadas possíveis,criar uma condição para cada uma das cartas ,segundo as cartas que o jogador tem : vai ficar enorme.
Imagina que tenha 100 cartas diferentes é que eu vou ter que verificar quais 40 cartas o player tem das 100......é ainda analizar as jogadas,todas as possíveis jogadas............queria algo mais dinâmico........
mas vlw ai pela ajuda Saim.Se alguem souber o modo de simplificar isso,me fala.
É que as vezes não sei expor minhas ideias.
A propósito,jogo truco sim,todos os dias eu jogo(2° a 6° feira,na escola) .
Mas voltando ao assunto,eu entendi o que você quis dizer basicamente,inclusive até tinha pensado em algo "parecido",só não aprofundei como você aprofundou no assunto.O que seria minha ideia é tipo inserir todas as jogadas possíveis e ver qual a melhor,já que o máximo de cartas e 5 no campo de batalha é também o máximo no baralho é 40 cartas.Veja um exemplo do que pensei :
- Código:
//c_showed :: Verifica se a carta está para cima ou para baixo.
//card[...] :: Slots para cartas,lugares "possiveis" para ficarem.
//isso é só um "exemplo é ideia",não tem nada a ver com oque estou fazendo por hora............
if((card[0]=exodia && c_showed[0]=true) or (card[1]=exodia && c_showed[1]=true) or (card[2]=exodia && c_showed[2]=true) or (card[3]=exodia && c_showed[3]=true) or (card[4]=exodia && c_showed[4]=true)){
action="perdeu"; // neste exemplo,se o cara tiver um exodia a partida acaba,mas ele tem que estar para cima,mostrada no caso.
}
Essa é minha ideia,mas se eu tiver que transcrever todas as jogadas possíveis,criar uma condição para cada uma das cartas ,segundo as cartas que o jogador tem : vai ficar enorme.
Imagina que tenha 100 cartas diferentes é que eu vou ter que verificar quais 40 cartas o player tem das 100......é ainda analizar as jogadas,todas as possíveis jogadas............queria algo mais dinâmico........
mas vlw ai pela ajuda Saim.Se alguem souber o modo de simplificar isso,me fala.
Convidad- Convidado
Re: Ajuda com IA Dinamico
O que você pode fazer pra simplificar (se é que dá pra fazer isso, eu nunca joguei esses jogos de cartas com "efeitos especiais") é aninhar algumas possibilidades. (não sei se se usa esse termo, "aninhar", em português. No original é "nesting").
- Código:
if card[0]=???{
if c_showed=???{
//algo
}
else if c_showed=???{
//outra coisa
}
else{
//outra coisa
}
}
else if card[0]=!!!{
//por aí vai
}
- Código:
if card[0]=???{
scriptDaCard0Ser???
}
else{
scriptDaCard0NãoSer???
}
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Ajuda com IA Dinamico
entendo....
Você me deu uma ideia muito boa,vou fazer um sistema para descobrir todas as cartas da mesa viradas para cima é registrar as possibilidades,é ai ele escolhe uma coisa a fazer,hora ele faz burrada,hora ele faz uma jogada inteligente.Assim acho que o jogo não vai ficar "impossível" de ganhar da "máquina".
Sobre a varialvel c_showed,é só para verificar se a carta está para cima,é se a carta não estiver,ele nem vai analizar,assim poupa meu trabalho.
A ideia dos scripts e uma boa.Assim não vou me confundir tanto.
Pelo que vejo vou ter que fazer uma possibilidade de jogada,segundo cada carta que o player pode possuir.Mas não só isso,vou ter que também fazer um sistema para que a "maquina" jogue também,tenha estratégias e tals.
Segundo o que percebo,as jogadas vão depender das cartas e jogadas do "jogador" .
Obrigado saim pela ajuda,se eu tiver outra dúvida eu falo.
Se tiver alguma ideia me fala aqui saim.
Você me deu uma ideia muito boa,vou fazer um sistema para descobrir todas as cartas da mesa viradas para cima é registrar as possibilidades,é ai ele escolhe uma coisa a fazer,hora ele faz burrada,hora ele faz uma jogada inteligente.Assim acho que o jogo não vai ficar "impossível" de ganhar da "máquina".
Sobre a varialvel c_showed,é só para verificar se a carta está para cima,é se a carta não estiver,ele nem vai analizar,assim poupa meu trabalho.
A ideia dos scripts e uma boa.Assim não vou me confundir tanto.
Pelo que vejo vou ter que fazer uma possibilidade de jogada,segundo cada carta que o player pode possuir.Mas não só isso,vou ter que também fazer um sistema para que a "maquina" jogue também,tenha estratégias e tals.
Segundo o que percebo,as jogadas vão depender das cartas e jogadas do "jogador" .
Obrigado saim pela ajuda,se eu tiver outra dúvida eu falo.
Se tiver alguma ideia me fala aqui saim.
Convidad- Convidado
Re: Ajuda com IA Dinamico
Tenho sim. Quer dizer, talvez eu tenha. Como disse, não conheço esses jogos, então posso estar falando bobagem, mas...
Já jogou FFXII? Se não sabe do que estou falando, pode simplesmente responder "não, nunca" e deixar de ler o resto.
Sabe aquele sistema de gambits? Em que você determina que ações cada personagem tomará a partir de determinadas situações, tipo "se houver qualquer amigo morto, usar phoenix down, mas antes disso, se eu estiver pra morrer, usar healing".
Claro que se seu jogo não usar variáveis como "vida" ou "magia", estou só ocupando seu tempo. De outra forma, mantenha isso em mente na hora de programar.
Já jogou FFXII? Se não sabe do que estou falando, pode simplesmente responder "não, nunca" e deixar de ler o resto.
Sabe aquele sistema de gambits? Em que você determina que ações cada personagem tomará a partir de determinadas situações, tipo "se houver qualquer amigo morto, usar phoenix down, mas antes disso, se eu estiver pra morrer, usar healing".
- Spoiler:
- Isso foi a maior trapaça já vista na história dos games! Ao invés de fazer a IA pra você, o que deixaria o jogo MUITO chato (o jogador ficaria só assistindo a programação correr) a square te mandou escrever a IA e ainda por cima te cobrou em pontos de experiência por isso! E tem gente - tipo o saim - que adorou!
Claro que se seu jogo não usar variáveis como "vida" ou "magia", estou só ocupando seu tempo. De outra forma, mantenha isso em mente na hora de programar.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: Ajuda com IA Dinamico
bem cara,não sei tbm se conhece yu-gi-oh,mas é um jogo de cartas que contem monstros(com determinados atk e def) é cartas mágicas,que o ajuda esses monstros.Por exemplo,tenho uma carta chamada "vult",ela tem 5000 de atk e 300 de def. Se no caso,ela estiver em modo de defesa,o 300 é que vai prevalecer é se ela for atacada por uma carta de 450 de atk,ela vai ser destruida.Mas se ela estiver em modo de atk (com o numero 5000 no caso) a outra carta é destruida ao atacar...é por ai vai.
saim,nunca joguei esse jogo que vc me falou,mas mesmo assim li até o final é entendi por "alto" a sua ideia.Exatamente isso que vou fazer : um sistema de vida,já pensava nisso antes,pois o jogo em si já tem esse sistema no duelo,mas agora ta mais claro para mim xD
O tenso vai ser agrupar as informações : A possibilidade de usar cartas mágicas,que fazer efeitos nos monstros do jogador ou do inimigo,a jogabilidade da "máquina" ,do player ao lançar as cartas no campo é o lance de cartas na sorte (tanto para o player quanto para a máquina,mas e claro com as cartas do baralho,não com todas no jogo).
só para constar : sim,esse jogo vai usar sistema de vida é efeitos(magia) também.
Mas sua ajuda ta sendo muito bem vinda,tem aberto minha mente.Então se tiver algo mais para sugerir ,sugira alguma dica
saim,nunca joguei esse jogo que vc me falou,mas mesmo assim li até o final é entendi por "alto" a sua ideia.Exatamente isso que vou fazer : um sistema de vida,já pensava nisso antes,pois o jogo em si já tem esse sistema no duelo,mas agora ta mais claro para mim xD
O tenso vai ser agrupar as informações : A possibilidade de usar cartas mágicas,que fazer efeitos nos monstros do jogador ou do inimigo,a jogabilidade da "máquina" ,do player ao lançar as cartas no campo é o lance de cartas na sorte (tanto para o player quanto para a máquina,mas e claro com as cartas do baralho,não com todas no jogo).
só para constar : sim,esse jogo vai usar sistema de vida é efeitos(magia) também.
Mas sua ajuda ta sendo muito bem vinda,tem aberto minha mente.Então se tiver algo mais para sugerir ,sugira alguma dica
Convidad- Convidado
Tópicos semelhantes
» comentario dinamico
» [Resolvido]Mini mapa dinâmico!
» [Resolvido]Menu Dinamico
» {Resolvido} BackGround Dinâmico
» [AJUDA]Sobre o Forum[AJUDA]
» [Resolvido]Mini mapa dinâmico!
» [Resolvido]Menu Dinamico
» {Resolvido} BackGround Dinâmico
» [AJUDA]Sobre o Forum[AJUDA]
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos