GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Ú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

Ir para baixo

Ajuda com IA Dinamico Empty Ajuda com IA Dinamico

Mensagem por Convidad Seg 21 Nov 2011, 14:22

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 Exclamation


Última edição por TRFN em Seg 21 Nov 2011, 14:47, editado 1 vez(es)
avatar
Convidad
Convidado


Ir para o topo Ir para baixo

Ajuda com IA Dinamico Empty Re: Ajuda com IA Dinamico

Mensagem por saim Seg 21 Nov 2011, 14:38

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.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Ajuda com IA Dinamico Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Ajuda com IA Dinamico Empty Re: Ajuda com IA Dinamico

Mensagem por Convidad Seg 21 Nov 2011, 15:10

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 :
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.
avatar
Convidad
Convidado


Ir para o topo Ir para baixo

Ajuda com IA Dinamico Empty Re: Ajuda com IA Dinamico

Mensagem por saim Seg 21 Nov 2011, 16:17

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
 }
Claro que, pra muitas possibilidades, o código vai ficar grande de qualquer jeito. E você pode criar um script pra um dado tamanho de aninhamento, se achar que isso pode facilitar. Por exemplo:
Código:
if card[0]=???{
 scriptDaCard0Ser???
 }
 else{
  scriptDaCard0NãoSer???
  }
Ou ainda, você pode prever algumas situações mais comuns e usar choose a partir daí. Como um boss com ataques aleatórios: na hora do ataque, ele faz "a=choose(0, 0, 0, 1, 2); event_perform(ataque[a]);". Isso daria uma orientação genérica à sua IA e um pouco de imprevisibilidade.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Ajuda com IA Dinamico Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Ajuda com IA Dinamico Empty Re: Ajuda com IA Dinamico

Mensagem por Convidad Seg 21 Nov 2011, 16:29

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.
avatar
Convidad
Convidado


Ir para o topo Ir para baixo

Ajuda com IA Dinamico Empty Re: Ajuda com IA Dinamico

Mensagem por saim Seg 21 Nov 2011, 16:54

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".
Spoiler:
Bom, o que eu vim sugerir é algo como esse sistema de gambits, só que você mesmo escreve, não deixa pro jogador fazer isso. Quer dizer: se a vida do inimigo está no fim, ele tomará atitudes mais desesperadas, se a magia dele está pra acabar, ele vai usar ataques mais focados no plano físico, por aí vai.
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
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Ajuda com IA Dinamico Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Ajuda com IA Dinamico Empty Re: Ajuda com IA Dinamico

Mensagem por Convidad Seg 21 Nov 2011, 17:05

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 Happy
avatar
Convidad
Convidado


Ir para o topo Ir para baixo

Ajuda com IA Dinamico Empty Re: Ajuda com IA Dinamico

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos