Coding Challenge #100: Neuroevolution Flappy Bird - Part 3

preview_player
Показать описание


Other Parts of this Challenge:

References:

Videos:

Live Stream Archive:

Related Coding Challenges:

Timestamps:
0:00 Part 3 of Flappy Bird--More Improvements
0:56 Separate the game logic from the drawing
2:22 Add a slider to control the number of cycles
5:38 Mutate the fitness score by a random Gaussian number
7:09 Conclusion and possible ways to optimize the genetic algorithm

Editing by Mathieu Blanchette
Animations by Jason Heglund
Music from Epidemic Sound

#neuralnetwork #reinforcementlearning #geneticalgorithm #evolution #flappybird #javascript #p5js
Рекомендации по теме
Комментарии
Автор

Love your Coding Challenges! Keep up the great work!

GoldBlazer
Автор

Thanks for making all of these videos over the years. Your teaching style is great.

brs
Автор

please make a part 4 making it better and implementing the ideas that you talked about in this video. by the way, your teaching style

ShranjaniShukla
Автор

Oh wow you're making part 4, super cool! Can't wait ^__^ this mini-series is super awesome!!! Congratulations on training the birds!!!

EDIT: I'm a Python coder myself, and we have an easy GUI library called Kivy and obviously we have scikits for ML, so I wonder if I could re-implement something very basic like this! Challenge accepted! :-D

cheaterman
Автор

Is it possible to add training to the equation? Like training the next generation with the performed actions of the best birds from the previous generation, and then applying the mutation.
I'm loving this coding challenge btw :P

santiagonahmod
Автор

Currently doing the same project..
I gave like 6 inputs, 5 inputs that u explained and the sixth one was relative distance of pipe with respect to each other incase after crossing closest pipe bird should be prepared for next pipe.
And one bird evolved just after 1st generation and carried on for like 5 min.Seems like giving 6 or more inputs here is like just hard coding stuff and not letting AI stuff happen on its on.

prateek-yp
Автор

Regarding training with the raw pixels, even with multiple birds trying to learn I don't see why you couldn't draw the pipes, capture the pixels, send the array to reach bird, then draw the birds. After all, each bird knows where it is so doesn't need to see its location in the pixel array, and it also won't mistake the other birds as objects to avoid.

FlameStrykeShadowDark
Автор

Regarding pixels evaluation you could draw the pipes on one graphic element and the birds on another. That way you could have all the birds look at the pipe graphic to evaluate when to jump and you could draw the birds ontop without interfering.

Tomasu
Автор

I know nothing about coding yet but I think that is pretty interesting ! In few month or weeks I will probably start to learn c# (what you huys think about that ) so the machine you are creating is a machine that learn by testing and not a training to define the gravity of the game ? Basicly a robot that learn to better and better at the game ? 😃 coding seems so interesting ! But now i’m starting in 3d animation/modeling etc. So in the future i want to learn how to code !

bulittix
Автор

Can someone please help me in displaying a grid of multiple games playing, exactly what he was talking about @11:25


PLEASE!

cashdogg
Автор

Hey! Does anyone know how one could add crossover to this? I was looking at the matrix.js and nn.js codes and noticed there are distinct matrixes for inputs/hidden/outputs nodes. Should I crossover only the input nodes? I'll give it a try.

Guskiller
Автор

Hi Dan, do you have any plans to cover the Separating Axis Theorem at some point? It would be great to see your take on it if you were interested.

alterego
Автор

in my code almost 90% of them get destroy every generation consistently and it seam like to me that they are getting better that just get luck and find a good Strat sometimes and then all of them get destroyed right after any way to fix this?

ultra_nerd
Автор

Would the birds be any better off if you compensated for the width of the pipes too?

jkrigelman
Автор

What programing language and libraries can I use for typing and click automation any task I do on a mac?

hesohit
Автор

Hey guys please i have a question, i have been reading on Neuroevolution and read some parts saying Crossover and Mutation is important to avoid having stale generation without a variation but since mutation creates a variation itself can it(neuroevolution) be done without implementing crossover like in This Coding Train challenge?. Also how do you even crossover Weights from two Neural networks 😥😥😥

ThiefKingBakuraX
Автор

Well, I got started cloning this and I already have a question: your toy NN library, does it technically qualify as a regressor or a classifier? I think regressor but I'm not very good at this, please help hehe. Thanks!

cheaterman
Автор

Hi! Which mac/ macbook do you use? Should I get a macbook air spend the extra 300 dollars and get a pro without touchbar

anirudhbhardwaj
Автор

I don't know if I can just jump into the intelligence series without going through the nature of code part

cod-newbie
Автор

maby make a show nn in toy nn show a netowrk of a the node and the wait blue positive red negative thik strong none is zero then you can chow the best one or one you like one

olasoderlind