All Projects → vivek3141 → Super Mario Neat

vivek3141 / Super Mario Neat

Licence: mit
This program evolves an AI using the NEAT algorithm to play Super Mario Bros.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Super Mario Neat

Evolutionary Algorithm
Evolutionary Algorithm using Python, 莫烦Python 中文AI教学
Stars: ✭ 881 (+1276.56%)
Mutual labels:  genetic-algorithm, neuroevolution
Aimandshoot
A neuroevolution game experiment.
Stars: ✭ 201 (+214.06%)
Mutual labels:  genetic-algorithm, neuroevolution
Cephalopods
Evolving squids through neuroevolution
Stars: ✭ 122 (+90.63%)
Mutual labels:  genetic-algorithm, neuroevolution
Radiate
Radiate is a parallel genetic programming engine capable of evolving solutions to many problems as well as training learning algorithms.
Stars: ✭ 65 (+1.56%)
Mutual labels:  genetic-algorithm, neuroevolution
es pytorch
High performance implementation of Deep neuroevolution in pytorch using mpi4py. Intended for use on HPC clusters
Stars: ✭ 20 (-68.75%)
Mutual labels:  neuroevolution, gym
Machine Learning Flappy Bird
Machine Learning for Flappy Bird using Neural Network and Genetic Algorithm
Stars: ✭ 1,683 (+2529.69%)
Mutual labels:  genetic-algorithm, neuroevolution
Evolutionsimulator
Evolution Simulator with Box2D
Stars: ✭ 143 (+123.44%)
Mutual labels:  genetic-algorithm, neuroevolution
Neural Network P5
Deprecated! See:
Stars: ✭ 218 (+240.63%)
Mutual labels:  genetic-algorithm, neuroevolution
Neatron
Yet another NEAT implementation
Stars: ✭ 14 (-78.12%)
Mutual labels:  genetic-algorithm, neuroevolution
neuro-evolution
A project on improving Neural Networks performance by using Genetic Algorithms.
Stars: ✭ 25 (-60.94%)
Mutual labels:  genetic-algorithm, neuroevolution
NeuroEvolution-Flappy-Bird
A comparison between humans, neuroevolution and multilayer perceptrons playing Flapy Bird implemented in Python
Stars: ✭ 17 (-73.44%)
Mutual labels:  genetic-algorithm, neuroevolution
DeepHyperNEAT
A public python implementation of the DeepHyperNEAT system for evolving neural networks. Developed by Felix Sosa and Kenneth Stanley. See paper here: https://eplex.cs.ucf.edu/papers/sosa_ugrad_report18.pdf
Stars: ✭ 42 (-34.37%)
Mutual labels:  genetic-algorithm, neuroevolution
NEATEST
NEATEST: Evolving Neural Networks Through Augmenting Topologies with Evolution Strategy Training
Stars: ✭ 13 (-79.69%)
Mutual labels:  genetic-algorithm, neuroevolution
Csb Ai Starter
Starter Bot for Codingame's Coders Strike Back AI Challenge (Simulation Engine + Random Search)
Stars: ✭ 32 (-50%)
Mutual labels:  genetic-algorithm
Emoji Art Generator
Use a genetic algorithm to evolve an image by putting emojies on a canvas
Stars: ✭ 53 (-17.19%)
Mutual labels:  genetic-algorithm
Drlkit
A High Level Python Deep Reinforcement Learning library. Great for beginners, prototyping and quickly comparing algorithms
Stars: ✭ 29 (-54.69%)
Mutual labels:  gym
Watchcarslearn
Self driving cars using NEAT
Stars: ✭ 59 (-7.81%)
Mutual labels:  genetic-algorithm
Influx Crypto Trader
Node js trading bot, let you create trading strategy and run it (backtest/simulation/live)
Stars: ✭ 49 (-23.44%)
Mutual labels:  genetic-algorithm
Ai Programmer
Using artificial intelligence and genetic algorithms to automatically write programs. Tutorial: http://www.primaryobjects.com/cms/article149
Stars: ✭ 948 (+1381.25%)
Mutual labels:  genetic-algorithm
Rl algos
Reinforcement Learning Algorithms
Stars: ✭ 14 (-78.12%)
Mutual labels:  gym

Super Mario NEAT

This program uses the NEAT algorithm to evolve a Neural Network to play the original Super Mario Bros.

Requirements

You can install the requirements by running

sudo apt install fceux
python3 -m pip install -r requirements.txt

Or if on windows, run

python3 -m pip install -r requirements.txt
  • Make sure you have FCEUX downloaded and added to PATH

Training

The finisher.pkl file contains the best genome on generation 2284. In ./Files, you can find the backup for generation 2284, and the backup for generation 2492, which is where I stopped training.

You can continue training by running

python3 main.py cont_train --gen <num_generations> --file <file>

Running

To run the finisher.pkl file, run

python3 main.py run

or run

python3 run.py

If you want to run a different file, run

python3 main.py run --file <file_name>

Config

For debugging values, you can change any of the values in the config file. Note that you have to train from the 1st generation for some to take effect.
To use a different config file when training, specify --config <config file> when running main.py.

Multiprocessing

This program uses the build in python module multiprocessing, which is used for parallel computing. You can adjust the amount of genomes to run at once by specifying --parallel <num_of_genomes> when running main.py.

Levels

The default level is World 1, Level 1. This can be changed by specifying --level <level> when running main.py. For example,
python3 main.py train --gen 100 --level "1-1" will use 1-1.

Result

The finisher.pkl file is trained to complete 1-1. It can complete it around 50% of the time. The run.py file keeps running the simulation until it completes the level. Ctrl + C will stop it.


Additional Information

The Wiki contains more information regarding the specifics of implementing certain parts.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].