Les compétitions

Compétition Bot Contest 2017 lors de la plate-forme PFIA 2017 à Caen, du 4 au 6 juillet 2017

Bot Contest 2017

L’Association Française pour l’Intelligence Artificielle (AFIA) organise une compétition Intelligence Artificielle & Jeux Vidéo lors de la plate-forme PFIA 2017.

Traditionnellement, les compétitions d’IA et Jeu Vidéo évaluent la performance, avec comme objectif de jouer le mieux possible et d’obtenir le meilleur score. Le but de la présente compétition est de programmer le bot le plus crédible pour le jeu Unreal Tournament 2004 (UT2004). Le bot qui se confondra le plus parmi les joueurs humains sera le vainqueur de cette compétition et l’équipe (ou l’individu) à l’initiative de ce bot se verra attribuer un prix et un diplôme par l’association française d’intelligence artificielle (AFIA).

Le jeu utilisé pour la compétition sera basé sur une version modifiée du mode DeathMatch de UT2004. Cette version modifiée fournit une interface (appelée Gamebots) qui permet de contrôler des bots à partir d’un programme externe. Plusieurs modifications supplémentaires seront apportées pour la compétition. Par exemple, le chat sera désactivé (ce n’est pas une compétition de chatbot!).

Votre bot devra être capable de s’adapter aux différentes cartes du jeu et de fonctionner de façon autonome. Il ne fera pas parti d’une équipe mais jouera en solitaire; il n’y a donc pas besoin de prévoir des comportements de collaboration.

Pour participer aux qualifications, vous avez jusqu’au 10 juin 2017 pour créer un compte et déposer votre bot sur notre site internet. Si vous êtes qualifié, votre bot sera évalué lors des finales qui auront lieu à Caen du 4 au 6 juillet 2017. Les participants n’auront pas besoin de venir à Caen pour la compétition, en revanche, ils devront être en mesure de répondre à une interview (en visioconférence) le jeudi 6 au soir lors de la remise des prix.

Les trois finalistes de la compétition se partageront un prix d’une valeur minimale de 1500€. Ils recevront aussi un diplôme de la part de l’AFIA.

Cette compétition est ouverte à tous, seul ou en équipe. Nous invitons donc les chercheurs, étudiants, académiques, lycéens, ingénieurs, amateurs, industriels, et grand public à participer. Déclarez-nous déjà votre intention de participer, et n’hésitez pas à nous contacter pour toute information.

Comité d’organisation : Carole Adam, Florence Bannay, Cédric Buche, Cindy Even, Philippe Morignot, Sylvie Saget.
Contact et questions : competition@afia.asso.fr

Membre du jurys invité : Eddy Celestine, passionné de jeux vidéo (et de pleins d’autres trucs), travaille dans l’industrie du jeu vidéo depuis 15 ans environ. Il a commencé sa carrière comme testeur, puis Deployment Manager (entre la production et les équipes marketing et commercial), Key Account Manager, Business Developer EMEA. Aujourd’hui, il met ses connaissances aux services des autres par le biais d’Atlangames où il est l’un des 2 permanents depuis 3 ans.

Flyer BotContest2017

Nos Sponsors :

CERV LAb-STICC

Bot Contest 2017 – Développement

 Développement

Pour participer à la compétition, vous devrez développer un bot pour le jeu Unreal Tournament 2004 (UT2004) qui utilise l’interface GameBots2004. Vous pouvez développer votre programme en utilisant le language de programmation et l’IDE que vous souhaitez, tant que le programme utilise l’interface GameBots2004 et s’exécute sous Windows 10. Un IDE simple à utiliser est Pogamut.

La compétition utilisera la version de GameBots2004 qui est fournie avec Pogamut 3.7.0.

 

A. Si vous choisissez d’utiliser Pogamut, voici les étapes à suivre pour l’installation :

Avant de commencer l’installation il est recommandé de modifier les paramètres de contrôle de compte d’utilisateur en choisissant l’option « Ne jamais m’avertir ». Vous devrez redémarrer votre ordinateur.
A la fin de l’installation, n’oubliez pas de remettre le paramètre par défaut.
L’installation est expliquée dans cette vidéo :

Description des étapes d’installation :

  1. Java JDK 1.7

    • Vous pouvez télécharger le JDK à partir de cette page.
    • Dans les fichiers de l’installation, trouvez de dossier nommé bin. Ajoutez le chemin vers ce dossier (exemple : C:\Program Files\Java\jdk1.7.0_79\bin) à la variable d’environnement Path.
    • Créez une nouvelle variable d’environnement JAVA_HOME avec le chemin vers le dossier jdk (exemple : C:\Program Files\Java\jdk1.7.0_79).
  2. Maven

    • Récupérez l’archive zip (.zip) à partir de cette page.
    • Copiez les fichiers de l’archive dans un nouveau dossier comme par exemple : C:\Program Files\Maven)
    • Ajoutez le chemin vers le dossier bin (exemple : C:\Program Files\Maven\bin) dans la variable d’environnement Path.
  3. NetBeans 7.4

  4. Unreal Tournament 2004 (Editor’s choice edition)

    • Ce jeu est un FPS (jeu de tir à la première personne) qui est livré avec son propre langage de script : UnrealScript. Ceci permet de modifier le jeu très facilement.
    • Vous pouvez obtenir le jeu en ligne sur Steam ou GOG pour moins de 15€.
  5. Pogamut

    • Téléchargez le Pogamut UT2004 Installer 3.7.0 sur cette page.
    • Exécutez une invite de commandes en tant qu’administrateur et allez à l’endroit où se trouve le fichier téléchargé grâce à la commande cd.
    • Entrez la commande : java -jar nomdufichier.jar
    • Précédez à l’installation.
      ⚠ Décochez Maven puisqu’il a été installé précédemment. ⚠
    • Une fois l’installation terminée, vous pouvez exécuter NetBeans en tant qu’administrateur et attendez que le pluging soit ajouté.

 

B. Comment lancer un bot ?

Un tutoriel est disponible ici. Attention ce dernier n’est peut-être pas à jour.

  • Dans NetBeans, cliquez sur File puis New Project...
  • Choisissez Maven and Project from Archetype puis cliquez sur Next.
  • Une fois que les archétypes sont chargés, choisissez 00-empty-bot-archetype et cliquez sur Next.
  • Vous pouvez changer le nom et la localisation du projet si vous le souhaitez puis cliquez sur Finish.
  • S’il y a des problèmes dans le projet, fermez la fenêtre et effectuez un « Clean and build », ceci devrait corriger les erreurs.
  • Après un moment vous devriez obtenir un « BUILD SUCCESS ».
  • Il est maintenant temps d’exécuter votre Serveur. Une solution est de lancer le fichier .bat « startGamebotsDMServer.bat » situé dans votre installation de Pogamut (exemple : C:\Program Files\Pogamut – UT2004 Edition) ou dans le dossier « System » de votre installation d’UT2004 (C:\GOG Games\Unreal Tournament 2004\System).
    Vous pouvez aussi créer votre propre ficher .bat, (plus d’informations sont données ici). Ceci vous permet de lancer différentes cartes par exemple.
    Voici une liste de noms de cartes :

  • Dans NetBeans, allez sur l’onglet Services. Faite un clic droit sur UT2004 Servers et choisissez Add server.
  • Dans la propriété URI, mettez localhost et fermez la fenêtre.
  • Vous pouvez maintenant lancer votre projet (F6), ceci connectera votre bot au serveur.
  • Pour voir la carte du jeu dans NetBeans, vous pouvez effectuer un clic droit sur le serveur que vous avez ajouté puis cliquez sur Show Map.

 

C. Il est maintenant temps de développer votre propre bot !

  • Dans un premier temps nous vous invitons à étudier le code de la classe EmptyBot du projet 00-empty-bot-archetype. Vous pouvez consulter la documentation de la classe dont elle hérite : UT2004BotModuleController et suivre ce tutoriel.
  • Après avoir bien compris comment ce simple bot fonctionne, vous pouvez analyser les autres projets de l’archétype disponibles. Nous vous recommandons de suivre le tutoriel pour le01-responsive-bot-archetype et que vous appreniez à utiliser les modules pour les capteurs et commandes avec ce tutoriel : Chapter 10. Pogamut sensor and command modules – the basics .
  • La documentation de Pogamut est disponible ici et toutes les classes peuvent être trouvées sur cette page.

 

D. ⚠ Connecter votre bot à un serveur

Il est important que votre bot puisse se connecter à nimporte quel serveur en lui spécifiant une adresse IP et un port.
Si vous utilisez Pogamut, modifiez la fonction main de la façon suivante :

public class YourClass extends UT2004BotModuleController {

    [votre code ...]

    public static void main(String[] args) throws PogamutException {
        
        String host = "localhost";
        int port = 3000;

        if (args.length > 0)
        {
            host = args[0];
        }
        if (args.length > 1)
        {
            String customPort = args[1];
            try
            {
                port = Integer.parseInt(customPort);
            }
            catch (Exception e)
            {
                System.out.println("Invalid port. Expecting numeric. Resuming with default port: "+port);
            }
        }

        while (true)
        {
            try
            {
                UT2004BotRunner runner = new UT2004BotRunner(YourClass.class, "Nom_de_votre_Equipe", host, port);
                runner.setMain(true);
                runner.setLogLevel(Level.OFF);
                runner.startAgent();
                Thread.sleep(1500);
            }
            catch (ComponentCantStartException e)
            {
                Throwable cause = e.getCause();
                if (cause instanceof ConnectionException)
                {
                    System.out.println("Connection to server failed... retrying");
                    e.printStackTrace();
                }
                else if (cause instanceof BusStoppedInterruptedException)
                {
                    e.printStackTrace();
                    System.out.println("Aborting...");
                    break;
                }
                else
                {
                    e.printStackTrace();
                    System.out.println("Some other cause for ComponentCantStartException... retrying");
                }
            }
            catch (Exception e)
            {
                e.printStackTrace();
                System.out.println("Some other exception... retrying");
            }
        }
    }
}

E. Comment livrer votre bot ?

  • Avant de déposer votre bot, assurez-vous qu’il fonctionne correctement en dehors de NetBeans. Voici les étapes à suivre pour effectuer cette vérification :
    1. Builder le projet (avec les dépendances !)
      Changer la configuration de NetBeans en allant dans : File / Project Properties / Actions et sélectionez Build with Dependencies puis cliquer sur OK.
    2. Créer un dossier quelque part (le bureau par exemple).
    3. Dedans, y mettre le fichier nomdufichier.one-jar.jar ainsi que tous les fichiers dont le bot a besoin pour fonctionner (cf image).
    4. Modifier le fichier GameBots2004.ini dans le dossier System de l’installation de Unreal Tournament 2004 en remplaçant la ligne :
      bRandomPorts=False
      par :
      bRandomPorts=True
    5. Démarrer un Serveur (par exemple avec le fichier startGamebotsDMServer.bat du dossier System)
    6. Repérer le ligne :
      BotServerPort:XXXXX ControlServerPort:XXXXX ObservingServerPort:XXXXX
      Et copier la valeur de BotServerPort.
    7. Ouvrir une fenêtre de commande dans le dossier créer à l’étape 2
    8. Executer la commande :
      java -jar nomdufichier.one-jar.jar adresseIPduServer BotServerPort
      si le bot et le serveur tournent sur la même machine alors on a :
      java -jar nomdufichier.one-jar.jar 127.0.0.1 XXXXX
  • Pour déposer votre bot, il vous suffit de créer un compte puis de suivre les indications.

Bot Contest 2017 – F.A.Q.

F.A.Q.

Q1 – Quel mode de UT2004 est utilisé ?

Le DeathMatch mode sera utilisé pour la compétition.

Q2 – Les parties seront à combien de joueurs ?

Le nombre de joueurs par partie peut varier. Cependant, il n’y aura pas d’équipes donc pas de collaborations possibles, c’est chacun pour soi.

Q3 – Quelle carte sera utilisée pour la compétition ?

Votre bot devra jouer sur plusieurs cartes. Il doit donc être capable de s’adapter à l’environnement. Les cartes peuvent être des cartes présentes dans le jeu ou des cartes importées.

Q4 – L’adrenaline sera-t-elle disponible ?

Non, l’utilisation de l’adrénaline sera désactivée. Elle sera présente sur les cartes et pourra être ramassée mais ne pourra pas être utilisée.

Q5 – Faut-il avoir un meilleur score que l’adversaire ?

Nous ne prendrons pas en compte les scores de votre bot pour la compétition. Il ne s’agit pas de développer un bot performant mais un bot qui se confond avec les humains.

Q6 – Comment est-ce-que le bot sera observé ?

La compétition sera composée de plusieurs phases pouvant avoir des modes d’observation différents. Par exemple, les juges pourront évaluer les bots en jouant directement contre eux. Ils pourront aussi être spectateurs et observer les joueurs via différents points de vue.

N’hésitez pas à nous poser vos questions à l’adresse competition@afia.asso.fr.

Bot Contest 2017 – Résultats

Équipes inscrites

 

Equipes Membres Affiliations Qualifiés en finale Prix remportés Présentations
La Communauté de Nao Sebastien Vallet
Swan Blanc
Université de Savoie Mont-Blanc 2ème prix
A HUMAN GUY Paco Dupont
Rémi Sahl
Axel Chauvin
CERV 1er prix &
Prix coup de cœur du public
PDF
AOP Andreea-Oana Petac CERV 3ème prix PDF
Lepsis_Team Jean-Michel Auberlet
Nicolas Goureau
IFSTTAR PDF
Runners Jean-Baptiste Sarazin
Jeremy Romé
Romain Tardy
Hugo Mathieux
Université Paul Sabatier PDF
Bananium Arnaud Levaufre
Bastien Orivel
ENIB

L’AFIA lance un défi lors de la nuit de l’info 2016 : 1et 2 décembre 2016

La prochaine Nuit de l’info aura lieu les 1 et 2 décembre 2016, de 16h40 à 08h00. Le principe est très simple: Le jeudi 1, au coucher du Soleil, 16h40, en séance plénière: les organisateurs remettent un sujet (le même pour toute la France) aux participants. Les étudiants s’organisent en groupes (sur un ou plusieurs sites) : ils développent un projet (informatique, marketing, rédactionnel, …) tout en ciblant un ou plusieurs défis. Le vendredi 2, au lever du Soleil, 08h00, les développements sont figés. Le vendredi matin, pendant que les étudiants dorment des jurys se réunissent (un jury par défi) et examinent les travaux réalisés par les différentes équipes durant la nuit. Le défi que propose l’AFIA est décrit ci-dessous, pour les étudiants, n’hésitez pas à le relever, et pour les enseignants incitez vos étudiants à le tenter.

Défi : Mettez de l’intelligence dans votre moteur

Prix : Un chèque de 1000 euros et une invitation à présenter une démonstration lors de la compétition IA et Jeux Vidéos organisée par l’AFIA au cours de la plateforme PFIA 2017.

Défi : Vous mettez en œuvre une ou plusieurs méthodes d’Intelligence Artificielle (IA) dans votre projet et vous indiquez en quoi ces méthodes rendent votre réalisation plus performante ou pertinente. Vous pouvez faire appel à des techniques classiques, en cours de développement ou futuristes. L’équipe qui aura mis le plus en avant les avantages de l’utilisation de l’IA dans son projet remportera ce défi.

Éléments attendus/critères de notation :
– Une description des problématiques IA rencontrées dans votre projet,
– Une explication de l’intégration de l’IA dans votre application (vous pourrez décrire ce que vous avez réalisé qui relève de l’IA ou ce que vous auriez pu faire avec des outils d’IA existants ou imaginaires),
– Une analyse des avantages et inconvénients de cette intégration
Quatre notes permettront d’évaluer les systèmes : applicabilité/mise en œuvre, innovation, spectre couvert en IA, qualité des explications.

Comité d’organisation et Jury : Carole Adam, Patrick Albert, Florence Bannay, Cédric Buche, Thomas Guyet, Philippe Morignot, Bruno Patin, Sylvie Saget.
Contact Florence.Bannay[AT]irit.fr

Partenaire : L’Association Française pour l’Intelligence Artificielle (AFIA http://www.afia.asso.fr ) est la société savante consacrée à l’IA, qui fédère la communauté de l’IA francophone.
L’IA est un domaine multiforme qui regroupe des sujets aussi divers que le raisonnement, l’aide à la décision, l’ingénierie des connaissances, le traitement automatique de la langue, l’apprentissage, les systèmes multi-agents, pour n’en citer que quelques-uns…

PS: Si ce défi vous a plu, vous pourrez relever celui de la compétition Intelligence Artificielle et jeux vidéos (http://afia.asso.fr/2017/07/07/bot-contest-2017/) que l’AFIA organise lors de la plateforme PFIA 2017 du 3 au 7 juillet 2017 à Caen (https://pfia2017.greyc.fr/).

IA sur Robots 2016

La Compétition

L’Association française pour l’Intelligence Artificielle (AFIA http://www.afia.asso.fr) a organisé une compétition d’Intelligence Artificielle sur Robots lors de la conférence RFIA’16 à Clermont-Ferrand, entre le lundi 27 juin et le vendredi 2 juillet 2016. Si une compétition traditionnelle de robotique favorise l’intégration d’algorithmes liés aux capteurs et actuateurs au sein d’une plateforme unique (perception, décision, action, interaction), le but de la présente compétition a été de se focaliser sur l’intelligence des robots. Allier intelligence et robotique en ce que l’on pourrait appeler une intelligence embarquée.

La plateforme robotique imposée était les robots LEGO MINDSTORMS. Nous avons défini les modalités de la compétition, ainsi que les règles du jeu que les robots ont dû respecter (inspirées du jeu de plateau « robot ricochet »).

Les Equipes

Cette compétition était ouverte à toute personne intéressée par intégrer l’Intelligence Artificielle dans un support robotique : chercheurs, académiques, ingénieurs, industriels, étudiants, lycéens, amateurs et grand public.

Sept équipes ont participé, venant de Lille, Lyon, Toulouse, Clermont-Ferrand et Chambéry.

Le Jury

Le Jury, également Comité d’organisation, était composé de : Carole Adam, Florence Bannay, Cédric Buche, Christophe Debain, Cindy Even, Philippe Morignot, Sylvie Saget.

Les Résultats

Le premier jour de la compétition a été consacré aux essais dans l’arène réelle. Le deuxième jour fut consacré aux qualifications sur arène réduite et au concours sur les 3 niveaux : les robots d’une équipe, seuls, cartographient l’arène suffisamment pour aller à une destination fixée en rebondissant sur les obstacles (niveau 1) plusieurs équipes avec leurs robots sont sur le terrain et doivent cartographier l’arène sans destination, dès que 2 robots adverses se rencontrent, chacun donne à l’autre sa destination dans l’arène, et peut ensuite s’y rendre, toujours par rebond (niveaux 2 et 3).

robots

La compétition a donné lieu à un reportage sur France 3 Auvergne le premier jour et à la venue de plusieurs classes primaires de la région.

ia-sur-robots-2016

Nuit de l’Info 2015

Un défi pour la Nuit de l’info est une question ou un problème à relever lors de la réalisation d’une application dont on ne connaît le thème que le jour même (ou plutôt la nuit) de la « Nuit de l’info ».

La Compétition

Mettez de l’intelligence artificielle dans votre moteur. Vous mettez en œuvre une ou plusieurs méthodes d’Intelligence Artificielle (IA) dans votre projet et vous indiquez en quoi ces méthodes rendent votre réalisation plus performante ou pertinente. Vous pouvez faire appel à des techniques classiques, en cours de développement ou futuristes. L’équipe qui aura mis le plus en avant les avantages de l’utilisation de l’IA dans son projet remportera ce défi.

La récompense est un chèque de 1000 € assorti d’une invitation à présenter une démonstration lors de la compétition « IA sur Robots » organisée par l’AFIA au sein du congrès RFIA 2016 à Clermont-Ferrand.

Les Equipes

Le défi a été relevé durant la nuit de l’info du 3 au 4 décembre 2015, de 16h40 à 08h02. Parmi les 25 équipes qui s’étaient inscrites pour relever ce défi, 9 équipes ont envoyé des réponses : « #Les Tarkiflettes », « And his name is [JOHNCENA] », « Douglas Gang », « GRO-KLC », « Les 73 », « Pony God Master », « Segmintation Fault », « Syndicat Lunatique des Informaticiens Paresseux », et « Team du JEEJ ».

Le Jury

Le jury, composé de Carole Adam, Patrick Albert, Cindy Even, Thomas Guyet, Philippe Morignot, Bruno Patin, Sylvie Saget et Florence Bannay (coordinatrice), s’est réuni par visio-conférence le 4 décembre de 9h à 11h.

Les Résultats

La première place et la récompense furent attribuées à l’équipe « Team du JEEJ » dont l’application propose d’attribuer un centre de refuge à une personne dans le besoin ou à des bénévoles tels que les médecins disponibles pour agir sur place. Les techniques utilisées sont la classification supervisée de données, la mise en oeuvre d’un arbre de décision, l’analyse de la tonalité d’une phrase, et le calcul d’itinéraires. Le jury a tenu à souligner la qualité de ce projet tant sur le plan de la largeur du spectre couvert en IA que sur son applicabilité puisque le projet tourne sur différentes plateforme grâce aux techniques de responsive design. Le jury a également apprécié la qualité des explications fournies et la bonne utilisation de librairies standard existantes.

Le jury a classé en deuxième position l’équipe « Douglas Gang » qui a proposé une application capable de donner des conseils en réponse à des demandes orales. Cette application se base sur des techniques de reconnaissance de la parole et d’apprentissage automatique puisque les conseils appropriés auront été préalablement recueillis par apprentissage.

La troisième place a été attribuée à « Syndicat Lunatique des Informaticiens Paresseux » pour leur proposition d’une intelligence artificielle incarnée dans un robot humanoïde NAO. Leur application se base sur des techniques de reconnaissance de visage et reconnaissance de la parole. Elle permet d’envoyer des messages à des personnes appropriées et d’interroger oralement NAO afin d’obtenir les numéros de téléphone des services d’urgences.

nuit-de-l-info-2015