Sujet TER - Master 1 - Année 2004-2005

Réalisation d'un langage d'auteur pour le logiciel Warbot sous Madkit

Présenté par Jacques Ferber

MadKit est une plate-forme de développement de systèmes multiagents fonctionnant en Java. Madkit fonctionne en mode distribué de manière "transparente" à partir d'une architecture "peer to peer" sans nécessiter de serveur dédié. Il est ainsi possible de faire communiquer des agents à distance sans avoir à se préoccuper des problèmes de communication qui sont gérés par la plate-forme. Madkit utilise le protocole TCP et les sockets pour la gestion des messages entre agents.

Madkit utilise le modèle AGR (Agent/Groupe/Rôle) pour structurer les communications entre agents. Les groupes sont distribués de manière automatique sur les différents noyaux Madkit présents. MadKit est un système OpenSource que vous pouvez télécharger à www.madkit.org.

Le modèle AGR, à partir duquel est construit MadKit est fondé sur une interaction entre groupes, rôles et agents :

L'organisation de MadKit sous forme de groupes et de rôles.

Image du "bureau" de MadKit
(cliquer sur l'image pour l'élargir)

Madkit fonctionne de manière distribuée selon un mode peer to peer. Il introduit aussi la notion de « communauté », c’est à dire d’application distribuée à laquelle un ensemble d’agents peuvent se réunir et partager des applications et des documents. Il est ainsi possible de réaliser facilement de nombreuses applications distribuéees: chat, partage de documents, jeux distribués, etc..

Le logiciel Warbot, réalisé sous MadKit est un système de simulation de combats entre agents. Ce système est utilisé dans le cadre du module SMA du DEA d'informatique de Montpellier (page web: http://www.lirmm.fr/~ferber/DEA/)

Chaque "robot" dans Warbot est divisé en deux: une partie 'corps' qui est prédéfinie et qu'on ne peut pas modifier, et une partie 'tête' qu'il s'agit de modifier pour que son équipe de robots gagne. Le travail porte essentiellement sur les techniques de coopération que l'on peut implémenter sachant que les robots n'ont qu'une vue très partielle et très locale de leur environnement (ils n'ont pas accès à l'état global du jeu, mais seulement à leurs perceptions locales ainsi qu'aux messages des autres agents).

Travail à fairedans le cadre du TER

Le sujet porte sur la conception et la réalisation d'un langage "auteur" pour Warbot. Il s'agit de pouvoir programmer facilement des comportements d'agents à partir d'un éditeur de comportements, ainsi que de fournir un environnement avec lequel il soit facile de construire ses propres unités et son environnement de test de "batailles" entre robots.

Pour la réalisation du langage auteur, on s'insipera du système eToy réalisé en Squeak (Smalltalk) et disponible sur http://www.SqueakLand.org/.

d'un ensemble de jeux distribués sous MadKit. Il s'agira de développer la partie distribuée de jeux classiques et simples (type bomberman, etc..) de manière à pouvoir jouer à plusieurs et en mode distribué avec MadKit.

On reprendra des sources de jeux existants (il en existe de nombreux en Java sur Internet) et de les rendre distribué en définissant la partie interaction.