Soutenance de la deuxième semaine

Planning prévisionnel 27/06

planning


 

Présentation générale du jeu

 

L'objectif principal de cette semaine était de réaliser un jeu utilisant une intelligence artificielle basé sur l'apprentissage par renforcement, en reprenant les acquis de la semaine précédente.

On a décidé de réaliser un jeu dans lequel une IA doit trouver une sortie dans un labyrinthe.

La première étape était de réaliser les éléments de game design.

croquis

Premier Croquis du labyrinthe

labyrinthe

Labyrinthe final du jeu

 

Les assets principaux du jeu sont les suivants :

Chevalier

Le chevalier devant trouver une sortie

Mimic

Les coffres piégés "mimics" retirant des points au chevalier

 

Les règles sont les suivantes : l'objectif du chevalier est de trouver une des sorties en un nombre limité de déplacements possibles.

Son chemin est semé d'embuche puisque dans le labyrinthe se trouve des coffres piégés, qui, lorsqu'il en rencontre un, perd des points dans son score final. De même, rencontrer un mur lui fait perdre des points.

2 sorties sont possibles, l'une rapporte plus de points que l'autre.


Apprentissage par renforcement

 

Pour le développement de notre IA, nous avons décidé d'utiliser pour le choix d'action l'algorithme "ε-greedy".

L'apprentissage de la qualité des actions sera réalisé à partir de l'algorithme du "Q-learning".

 

Premier apprentissage

Au premier tour, l'IA réalise les actions de manière équiprobable

 

Milieu de l'apprentissage

Avancement de l'IA au bout de quelques milliers de tentatives

 

Premier apprentissage

Chemin que prend l'IA une fois qu'il a fini son apprentissage

 

statistiques


Fonctionnalités du jeu

 

J et O permettent de laisser la main au joueur / à l'ordinateur.

D et F permettent d'enlever ou de remettre l'affichage du jeu afin d'obtenir un apprentissage plus rapide.

R permet de réinitialiser un tour.

C permet de charger la matrice Q décrite dans le deuxième fichier en paramètre en mode exploitation.

La matrice Q est sauvegardée à chaque fin de tour dans le premier fichier en argument.

Des statistiques des performances de l'IA sont sauvegardé dans le 3ème fichier en argument.