## RAPPORT WARBOT

Rémy Orain

Christophe Camel

Nicolas Desnos

1. INTRODUCTION

Notre idée de base est d'utiliser l'effet de meute en partant du postulat qu’une attaque de masse à plus de chance de succès que des groupes d’attaque séparés. Pour faire un rapprochement avec la Nature, on peut la comparer à une meute de loups – dans notre cas, il s’agira d’une meute de « Warriors » (RocketLaunchers). L'avantage attendu est de pouvoir détruire rapidement tout groupe d'ennemis se trouvant en infériorité numérique.

Quant à l'exploration du monde, c'est le travail des "Spys" (Explorers). Ces derniers ont simplement pour mission de détecter les bases ennemis afin d'en prévenir la meute.

Cependant, une telle gestion se révèle très délicate notamment parce que nous avons souhaité réaliser une meute "bien formée" se rapprochant du style de formation des légions Romaines, c'est à dire respectant des règles au niveau de sa structure.

Au niveau du style de cette armée de robots, on peut dire que la tactique employée est clairement une tactique d'attaque.

2. PRINCIPE

1) Rassemblement des agents "warriors" pour former la meute.

Les warriors vont se placer sur un cercle virtuel de sorte que le diamètre de soit suffisamment important pour permettre la formation en demi-cercle dans l’étape suivante. Cette phase est réellement difficile. En effet il faut calculer un point médian (centre du cercle) en fonction de la position des warriors, puis parvenir à les placer sur un cercle parfait en les positionnant chacun à une distance (définie) les uns des autres; c'est à dire où chacun trouve sa place. Bien évidemment, nous avons très vite rencontré de nombreux problèmes. Parmi ceux-ci, nous avons relevé différents cas particulièrement difficiles à gérer et mettant en péril notre stratégie :

- Cas bloquant où des obstacles et/ou des warriors alliés gênent cette procédure (plus ou moins résorbés par des cercles (distances) de sécurité (constante modifiable dans le code, fixée à 40) et un parcours autour du cercle, en se rapprochant de ce cercle si c’est possible, sinon en se déplaçant dans le sens des aiguilles d’une montre, voire dans le pire des cas, en s’éloignant du centre du cercle ou en se déplaçant en sens inverse. Dans le cas où un warrior ne peut pas passer à cause d'un autre warrior, il faut qu'il le contourne en choisissant le bon côté en fonction du "relief".

- Ou encore si le cercle calculé sort du jeux.

Figure 1 : Les warriors sont positionnés sur la carte en début de partie.

Figure 2 : Les warriors se rapprochent d’un centre, point moyen de leur coordonnées….

Figure 3 : …Jusqu’à former un cercle idéal (une certaine tolérance a été apporté quant à leur distance exacte par rapport au rayon du cercle)

1) Positionnement des agents en arcs de cercle.

Une fois qu'ils se sont placés sur le cercle (Etape 1), ils effectuent une rotation afin de se placer en arc de cercle, près à se lancer dans la direction calculée en fonction de nos bases (à l’initialisation, en partant de l’hypothèse d’un positionnement symétriques des bases ennemies).

Lors de cette phase les agents se rapprochent un peu plus les uns des autres. Un warrior va atteindre un coin du cercle et servira d’élément « stop » pour les autres warriors qui tourneront autour du cercle dans le même sens. Le warrior derrière le « warrior coin » va détecté par son Percept que ce warrior à atteint son état final de transformation (son nom est non nul) et va bloquer le prochain warrior. Chaque warrior positionné va indiqué aux autres qu’il a terminé son déplacement ; une fois tous les warriors positionné, nous passons à l’étape suivante.

Figure 4 :La meute va se déplacer pour former un arc de cercle…

Figure 5 :…dont le positionnement permet une attaque autant frontale que sur les cotés de la meute

2) Déplacement rectiligne comme une onde (au niveau de la forme).

a) Si un seul warrior de la meute détecte un ennemis (au niveau des percepts), nos attaquants passent tous en phase d'attaque. Par exemple si un warrior du centre a détecté un ennemis mais pas ceux des ailes, alors ceux des ailes continuent eux à avancer. Si leurs zone de détection détecte l'ennemi alors ils s'arrêtent et l'attaque aussi. La stratégie d'attaque est la suivante : ils attaquent en priorité les bases ennemies, et sinon, ils attaquent les proies les plus faibles. Il est alors évident qu'après une bataille, la meute est désorganisée au niveau de sa structure. C'est alors à la fin de la bataille qu'il y a re-formation de la meute en rappelant la procédure de départ.

Figure 6 : Attaque d’un ennemi…

Figure 7 : …et…

Figure 8 : ..reformation du cercle !

b) S'ils rencontrent un mur, il faut calculer un angle et donc une direction "valide" pour repartir. Ici, la difficulté consiste à ne pas détruire l'équilibre de la formation (ie la forme en arc de cercle). La meute choisit donc d’effectuer une rotation dans un sens dépendant du choix aléatoire de repartir soit à gauche soit à droite par rapport à la position de l’obstacle.

Figure 9 : Détection d’un obstacle…

Figure 10 : …ici, la meute entame une rotation « vers la droite »…

Figure 11 : …et continue son déplacement à la recherche d’un ennemi.

c) Si un "spy" rencontre une base de l’ennemi, il indique immédiatement à la meute la direction à prendre. Si la meute est en « quête d’une proie » et qu'elle reçoit un tel message, elle change immédiatement de cap pour aller détruire la base ennemi.

3. LES SPY

Leur rôle est de se balader dans l'espace de jeux et de détecter des bases ennemis. Avec notre système de meute "bien formée" vient alors un problème (que nous avons su résoudre) qui est la possibilité qu'un spy vienne perturber la meute en venant se mettre au milieu lors d'une manœuvre (par exemple un changement de cap). Il suffit simplement que tout spy se tienne à distance de la meute!

4. LES WARRIORS

On les a basé sur une machine d'état dont les états ont été précédemment cités.

5. LES BASES

Elles interviennent dans le calcul du regroupement en cercle et dans la détermination de la direction par défaut. Nous les avons baptisées « Fortress ».

6. LES PROBLEMES

Nous nous sommes aperçu que certaines positions de départ défavorables nous perturbaient énormément! Notamment pour le regroupement en arc de cercle. Ainsi, dans certains cas, les warriors n'arrivent pas à contourner un autre warrior. En fait, pour gérer n'importe quelle position de départ, il nous a juste manqué un peu de temps.

La position optimale de départ se trouve Figure 1 avec 5 warriors. La pire des positions est celle qui consiste à mettre en ligne les warriors avec en plus certains warriors se trouvant près de murs ou des bases.

7. CONCLUSION

Gérer la coordination d'une meute s'avère difficile. La principale difficulté est la formation dans n'importe quelle position. Si on avait réussi à finir cela, elle aurait était sans doutes assez efficace! Un autre point est celui d'informer la meute en cas d'attaque d'une des bases amis et de pouvoir réagir suivant le contexte.

Cependant, l’expérience Warbot s’est révélée très intéressante car, bien que notre équipe ait rencontré des difficultés durant l’étape des qualifications, nous avons pu mesurer la complexité d’un tel projet

Figure 12 : Imaginez ce qu’aurait pu être notre stratégie de warriors bien positionnés si nous avions pu gérer tous les cas évoqués !