Skip to content

MissawB/Flappy_Bird_RL_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flappy Bird Reinforcement Learning (NEAT)

Building AI course project

Summary

Ce projet utilise l'algorithme NEAT (NeuroEvolution of Augmenting Topologies) pour entraîner une intelligence artificielle à maîtriser Flappy Bird. À travers des générations successives, le réseau de neurones évolue pour maximiser sa survie et son score en évitant les obstacles.

Background

  • Problème : Comment une IA peut-elle apprendre à naviguer dans un environnement dynamique avec des récompenses simples ?
  • Motivation : Passionné par l'univers du jeu vidéo (comme l'illustre ce paysage de génération procédurale), je voulais comprendre comment l'évolution biologique peut être simulée par le code.

Minecraft Landscape

Data sources and AI methods

L'IA génère ses propres données via la simulation. Elle analyse l'environnement en temps réel pour prendre des décisions.

  • Méthode : NeuroEvolution of Augmenting Topologies (NEAT).
  • API de données : Pour des projets futurs, l'intégration d'API sociales comme Twitter pourrait permettre de partager les scores.

Twitter Logo

How is it used?

L'utilisateur lance l'entraînement et observe les oiseaux évoluer. L'IA doit calculer sa trajectoire en fonction de la position des tuyaux ci-dessous :

Flappy Pipe

Challenges

  • Limites : Le modèle ne gère pas encore les changements de vitesse du jeu.
  • Éthique : L'automatisation des jeux pose la question de l'intégrité dans les classements en ligne.

What next?

Ajouter une interface web pour permettre à d'autres utilisateurs de tester leurs propres configurations NEAT.

Acknowledgments

  • Algorithme NEAT par Kenneth Stanley.
  • Assets de jeu inspirés de l'original.

Guide Technique (Installation & Utilisation)

Installation

  1. Cloner le projet :

    git clone https://github.com/votre-username/Flappy_Bird_RL_Project.git
    cd Flappy_Bird_RL_Project
  2. Installer les dépendances :

    pip install -r requirements.txt
  3. Installer Graphviz (Optionnel - pour la visualisation) : Pour générer les graphiques du réseau de neurones, vous devez installer Graphviz sur votre système et l'ajouter à votre variable d'environnement PATH.

Utilisation

1. Lancer l'entraînement

Pour entraîner l'IA, exécutez le script principal :

python main.py

Cela lancera la simulation et sauvegardera le meilleur génome dans winner.pkl après 10 générations (modifiable dans main.py).

2. Rejouer le meilleur spécimen

Si vous avez déjà un fichier winner.pkl, vous pouvez voir l'IA en action :

python replay.py

3. Visualiser le réseau de neurones

Pour générer une image du réseau de neurones du gagnant :

python visualize.py

Structure du projet

  • main.py : Point d'entrée pour l'entraînement (à la racine).
  • src/ : Code source de la logique du jeu.
    • bird.py : Logique de l'oiseau.
    • pipe.py : Logique des tuyaux.
    • genealogy.py : Suivi de la généalogie.
  • scripts/ : Outils utilitaires.
    • replay.py : Rejouer le meilleur modèle.
    • visualize.py : Visualisation du réseau de neurones.
  • config-feedforward.txt : Configuration NEAT.
  • images/ : Ressources graphiques.
  • outputs/ : Résultats de l'IA (génomes sauvegardés, graphiques).

About

Implémentation du NeuroEvolution of Augmenting Topologies (NEAT) sur Flappy Bird avec Python & Pygame. Visualisation de l'évolution des structures neuronales et sauvegarde des meilleurs modèles (winner.pkl)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages