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.
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.
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.
- For starting the game:
py icyAI.py
-
Choose a screen-size (large is recommended, others might change physics of the game)
-
Simply navigate through the menu:
-
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 |
---|---|---|
![]() |
![]() |
![]() |
- python 3
- pygame
- pickle
- neat
- sys
- os
- numpy
- tkinter
- random
- glob
- visualize
- re
- shutil
- time