Site Fermé , nouvelle communauté => FWEC
p1050636.jpg p1050738.jpg p1050738.jpg p1050738.jpg
NEWS
1) BONJOUR c'est DJIUM qui s'exprime ! Je vous passe tous une annonce. La Nouvelle communauté est créer , elle se nomme FWEC , elle ouvrira ce vendredi , voici sont adresse : http://www.fwec.fr/ C'est un site expérimental avec un skin aussi expérimental , alors soyaient indulgent , et aider la nouvelle grande communauté des français sur les jeux de Blizzard :D
IndexFAQ World EditorRechercheEnregistrementconnexion
:: Les IA scénarios ::

 
Post new topic   This topic is locked: you cannot edit posts or make replies.    World Editor Warcraft 3 Forum Index -> World editor -> Tutoriaux
Previous topic :: Next topic  
Author Message
IaMfReNcH
[Membre]


Joined: 22 Aug 2009
Posts: 45

PostPosted: Thu 15 Oct - 20:03 (2009)    Post subject: Les IA scénarios Reply with quote

Présentation

Les IA sont un sujet très complexe, et il n'y as pas de recette miracle qui va marcher dans tout les cas, puisque chacun aura une IA qui aura affaire à des situations différentes. Je vais donc tenter ici de présenter ce qui est le plus général, et des pistes pour créer sa propre IA.

Je recommande fortement la connaissance du JASS, voire même du vJASS pour s'attaquer à l'IA (désolé, Djium, c'est pas pour t'embêter) : même si on peut toujours s'en sortir avec des déclencheurs, il vous sera impossible de créer une IA complexe, puisque pour cela il faut un code tout aussi complexe. Le GUI n'est pour le moment pas assez performant pour pouvoir faire des IA confortablement. Normalement, sur Starcraft II, des améliorations (notamment la possibilité de définir des fonctions) devrait permettre une utilisation plus souple du GUI. Je ne dis pas que c'est impossible techniquement en GUI, mais humainement.

Dans ce sujet, j'éviterai au maximum le code : comme je l'ai dit plus haut, chaque IA aura des capacités différentes. Ce sera donc à vous de créer votre code. J'expliquerai juste comment démarrer.

Enfin, ce sujet traite les IA tel que je les vois. Il ne s'agit pas d'une bible universelle.

Objectifs/états de l'IA

Un homme réagi différemment suivant les situations : c'est l'adaptabilité. L'IA doit faire de même, sinon, elle foncera seule vers un ennemi 3 fois plus fort et se fera one shooter.

Pour simplifier l'étude ici, on partira du principe qu'il n'y as pas de brouillard de guerre.

L'IA pour s'adapter à une situation va prendre ce que j'appelle un état.
Quelques états simple :
Rush
Attaque
Défense
Fuite
Récolte

A chacun de ces états correspond un objectif
Rush: en finir avec l'adversaire.
Attaque: affaiblir l'adversaire (retraite prévue. C'est à dire que la retraite n'est pas une éventualité comme le rush au cas ou ca tourne mal, mais que le but est juste d'affaiblir l'adversaire en visant des zones ou unités stratégiques (péons par exemple). principalement, en attaque, on cherche à avoir le minimum de pertes, voir pas de pertes).
Défense: On attends l'adversaire chez soi. On y est en général plus fort, grâce à des bâtiment défensifs, l'apparition de creeps alliés (ou dans le cas d'une mêlée, pouvoir entrainer des unités qui arrivent directement dans la bataille, sans temps de déplacement).
Fuite : après un rush ou une attaque ratée (perte majeures, ou si c'est pas encore le cas, faut pas trainer si on veut pas que ca arrive. Dans le cas d'un héros seul, hp critiques).
Récolte: On cherche à avoir un maximum de ressources et d'améliorations dans un premier temps, pour pouvoir assurer un assaut final à l'usure, sur la durée (ou bien avoir un meilleur équipement). Cet état se combine généralement avec la défense. Mais on préférera utiliser des tours ou autres unités spécialisée en défense qui coute moins cher. En défense, il s'agit d'une variante de l'attaque. On s'y prépare mais on n'est pas encore prêt, donc on attends (ce qui peut aussi être le cas en récolte).

Bien sur, vous pouvez avoir vos propres états et vos propres objectifs.
Définissez bien vos états avant de vous lancer dans le code (surtout en GUI), sinon vous avez de fortes chances de vous dire à un moment "ce serait mieux comme ca", et de devoir tout rechanger.

Changement d'état


Si l'IA à plusieurs états, elle n'est toujours pas adaptable si elle ne sait pas en changer. Il faut donc absolument définir des critères de transition pour les différents états. C'est là qu'on entre dans le vif du sujet.

Rush: Supériorité numérique et/ou en puissance. La supériorité doit être incontestable (du moins avec les infos dont dispose l'IA. En brouillard de guerre, c'est plus dur).
Attaque: L'adversaire n'est pas dans son camp (ou seule une petite garde y est). Petite escarmouche lâche et on lui casse ses gardes,  puis ses paysans/fermes (ou autre unité stratégique). Une fois terminé (ou que l'adversaire reviens), on fait la retraite.
Défense: l'adversaire est le plus fort pour l'instant en terme militaire. On se prépare à inverser la tendance, mais on a besoins d'un peut de temps pour y parvenir. Il faut donc survivre jusque là, et protéger les points stratégiques.
Fuite: Points de vie critiques, il faut absolument arrêter le combat, sinon les pertes seront trop lourdes.
Récolte: Ce cas dépend de la stratégie de l'IA. Je vais en parler dans la partie suivante.

Stratégie

Tu as surement joué à Ogame, non ? Ta stratégie c'était quoi ? Farmer ou raider ?
Voilà en gros comment on peut résumer une stratégie. La stratégie est quelque chose qui se définit au début de la partie. Bien sur, on peut en changer, mais pas n'importe comment.

Exemple:
Agressif: l'IA visera à affaiblir petit à petit l'ennemi pour ensuite pouvoir le battre lors de l'assaut final.
Passif: Le but n'est pas d'affaiblir l'adversaire, mais de se renforcer pour devenir supérieur à l'adversaire en terme de nombre et d'améliorations, mais aussi en ressources. Ainsi, on sera capable de faire durer l'assaut final alors que l'adversaire sera au début plus fort, mais s'affaiblira, sans pouvoir remplacer indéfiniment les unités mortes.

En gros, cela définit le style de jeu, la tactique qui sera employée tout au long de la partie.
En général, on ne passera pas d'une stratégie agressive à une stratégie passive en pleine partie (enfin ca dépend du scénario). Par contre, passer d'une stratégie passive à une stratégie agressive est tout à fait cohérent.


Dans une battle tanks, quelques stratégies sont :
Agressif pvp : long range + tank aérien rapide, player only, exploder etc...
Agressif creeps : short range (mais plus puissant), tank terrestres avec plus de pv.
Défensif : Guard pour soigner les alliés
Passif : trader. Bel exemple de récolte, le but est de s'enrichir plus vite que les autres, en évitant les combats. Inconvénients : les alliés sont moins nombreux à se battre que l'équipe ennemie. Mais ils recoivent plus d'or. C'est une technique risquée. Il faut mieux être sur que les alliés ne vont pas faiblir. La perte de points de contrôle (surtout au milieu) peut se retrouver pénalisant.



Je pense en avoir finit avec ces explications. Si vous avez des cas particuliers que vous n'arrivez pas à résoudre, ou des choses à ajouter, n'hésitez surtout pas à demander.

bonus pour ceux qui ont tout lus :p

J'ai parlé de points et d'unité stratégiques dans le sujet. Je vais les expliquer plus en détail ici.
Instinctivement, lorsque vous vous faites attaquer, vous revenez dans votre camp, pour éviter de tout vous faire détruire. Les mines d'or aussi sont importantes. Mais la tour paumée à l'autre bout de la carte ne l'est pas.
Ce sont des positions stratégiques, qu'il faut absolument essayer de garder.
Des positions stratégiques peuvent aussi être des endroits qui permettent à la fois d'attaquer l'ennemi, et de pouvoir se retirer vite sans risque de se faire prendre à revers. Ca peut être l'endroit le plus proche de votre camp/point de contrôle qui vous permette d'avoir à porter les ennemis.


Gardez à l'esprit que l'IA doit agir comme un joueur normal. Elle à un grand avantage : elle peut réfléchir à tout à la fois. Mais aussi un grand inconvénient : elle est prévisible, et ne peut pas s'adapter à toutes les situations. Seul un humain peut être imprévisible, mais cela ne veut pas dire que tous sont imprévisible.

Ceci nous amène à deux choses :
L'IA doit agir comme on le ferait. Il faut donc se poser la question "qu'est-ce que je ferais ?"
La force d'un joueur se voit à sa capacité d'adaptation face à des situations. La difficultée de l'IA peut donc se regler en "freinant" les changements d'états de l'IA.
Back to top
Publicité






PostPosted: Thu 15 Oct - 20:03 (2009)    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Djium
Administrateur


Joined: 04 Apr 2009
Posts: 2,410
Loisirs: grapher
Host Djix
Spécialité Worldedit: Programmeur GUI

PostPosted: Thu 15 Oct - 20:16 (2009)    Post subject: Les IA scénarios Reply with quote

IaMfReNcH wrote:
Je recommande fortement la connaissance du JASS, voire même du vJASS pour s'attaquer à l'IA (désolé, Djium, c'est pas pour t'embêter)difficultée de l'IA peut donc se regler en "freinant" les changements d'états de l'IA.
j'ai un doute :p


j'ai pas tout lu hein car j'ai plus de temps mais donc si l'IA demande de connaitre le jass alors attend qu'on soie sur BWE pour élaboré ton topic alors ?



Back to top
IaMfReNcH
[Membre]


Joined: 22 Aug 2009
Posts: 45

PostPosted: Thu 15 Oct - 20:35 (2009)    Post subject: Les IA scénarios Reply with quote

j'ai pas dit qu'elle demandait de connaitre le JASS. C'est juste hautement recommandé :

Si ton IA est très élaborée, tu aura besoin de faire tes propres fonctions, et un simple déclencheur monofonction ne suffira pas (en GUI, toutes les actions sont dans une même fonction, à part pour les énumérations de groupe et de forces). Tu vas copier coller 25 fois la même chose, tu va te prendre la tête pour la rendre paramétrable...

Des trucs très utiles ne sont pas dispo en GUI

Et enfin, ca ne sera pas lisible. Il y aura énormément de Si/Sinon à faire. Et il faudra que tu les copie/colle quand tu en auras besoin. Si tu as une modif à faire après, c'est foutu, il faut que tu relise tout pour 1 heure (au moins).
En jass, c'est vite fait, et très lisible. Et tu le fait une fois pour toutes. Si tu as besoin d'y revenir, comme c'est à 1 seul endroit, c'est plus simple. C'est à ca que servent les fonctions qui pourront être définies sur SCII en GUI.
Back to top
legolas[rfgd]
Modérateur


Joined: 13 Jun 2009
Posts: 345
Localisation: devant mon PC
Host legolas[rfgd]
Spécialité Worldedit: glander

PostPosted: Fri 18 Dec - 20:48 (2009)    Post subject: Les IA scénarios Reply with quote

Que voulait-il dire par IA scénario? Des IA que l'on fait à partir de déclencheurs au lieu de les faire à partir de l'éditeur d'IA?
Back to top
Djium
Administrateur


Joined: 04 Apr 2009
Posts: 2,410
Loisirs: grapher
Host Djix
Spécialité Worldedit: Programmeur GUI

PostPosted: Sat 19 Dec - 10:15 (2009)    Post subject: Les IA scénarios Reply with quote

oui exacte !

mais de toute façon le tuto ne sera pas gardé nous allons en faire un meilleur !



Back to top
IaMfReNcH
[Membre]


Joined: 22 Aug 2009
Posts: 45

PostPosted: Mon 21 Dec - 20:05 (2009)    Post subject: Les IA scénarios Reply with quote

bon courage.

Je te conseil de lire ce livre (que j'ai chez moi) : http://www.ai-junkie.com/books/toc_pgaibe.html.
Il est en anglais, mais explique bien les IA de jeux vidéos.
Back to top
Djium
Administrateur


Joined: 04 Apr 2009
Posts: 2,410
Loisirs: grapher
Host Djix
Spécialité Worldedit: Programmeur GUI

PostPosted: Mon 21 Dec - 20:14 (2009)    Post subject: Les IA scénarios Reply with quote

je parlais de l'éditeur d'ia pas créer une ia par jass

en attendant ! close ;)



Back to top
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies.    World Editor Warcraft 3 Forum Index -> World editor -> Tutoriaux All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  

Portal | Index | Create a free forum | Free support forum | Free forums directory | Report a violation | Conditions générales d'utilisation