xviniette / flappylearning Goto Github PK
View Code? Open in Web Editor NEWProgram learning to play Flappy Bird by machine learning (Neuroevolution)
Home Page: http://xviniette.github.io/FlappyLearning/
License: MIT License
Program learning to play Flappy Bird by machine learning (Neuroevolution)
Home Page: http://xviniette.github.io/FlappyLearning/
License: MIT License
Option I'm working on to kill the current generation and start again.
What is perception structure? How it works? What are these paramentres doing?
What is the deciding factor for selecting the best breed? Is it the amount of flaps or maxscore?
If you would add the difference in height of all the pipes as deciding factor, I think it would select better breeds faster ( not sure)
If you change this, can you add the commit here please? I'm an noob in machine learning, but this has got me excited
The formatting seem to have messed up during the pull request/merge for #22. Lines are not correctly indented.
It appears fine on my computer. I can look into it in the next few days.
Please pick a license for your project, thanks :)
Appreciate this excellent work. I got a lot of inspiration from this work.
I have achieved to train an AI for a more difficult version flappy bird: the horizontal distance between adjacent pipes and the gap between up and down pipes are random within a certain range rather than being fixed. Instead of neural networks,I use evolutionary strategies and Cartesian genetic programming, which attempts to build the control function (a math expression) directly using only basic arithmetic operators. With a small population of size 10, the bird can learn to fly quite well in typically less than 50 generations, which seems to be much more efficient than simple neuron evolution.
I implement this algorithm with Python and pygame. For those who are interested, please check my GitHub repository. A demo is here.
The page should load and work without many problems when offline.
With SWs you can save the state of the game, stats, preventing to reset everything when the tab is closed.
I know you linked to the article regarding the algorithm but it would be useful to have a walk-through (high-level) of what the Neuroevolution is doing in the case of this game.
For example, talking about what the inputs are (location on screen?) and what the outputs are (go up, or down).
Thank you, great example.
Neuroevolution.js>line 203:
var n = JSON.parse(JSON.stringify(this.genomes[0].network));
may be this?
var n = JSON.parse(JSON.stringify(this.genomes[i].network));
@xviniette
Project should have speed setting of "X10". Because once i was showing it took a lot of time to reach a good perfection level.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.