Entrar
Últimos assuntos
» Retorno da GMBR!!!por theguitarmester Ter 19 Mar 2024, 22:38
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16
» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05
» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55
» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39
» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28
» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01
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!
» [AJUDA]Sobre Botoes Interativos[AJUDA]
» [Resolvido]Menu Dinamico
» {Resolvido} BackGround Dinâmico
» [Resolvido]Mini mapa dinâmico!
» [AJUDA]Sobre Botoes Interativos[AJUDA]
» [Resolvido]Menu Dinamico
» {Resolvido} BackGround Dinâmico
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos