[ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Qualidade [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por SIGILOSO em Sab 21 Ago 2010, 00:23



Pipolho: Monstro burro!! Pq não me ataca??
SIGI: Idiota! Ele não sabe onde vc está!
Pipolho: EEINN??? anh!


Olá criaturas!! Resolvi abordar um tema que causa muita dor de cabeça na maioria dos iniciantes. A maldita da IA... pq é tão difícil fazer com que os objetos possam "pensar" dentro dos seus jogos? A resposta para essa e outras perguntas vc descobre aqui... ou na novela das 8.

Nome: IA: O INIMIGO PENSANTE
Descrição: Vamos ensinar os inimigos dos nossos jogos a interagir com nossos players!
Nível de dificuldade: Iniciante/semi-mediano
Requerimentos: GM 6/7/8 - Pro/Lite


IA? Isso é alguma nova doença?

IA nada mais é, do que uma Inteligência Artificial. Eu sei, o bonzão... vc já sabia disso. Mas você sabe interpretar isso?
Para que haja inteligência, é necessário que exista conhecimento, ou seja, para que nosso inimigo tenha uma IA, ele deve "aprender" a atacar o player.
E sendo uma inteligência artifical, nós é que temos que ensinar a ele. Ele não pode aprender sozinho... oohh..... ¬¬"


Pipolho: Que inimigo burro.... os outros é quem tem q ensinar as coisas pra ele! xD
SIGI: Você não sabe nem soletrar seu nome, então fique calado...


Sendo assim, vamos começar a elaborar uma IA bem simples, para que vocês comecem a entender como isso funciona! Happy

Acredito que vcs saibam criar uma engine de plataforma simples... se souberem, continuem lendo. Se não souberem... Bem vindos ao GM!! \0/ \0/ Parem de ler isso e vão ler as aulas do RedDragon!

Crie uma engine rápida de plataforma, apenas o chão é necessário.Crie as sprites para o inimigo e para o player. E crie tbm os objetos: o player, e é claro, um inimigo. Nesse caso, nosso inimigo irá perseguir nosso player. Isso pode ser mais fácil do que você imagina...
Coloque no STEP de nosso amigo inimigo ( Eeinn?? O_o ), o seguinte código:
Código:
if player.x+50<x
x-=4
if player.x-50>x
x+=4


Pipolho: Sigi, seu paspalho... até eu sei fazer isso!!!
SIGI: Não sabe nao... ¬¬
Pipolho: ....... mas tenho certeza de que deve ser fácil... u.u


Como deve ter percebido, esse código fará com que o inimigo siga o player horizontalmente... dãa.... (se não tinha percebido isso, LEIA AS AULAS DO REDDRAGON!!)
Mas... o que significa aquele 50?
Esse 50 fará com que o inimigo pare ao se aproximar do player,evitando que ele fique "dançando" em cima dele... rsrs
Isso dará mais realismo ao seu inimigo, assim vc pode inclusive criar um ataque corpo-a-corpo, dessa forma:
Código:
if player.x+50>x and player.x-50<x
atacar=true
Viu? Ao estar longe do player, nosso inimigo irá perseguí-lo, e ao se aproximar, ele ataca! Simples! Mas nesse caso, vc deve substituir esse "atacar=true" pelos códigos referentes ao ataque,ok?

Mto bem,nosso inimigo já corre atrás do player. Mas....
O inimigo não pode correr atrás do player se estiver bem distante dele...
O senhor Senon Barriga e Pesado apenas persegue o seu Madruga quando está perto dele,não é msm? Então vamos acrescentar ao nosso código,numa linha antes dele, o seguinte:
Código:
if player.x+500>x and player.x-500<x
{
E no fim do código, claro...
Código:
}


Pipolho: Mark Overmars criou a função "distance to object", sabia??
SIGI: Silent!! I kill you!!


Bem, como Pipolho disse, eu poderia ter usado a função distance_to_object.
Mas como se trata da distância horizontal, eu resolvi colocar desse jeito... e eu acho q é mais prático tbm Happy
Ou seja, o inimigo só irá perseguir o player se ele estiver a menos de 500 pixels de distância. Vc pode alterar esse valor pra expandir o campo de visão do inimigo.
Legal... nosso inimigo já "sabe" perseguir o player! Mas quero mais.... quero mais!!
Já que essa é uma engine de plataformas, imagino que seu player possa pular, correto? Então nada mais justo do que o nosso inimigo poder pular tbm! =D


Pipolho: E se o inimigo for manco? o_o
SIGI: Quem liga? Super Mario jamais poderia pular tão alto. Ninguem pula tão alto!


Precisamos fazer com que o inimigo saiba quando deve pular.
E isso é ridiculamente simples!! Em seu STEP, coloque:
Código:
if player.y+50<y
{
if estiver no chao
vspeed=-8
}
Lógico... vc vai trocar esse "estiver no chao" pelo código que vc utiliza pra saber quando o objeto está no chão.
Viu só?? Quando o inimigo estiver no chão e o player estiver mais alto que ele, o inimigo irá pular para alcança-lo! Simples demais!!

E claro que ainda existem mtas coisas a serem introduzidas, mas essa é apenas uma introdução pra vc começar a entender como funciona uma IA. Happy


Pipolho: Mas eu quero que o inimigo possa se esconder atrás das caixas,para pegar o player de surpresa, e matá-lo se o player estiver assustado!!
SIGI: ...... Vá ler as aulas do RedDragon!!!


É isso aeew gente... DIGAM NÃO A INFANTILIDADE!!
Se estão no forum, o ajude a crescer!!
afro




Última edição por SIGILOSO em Sab 21 Ago 2010, 09:28, editado 2 vez(es)

SIGILOSO

Ranking : Nota A
Número de Mensagens : 2264
Idade : 23
Data de inscrição : 06/06/2009
Notas recebidas : A+A+A+A+A+A+A
Reputação : 39
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 4
   : 2
   : 1

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por rikerike em Sab 21 Ago 2010, 08:41

Fantastico!!!!!!!!!!!!!!!!!!!!
Vc sabe msm dar gosto a leitura apesar de ja saber disto. li tudo.

"Silent!! I kill you!!" lloooooll

rikerike

Ranking : Nota C
Número de Mensagens : 42
Data de inscrição : 30/06/2010
Notas recebidas : C
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por makgamer em Sab 21 Ago 2010, 09:48

kk eu ri kkkkk
um sigi-tuto é? lol
otimo tutorial, e vc sabe colocar graça em um tutorial...(diferente de mim...)
eu ja sabia disso só que só de ler o tutorial ja foi bom.
PS: o que é um pipolho?(eu acho que as aulas do reddragon n incinam isto!XD)
parabens!

makgamer

Ranking : Nota D
Número de Mensagens : 927
Idade : 18
Data de inscrição : 29/03/2009
Notas recebidas : D
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   : 1
   :

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por Super Games em Sab 21 Ago 2010, 09:53

KKKKKKKKK
Cai da cadeira de verdade!
Muito massa cara.
NOTA 100.000.000!

Super Games

Ranking : Nota D
Número de Mensagens : 2704
Idade : 18
Data de inscrição : 10/06/2010
Notas recebidas : D
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por GuiEdu em Sab 21 Ago 2010, 12:57

Cara, vc tá fazendo sucesso Happy
O enredo de suas histórias são demais, não consigo parar de ler, sem falar que o conteúdo é super instrutivo e de fácil aprendizagem Happy
Voto no SIGI para mod xD

GuiEdu

Número de Mensagens : 505
Idade : 23
Data de inscrição : 04/06/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por SIGILOSO em Sab 21 Ago 2010, 13:09

makgamer says:
PS: o que é um pipolho?(eu acho que as aulas do reddragon n incinam isto!XD)
parabens!

Pipolho é um personagem que eu inventei pra tornar os tutos mais divertidos. Na verdade ele representa todos os novatos impacientes, que ao invéz de tentarem aprender a criar algo, ficam pertubando pra conseguirem tudo pronto Happy

GuiEdu says:
Cara, vc tá fazendo sucesso Happy
O enredo de suas histórias são demais, não consigo parar de ler, sem falar que o conteúdo é super instrutivo e de fácil aprendizagem Happy
Voto no SIGI para mod xD

Minhas histórias? Não estaria falando do meu tuto sobre criação de histórias? o_o
Obrigado pelo elogio, se um dia eu for moderador, farei o melhor de mim! xD
afro

SIGILOSO

Ranking : Nota A
Número de Mensagens : 2264
Idade : 23
Data de inscrição : 06/06/2009
Notas recebidas : A+A+A+A+A+A+A
Reputação : 39
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 4
   : 2
   : 1

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por VerdiMare em Sab 21 Ago 2010, 13:47

Muito bom Sigi! mais um tuto baumzão!
me ajudo pakas xD

Pipolho: Mark Overmars criou a função "distance to object", sabia??
SIGI: Silent!! I kill you!!

eu ficava tentando usar esse código .-.

vlwss!

Até mais =D

VerdiMare

Número de Mensagens : 679
Idade : 19
Data de inscrição : 21/02/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por Henrique-HB em Sab 21 Ago 2010, 13:57

Bom tutorial, parabéns. Mas percebi que vc faz tanto condições com delimitadores como sem eles, minha dica seria para seguir um padrão e usa-los.


flw...........

Henrique-HB

Número de Mensagens : 114
Data de inscrição : 23/06/2008
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por Luan Maia em Sab 21 Ago 2010, 14:22

Ótimo tutorial, gostei muito! Você sim tem o dom de ensinar! xD
flw

Luan Maia

Ranking : Sem avaliações
Número de Mensagens : 399
Idade : 20
Data de inscrição : 01/07/2010
Notas recebidas : D+C+C+D
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://blogluanmaia.blogspot.com.br/

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por SIGILOSO em Sab 21 Ago 2010, 15:31

Henrique-HB says:
Bom tutorial, parabéns. Mas percebi que vc faz tanto condições com delimitadores como sem eles, minha dica seria para seguir um padrão e usa-los.


flw...........

hehe, já se tornou um hábito... xD
Consegui me adaptar a essa estrutura de códigos de uma forma que eu
nao me embole. Inclusive, os códigos que eu coloco nos tutos, são apenas um complemento, para que o leitor entenda como eles funcionam. Se eu colocasse eles todos já preparados, não ajudaria ninguem Happy
Mto obrigado pelo elogio! =D
afro

SIGILOSO

Ranking : Nota A
Número de Mensagens : 2264
Idade : 23
Data de inscrição : 06/06/2009
Notas recebidas : A+A+A+A+A+A+A
Reputação : 39
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 4
   : 2
   : 1

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por LeandroDaher em Sab 21 Ago 2010, 16:30

Cara,muinto bom,seus tutos tem sempre comédia,isso me inspira a ler tudo,tudinho mesmo,até a linha de edição eu li saca só:

Última edição por SIGILOSO em Sab Ago 21, 2010 9:28 am, editado 2 vezes
kk,alem de enssinar,tem uma pitada (varias) de comédia,flws.

LeandroDaher

Número de Mensagens : 357
Idade : 20
Data de inscrição : 13/05/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por Luca$*** em Sab 21 Ago 2010, 21:05

Vlw cara!!!!!!!,eu acompanhei o tuto e resolvi testar
achei q ia ser dificil,mas q nada!fikou massa
vlw msm!

Luca$***

Número de Mensagens : 193
Idade : 20
Data de inscrição : 26/12/2009
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por M.F-Sasuke em Ter 21 Dez 2010, 20:32

mto boa, adorei sua engine!
blz

M.F-Sasuke

Número de Mensagens : 167
Idade : 19
Data de inscrição : 20/08/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por Henrique_GJ em Ter 21 Dez 2010, 20:49

eu sempre achei IA uma coisa facil de se fazer

é so checar quando o player deve pular, quando deve andar e etc

eu gosto de fazer inimigos que não pareçam ser muito burros, tipo eu ja vi tutos que falam pra usar o collision_line (acho que é assim a função) para saber se o inimigo vê o player

eu prefiro fazer uma variavel chamada ja_viu e na primeira vez que a linha não colidir ja_viu vira true e ele segue o player incansavelmente ate o player ou o inimigo sair de cena, fica mais interessante, tbm eu faço objetos redondos grandes e toda vez que acontece algo como um tiro, um inimigo que segue o player e etc cria essa bola inviivel e os inimigos que colidem com essa bola tbm vão atras do player como se tivessem percebido a presença dele sem vê-lo

tem muitas coisas que da pra fazer, mas esse tuto ai vai dar a bas epara aqueles que estão perdidos

boa sorte pros perdidos \o/

Henrique_GJ

Número de Mensagens : 1344
Idade : 19
Data de inscrição : 30/12/2009
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://sitedosjogos.forumeiros.com

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por fonetico em Ter 21 Dez 2010, 20:58

Não sei como não tinha visto esse tutorial antes. Está muito bem explicado SIGILOSO. Para um iniciante, é muito fácil aprender da forma quevocê escreveu, está de parabéns!

PS: Bem que no seu próximo tuto, você poderia nos ensinar fazer uma IA de xadrez. Ajudaria muito rs

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: [ SIGI-TUTO ] IA: O INIMIGO PENSANTE!!

Mensagem por Conteúdo patrocinado Hoje à(s) 10:27


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum