Aller en bas
Jungle
Jungle
Membre

Nombre de messages : 30
Distinction : aucune
Date d'inscription : 28/08/2012

RPG Maker VX Ace [System : Intelligence artificielle Aggro]

Jeu 30 Aoû 2012 - 14:42
Bonjour,

Tout à d'abord j'ai décider de créer quelques tutoriels sur l'IA des montres dans les A-Rpg, et donc pour commencer, je vais présenter un system parmit tant d'autre : la gestion de l'aggro* du joueur.
Je précise que je ne parle pour le moment uniquement de la gestion de l'aggro.

Aggro = Moment ou le monstre vour répère et vous prend pour cible.

Tutoriel IA monster numéro 1 : Aggro

Alors quel intéret de créer un tel system ?
Tout simplement pour ajouter une touche de réalisme au jeu, le monstre ne pourra vous attaquer que si vous
rentrer dans une certaines zone à sa portée de vue. On peut décider de la portée de vue d'un monstre en fonction de son niveau, ou de son apparence...
La difficulté de ce tutoriel est relativement simple, ce qui est encouragent lorsqu'on veut apporter du réalisme à son jeu.
Donc nous allons créer : un évenement monstre qui effectura des actions classiques, puis qu'y changera d'habitude à la detection du joueur.

1ere Partie : Les pré-requis :


-6 Variables : [Postion X hero Combat] [Postion Y hero Combat] [Mob Battle Pos_X] [Mob Battle Pos_Y]
[AOE Player Battle X] [AOE Player Battle Y]
-4 Conditions.

[Postion X hero Combat] comprend la postion X sur la map du hero.
[Postion Y hero Combat] comprend la position Y sur la map du hero.

[Mob Battle Pos_X] comprend la position X sur la map du monstre.
[Mob Battle Pos_Y] comprend la position Y sur la map du monstre.

[AOE Player Battle X] comprend la "zone de portée X d'aggro".
[AOE Player Battle Y] comprend la "zone de portée Y d'aggro".

2eme partie : L'évenement monstre :

[System : Intelligence artificielle Aggro] 112

Sur la 1ere page, paramètrons ainsi le monstre.
Le processus parallèle est important, car la detection doit être et aux actions du joueur.

Ensuite :

[System : Intelligence artificielle Aggro] 211

Initialisation:
-On initialise les varaiables de positions X et Y du hero.
-Les variables AOE sont au début égales aux variables de positions du hero.
-On initialise ensuite les variables des positions X et Y du monstre.

Petit calcul :
La zone AOE d'aggro du monstre est égale à la différence des positions X et Y du joueurs et du monstre.
Cette différence contient la distance qui sépare le joueur du monstre.
Elle peut être négative ou positive, peu importe. C'est cette distance qui génère l'aggro ou non du monstre.
Cette distance doit être contenu dans les varaibles [AOE Player Battle X] et [AOE Player Battle Y].
Donc : [AOE Player Battle X] = [AOE Player Battle X] -  [Mob Battle Pos_X]
(Attention j'ai bien préciser qu'au début [AOE Player Battle X] = [Postion X hero Combat])
Et : [AOE Player Battle Y] = [AOE Player Battle Y] - [Postion Y hero Combat])

3eme étape : Gestion des conditions :

On a maintenant la distance qui sépare l'évenement monstre, de celle du héro.
Nous n'avons plus qu'a décider combien de "case" doivent séparer les 2 personnages pour "activer" l'aggro.
Dans mon exemple : 2 cases.
(Il est aussi possible de régler ça en pixels.)

[System : Intelligence artificielle Aggro] 311

Les 2 premières conditions vérifient la portée d'aggro en X :
Si la distance est inférieur ou égal à 2 :
Phase d'aggro => Nouvelle page (avec prochainement tutoriel de combat personalisé)
Si la distance est supérieur ou égal à -2 :
Phase d'aggro => Nouvelle page

Sinon : rien.

Les 2 autres conditions vérifient la portée d'aggro en Y :
Si la distance est inférieur ou égal à 2 :
Phase d'aggro => Nouvelle page
Si la distance est supérieur ou égal à -2 :
Phase d'aggro => Nouvelle page

Sinon : rien.

Voilà de ce qu'il en est pour ce tuoriel d'aggro. Je précise qu'il est le plus simpliste possible, vous pouvez décider de modifier la portée à volonté, modifier l'IA du monstrer lorsque le héro n'est pas détecter.
Je ferais prochainement un tutoriel sur la phase de combat en elle même. (Avec nottament la gestion d'algorithme contenant les dégats que le hero peut infliger en fonction de son niveau/equipement/style de comat).
A bientot.

+5pts de participation
Balbereith
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 31
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires [System : Intelligence artificielle Aggro] 522164 ) [Coco' Smile]
Date d'inscription : 13/05/2009

RPG Maker VX Ace Re: [System : Intelligence artificielle Aggro]

Jeu 30 Aoû 2012 - 14:47
Merci pour le tuto, +5pts de participation.
Kayss
Kayss
Membre

Nombre de messages : 68
Age : 33
Distinction : aucune
Date d'inscription : 03/02/2013
http://www.reparation-iphone-lille.fr/

RPG Maker VX Ace Re: [System : Intelligence artificielle Aggro]

Sam 9 Fév 2013 - 19:48
Ouais mais dans ce cas là, le mob te détecte même si tu es dans son dos, non ? (Je demande ça parce que j'ai pour habitude d'utiliser if [Monstre1] has "direction" en plus du calcul de distance est là je vois <= -2 et >= 2)
samwillorbe
samwillorbe
Membre

Nombre de messages : 376
Age : 30
Localisation : Brive
Distinction : aucune
Date d'inscription : 12/08/2012
https://sites.google.com/site/lemondedewillorbecom/in-the-news

RPG Maker VX Ace Re: [System : Intelligence artificielle Aggro]

Sam 9 Fév 2013 - 20:17
Moi ce genre de système je le fais en total évents en posant des évenement autour des zones où il y a des ennemis et dés que tu touche cet évenement ça fait réagir l'ennemi qui te poursuit, enfin ça peut etre utile merci Smile
Et désolé si j'explique mal [System : Intelligence artificielle Aggro] 436437
Kayss
Kayss
Membre

Nombre de messages : 68
Age : 33
Distinction : aucune
Date d'inscription : 03/02/2013
http://www.reparation-iphone-lille.fr/

RPG Maker VX Ace Re: [System : Intelligence artificielle Aggro]

Sam 9 Fév 2013 - 20:28
Le problème avec ta façon de faire samwillorbe c'est que du coup tu peux pas faire de monstre qui bougent aléatoirement avant de le combat ^^ ! Du coup niveau level design c'est pas top Very Happy
Jungle
Jungle
Membre

Nombre de messages : 30
Distinction : aucune
Date d'inscription : 28/08/2012

RPG Maker VX Ace Re: [System : Intelligence artificielle Aggro]

Dim 10 Fév 2013 - 9:56
Oui il te détecte si tu es dans son dos, c'est une zone autour de lui de + ou - 2 "cases".
Après il s'agit d'une base, tu peux modifier afin d'ajouter par exemple :
"Si le joueur marche, réduire la zone d'aggro, ou enlever l'aggro par l'arrière".
On peut aussi prendre le même principe pour que le monstre laisse tomber la poursuite du héros, si celui-ci s'échappe assez loin.

Et effectivement, ce system te permet de faire agir le monstre d'une façon différente avant la rencontre avec le joueur. Tu peux le faire marcher, discuter avec d'autres monstres, ou n'importe quoi, tout en laissant la detection du héro en parallèle.
Contenu sponsorisé

RPG Maker VX Ace Re: [System : Intelligence artificielle Aggro]

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum