GithubHelp home page GithubHelp logo

nikp06 / icyai Goto Github PK

View Code? Open in Web Editor NEW
34.0 2.0 3.0 21.46 MB

Gym for training an AI to learn Icy Tower through neuroevolution

License: MIT License

Python 100.00%
artificial-intelligence reinforcement-learning machine-learning neural-network genetic-algorithm game

icyai's Introduction

About IcyAI

Hello Internet! Welcome to icyAI - a project for which I recreated the game Icy Tower in Python with Pygame and built an AI that learns how to play it - here you can do so to.

Thumbnail

Click here, to see what I did in this project on YouTube.

Download the full project on itch.io (only Windows for now/I would appreciate someone making a mac or linux build and sending it to me :P -> I used pyinstaller on my windows machine).

I made use of a genetic algorithm called NEAT. NEAT evolves neural network topologies through neuroevolution. It is a known method from the domain of reinforcement learning. The concept is further explained in the video. You can also read the initial NEAT paper or browse through the NEAT documentation. This repository contains all files needed to train the AI for yourself.

AI during training

Description

This repository contains everything you need to play the game for yourself or to train your own Icy Tower AI. Feel free to play around with the configuration file. Maybe you'll find a way to make the AI learn even more complex behavior. I'd be curious to know about it in case you do.

How to use

  1. For starting the game:
py icyAI.py
  1. Choose a screen-size (large is recommended, others might change physics of the game)

  2. Simply navigate through the menu:

    • PLAY - play for yourself
    • TRAIN AI - train a new AI and specify how many generations
    • LET AI PLAY - choose a trained model and let the AI play and specify how many runs
    • HUMAN VS. AI - choose a trained model and play against this trained AI menu
  3. Enjoy the game and music, play around with the configuration file, experiment with parameters, analyze the statistics, speed up the simulation

Fitness Stats Speciation Stats Neural Network

Requirements and modules

  • python 3
  • pygame
  • pickle
  • neat
  • sys
  • os
  • numpy
  • tkinter
  • random
  • glob
  • visualize
  • re
  • shutil
  • time

icyai's People

Contributors

nikp06 avatar

Stargazers

 avatar  avatar Igor Santarek avatar Oren Gurevitch avatar  avatar Yarin Benyamin avatar Milan Milivojčević avatar Stanislav Yordanov avatar Ziganshina Alfiya avatar  avatar  avatar ganyariya avatar Pablo avatar  avatar Hung Le  avatar  avatar Brad Pillow avatar András Fülöp avatar Joohun, Maeng avatar  avatar  avatar Emil Titus avatar Raimon Grau avatar  avatar Easton Potokar avatar Pierre Haufe avatar Johan Blåbäck avatar James Veitch avatar  avatar Mattias Ekman  avatar  avatar  avatar  avatar HETHAT Mohamed avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.