FastAI learns to play Fall Guys - Undetectable Fall Guys bot.
HTML-код
- Опубликовано: 23 сен 2020
- I used the very powerful FastAI library with Python to play Fall Guys and qualify over human players. These AI bots are fun and easy to code with FastAI and undetectable by anti-cheat efforts. Join us and share this video to stop these bots!
Want to chat with me and other programmers join our discord!
/ discord
Code: github.com/ClarityCoders/Fall...
@Code Bullet
@howardjeremyp - Наука
Nice work!, I love this type of videos where someone use Ai algorithms to turn dump computer into super clever computer,
I Hope you proceed uploading
this type of video♥️
I got some others in the works already.
@@ClarityCoders Waiting...
gerge
does this work
It's so smart that it tried to glitch thorough the walls
Cheaters gotta cheat.
Your picture fits nicely :p
thorough
It has no idea how to do that since the training data is based on OP's games and he did not glitch through walls (I am assuming)... AIs that learn weird behaviors like that are usually based on evolutionary algorithms - you must have the simulation environment to do a "selective breeding" of AIs that perform well...
Boku wa doctorrr Tony Tony Chopper
Came from r/python and I just have to stay your very underrated, you have earned a sub
Awesome so glad you watched! The sub means a lot thank you.
Wow, he got recommended to me!
Agreed
You'd probably gain a lot by giving the model some temporal context. Instead of passing in only the current frame, you could stack the current and previous frames depth-wise for an input shape of (224, 224, 2).
This extra information would give vital information about the direction and velocity of everything in the scene, and wouldn't require any significant changes to the model.
would we pass it through a lstm layer?
@@YashSingh-rf7nk It wouldn't be necessary, by using two frames you're already adding velocity information. An LSTM would help, but adds to the complexity of training.
Oh why did you have to remember me that GPU training used to be free on colab
A lot of fun to be had there and time wasted 😂
Is it no longer free. I know there's pro version as well
What happened? I can still access GPUs and TPUs for free here...
@@israelRaizer complaining about the free usage limits i assume
@@something4922 but the guy said it "was" free, as if you had to pay to use it now
Awesome ! Love how it seems simple to train (just record the screen), and yet performs "ok", didn't know it was "that easy" to train a ML model. I feel like you can supervize 10 of these IAs and help them when they struggle, but you could never play 10game at the same time. Very nice for job automation or whatever
This is one of the most entertaining as well as educational video I've seen in a while and now I can't wait to check all your videos out. Nice job I'm sure you're gonna blow up one day with content as good as this 👍
Thank you that's very nice of you to say. I'm just happy anyone is enjoying the videos!
This is when your mom says put game on pause but you can't cause it's online game and you turning on AI
Haha bathroom break.
“The plan is simple” Ludwigs in my head
Alright boys so
This is a super high quality video! Great editing, and it's super informative! 😁
Thanks it honestly means a lot. I'm just glad people enjoy watching!
Interesting. I think just using past 4-5 images as input would improve it a lot as it will have the information of how objects are moving as well. Keep it up!
I agree 100%. Thank you for watching and commenting.
A massive thank you for putting this video out there! I hadn't considered using AI before, and after watching this, I decided to dabble in creating my own AI to play a completely different game and experimented with using different code. Really helpful
Had this idea too a few days ago. However I never would have thought it would be so "easy" to make in terms of AI models/techniques. Great job dude!
Easy to prove the concept and have some success. You do run into some road block on the harder levels with camera issues. Might take this on in another video.
Awesome video! Let's see you get a crown in another video!
Challenge accepted
@@ClarityCoders challenge dropped apparently
Wow this is really cool!
I'm surprised it doesn't have more views
I'm happy it got this many haha... Thanks for watching.
Nice demo of picking a simplified framing of the problem and getting a proof of concept quickly! Great project :)
Thanks for watching!
Thoroughly impressed by how you framed such a complex task into a classification problem! When I saw the thumbnail, I thought you’d be coding up some reinforcement learning stuff. Subbed!
Because there is a such thing of frameworks.
For sure!
its called imitation learning if U want to learn more
When people make an AI to beat a game it's no longer cheating it's art.
Untill cheaters start using the AI together with cheats and ruin the game
Tell that to the TF2 community, I'm sure they'll agree
@@Emeraldym personally i find it unlikely that somoane capable of coding AI and who took the time to do it, would wast his time using it to have am unfair advantage in game. Most cheater use tool they haven't made and barelly understand how they work real programmer d'ont waste their time trying to cheat in video game. i did my own runescape-bot once to have it mine, forge, and sell automatically when i was gone, and i d'ont consider this cheating for multiple reason one of them being that it get borring quick so i stop using it soon after. The other is that it's almost more work to make the programe then do9ng it yourself. And the programe did not have any advantage to other player it played just like i did but automatically. Other then that the other programme i made where on single player game because when you CAN code stuff like that your self you d'ont feel the need to use it to have an advantage in game which are just for fun.
@@JasonGrace69 they use actuall AI to cheat in Team Fortress? IMPRESSIVE what advantage does it have over traditional cheating methode like aim bot ?
@@Emeraldym yeah until then.
Fantastic video! Was thinking of doing something like this before and never figured out how, this vid helped a ton!
Glad I could help!
What awesome project! I would appreciate if you do some follow up videos on this project. You could train it using more and better data (say only of your winning games) and maybe using deeper ResNet architectures or maybe using grey scale images (these edge images are a bit too simple approach imo).
This is a very good idea and something I have been playing around with a bit.
its not just simple, its more complex than using greyscale and its bad
Woah, I’m surprised you got any results with such unstructured data. Neat!
Stupid project but cool haha...
8:38 "we at least know we're headed in the right direction" unlike that random agent... ^^
It’s nice of you to try and help prevent these kind of hackings things, good work!
A sub is a must for your channel. Keep up the good work. We need you to make these kind of fun videos of AI playing simple games.
opencv could easily be used to make it recognize the levels! Great work, love it.
Nice work! I also had a long lasting idea to make similar aganets for games, and such videos as this one give me a big impetus and inspiration to finally dive into this :)
Excellent !! Please do keep us posted and make a video about the progress after training it around for 60 games. I am very excited to see the final results.
Thanks for watching and commenting! I will try and post an update.
Amazing stuff! Sharing this with work mates
Thanks for watching i really appreciate it!
0:37 BOYS THE PLAN IS SIMPLE
Haha should that be my catch phrase?
Keep this up.. Just keep uploading and your channel will grow.
I love your simple and elegant solution.
Thanks this comment means a lot. I'll keep on making videos!
It would be really cool to see the continuation of this
dude ur a legend for this! thank you.
Good job !! I'm doing a similar thing on my channel, for a racing game (Trackmania), but I'm using feature extraction and a simple NN, instead of a CNN. I didn't think it could work in Fall guys, impressive !
You interested in teaming up for a video?
@@ClarityCoders I'd like to continue my AI project for now, but maybe later !
Yosh I would really like to connect to ask you a few quick questions on your projects. I sent you a discord request to add as a friend would that be the best way to chat? I tried to message but we need to be friends first or share a server.
i'd love to see an unsupervised learner do this
I am a newbie but is that even possible I have only seen CodeBullet's videos which most if not all are unsupervised. Though he would have to make the game first in order for it to have that amount of time to learn.
@@qassem121 reinforcement learning RL is a method where the agent learns from its environment, in most cases an environment is easiest when you have your own simulation.
@@froozynoobfan Almost: RL is a ML paradigm alongside unsupervised and supervised :)
Don't GAN and VAE count as unsupervised?
@@revimfadli4666 for a GAN you still need labeled data to train your classifier
This was great, thanks for the inspiration!
Thanks for watching and commenting it means a lot.
Such a great explanation! I even don't know python basics but I am watching this ;)
Thanks for watching and commenting it means a lot.
Awesome video! Found it interesting that a resnet could be somewhat effective at this task. Of course for optimal results some kindve recurrent network will need to be used to encode contextual data from frame to frame.
Also your approach of simplifying the images makes sense but it would be nice to see more data retained. Canny edge detection algorithm should retain more of the edge information.
This is so good! Imagine if there was some way to use the positions, velocities and hitboxes of relevant objects as input. Would probably take some serious reverse engineering though
New fan here sir ! I love the way you explain everything. ❤️
Welcome!
Damn sooooo underrated keep up the gud work earned a sub :D
Thank you! I appreciate the sub and comment.
Ngl I want to see the ai footage. Always interesting
thanks for watching!
@@ClarityCoders Stream it 24 hours on twitch lol that kind of thing always seems exciting
Hi, what an entertaining work. I am wondering FastAI does automatically balances each class image weight for result or not? I can see from the confusion matrix that the nothing action is ~10 times bigger than other groups. Because if not, then balancing classes magnitude could make result way more efficient. (Artificially enlarging small action datasets and reducing huge datasets.)
Yes, fastAI does a lot of magic in the background
Yeah they make it crazy easy to spin something up. You can dig in and customize everything but out of the box it gets you running.
Thought reinforcement learning from the title. OMG just CNN! good job
Yeah I have some reinforcement videos but this was a fun simple CNN project.
@@ClarityCoders good. I am a fan of fastai too.
Absolutely love the channel, I used to play a game when I was a kid (Wakfu) and I was wondering if you could make a video on it about farming, it shouldn’t be too complicated but sometimes when farming you’d encounter an AI to fight (fairly easy) but I’m wondering how you would tackle the problem with AI
I'll put it on my list to check out! Thanks for taking the time to comment.
I had more success memoizing the recent history as an input to a CNN & doing more feature detection for platforms, walls, and obstacles. I used mean-shift clustering to find moving obstacles and other players so that it would hopefully work on new maps as well.
That's awesome. You going to share that sh!t? Thanks for the view buddy.
Awesome video dude, you broke it down super well
Thanks I really appreciate it!
That was very entertaining! Congratulations!
Thank you.
nice job man i think training to play CSGO is worth a shot now. thanks for sharing the process.
I would love to see that go for it!
Can we get a part 2 and see how far this can go? Would like to see it win some games and get smoother.
this looks like a lot of fun and I plan on attempting this for a few games.
Awesome I hope you share it!
@@ClarityCoders if I can manage to start it XD I haven't coded in months and never tried AI before, of course there is your discord I may or may not ask a lot of questions
Fun video. Nicely explained, Liked and Subbed.
Thanks for the sub! Glad to have you around.
Amazing, Guy! Congratulations!
Thank you! Cheers!
Awesome video and great efforts!!!
Thanks a lot!
A better baseline would be to just take the most frequent action, or randomly sample actions at the frequency that you took them in your training data. I suspect that would do about as well as this nn is doing.
Very good point. Given more time and interest I would have gathered even more data and then balanced it better. Thanks for watching I appreciate it.
I agree, I also suspected, that the agent just learned the right random distribution. Also I did not see a confusion matrix for the test data. I think it unlikely that a agent in such a complex environment could be trained that easily.
Awesome stuff, subscribed!
Awesome, thank you!
I never use fast ai before. Wow that was really fast AI development. Just need to add more huge of data of a pro player to make the AI OP at the game
For sure ad the pro player haha
that was amazing. would love an in depth tutorial of the code
Thanks! That's a great idea. maybe the same concept on a game every has access to try?
@@ClarityCoders would be awesome
@@ClarityCoders You wouldnt believe how much of a poger u would be. There are virtually no in depth tutorials on how to make an ai to play games like this. It would be awesome.
@@drunkewok31
Um, Code Bullet does it all.
atleast were heading in the right direction when hes clearly running back to the start
Wait now it can qualify ... Can you make it so it records its own games and learn as a factor of his positionning ? Then make him able to run all by himself ... like 1 ...2 ... 10 runs at the same time ? Then if you leave it to learn maybe overnight it'll show you how much is possible with only there 3 entries
Plot twist: He's using Fast AI to reply to all the comments on this video.
Best would be to use a stream device linked to another computer or to another program at least - and train the AI to visually recognize different elements from the stream and make decisions from it - then send inputs back to the computer/game.
Fantastic work! Simple and proved your points well enough. You didn’t show how the AI agent controls the game though. Was it passing its output to WinAPI in order to stimulate the keystrokes and make the character moves?
Yes I posted the code in the description now if you want to check it out.
Okay that's creative. Replaced Reinforcement learning with CNNs 👏👏👏
Thanks! can probably create some interesting use cases.
That’s really cool how an AI can just teach it’s self how to play!
Thanks so much I really appreciate you taking the time to watch.
Hi, great work. You earned a sub. Question: how can I put games like these in some kind of simulator to play against itself so that I can run many simulations in a short amount of time?
Tough with a live game like this without the source code. That's why a lot of people doing AI on games rewrite the whole thing in their own code.
@@ClarityCoders sounds complicated... I wanted to try and train an AI bot for clash of clans by letting it play against itself and to have an AI bot that knows how to attack and one that knows how to build bases... Wishful thinking though.
The code in the git is crazy simple and intuitive, Im really impressed! how common is the usage of fastai in your experience? as someone who learns ML, are there any other libraries you can recommend?
FastAI for me is great for the quick setup and testing things out. if you want to get more detailed I'd learn pytorch. I have a setup tutorial!
@@ClarityCoders i was lucky enough to learn pytorch in a practical course, but it was a little lacking when it came to search for hyper parameters, and i've never heard of fastai before.
@@sdfrtyhfds awesome it will be easy for you to pickup then Google them they have a tutorial series.
i'm love fastAI!
I'm a huge fan of Jeremy and Rachael ... and yours, now @ClarityCoders
@@bobdylan9173 so far my highlight on youtube is him tweeting my video haha
This looks like a much more fun way to play Fall Guys than the regular method, for sure.
Haha These comments are cracking me up. Honestly when people ask why I didn't push this project forward it's because I was sick of playing. Thanks for watching buddy.
Just a question, I am truly interested into the normalization function you apply on your pictures, would you mind explaining how it works ?
Could you do more videos about fastAI an how to use it for different use cases?
Awesome🤩 I really want to learn Artificial Intelligence and ML but don't know where to start. Can you suggest me something?
Nice video! Did you try learning on RGB or even grey scale? I see no reason why it would be better to use edge features as input instead of the full RGB image, ResNets are powerful enough and its know that the first layers almost by default learn edge detectors.
Very good points I'll keep that in mind. My decision came because it seemed to learn quicker and ignore the patterns and distractions of the characters costumes and such.
@@ClarityCoders I see, training speed does seem like a good trade-off for a baseline.
Why did you change the image to grey scale and run edge detection on it? At 2:11 you say that the colours don't mean anything to the neural network, but this is not true since your pertrained ResNet18 was trained on natural colour images. Since the output size generated by the pertrained model is fixed at 512 irrespective of the complexity of the input image, I can not see any advantage to doing edge detection on the screenshots. Did you try training the network on the original screenshots before this and have an issue that motivated the move to doing edge detection?
I had this thought as well. Really don't understand the motivation here
The simpler methodology here would be to just plug the raw screenshots into the model without doing preprocessing on them, and see what happens. It is best to avoid premature optimization. Don't try to fix an issue until you have confirmed it exists.
When working in data science, it is best to get your first model working (going from input to output) and wait until you have this before seeing what needs to be improved. Then try out your ideas of what to change one at a time and see if they make an improvement on your criterion compared to the baseline.
In this case, I would expect that performing edge detection on the input images decreased the performance of the model. Doing so moved the inputs away from the training distribution for the pretrained ResNet18 model.
wow thank you !~~ like your vidoes
Finally get to see some implementations that is applied on the real game, not an improvised game developed for the purely AI purpose like most of the youtuber does.
It's way tougher to be honest. Thanks for the comment.
Awesome project! Good use of fastai, definitely going to try to build something like this now.
Got another FastAI video coming out in a week or so.... If you're interested hit that bell so you don't miss out.
very informative video! thank you
Thanks for watching and commenting. I really appreciate it.
I dont think detecting edges is necessary since the idea of DNN is to just feed (somewhat) raw data to it and it should find a function that maps input to output... Thats because using the edge detector you are skipping a learning step the NN would have to overcome, which is finding details in the image that may be useful in deciding whether to move left or right...
This is amazing! I get the colab bit but how do I create the training data?
There is a program in github that you run while playing.
@@ClarityCoders Hi, I saw that! I was wondering if it can record mouse movement and clicks aswell.
Did you do a confusion matrix on testing data?
Did you set the probabilities of your random baseline agent to match your data? For example just running and doing nothing else should have the highest probability. It did not seem like this was the case. So it is possible that you just learned the right random distribution.
Why don't you use Q-learning or other reinforcement learning methods. Your ground assumption that the action you performed is the right one leaves your agent lacking. Not including bad runs is understandable in your setting, but if you wanted to surpass your performance this would be counterproductive. I would recommend you to use a actor critic reinforcement learning agent. Or just a deep q agent.
Honestly because i wanted to show how you could build your own supervised learning data set on a game. The project was also a starting point not really and ending point a lot of things could be improved including gathering more data. I do have some other videos on reinforcement learning!
Commenting so this video does a little bit better, maybe someone gets inspiration from this video and decides to learn programming!!!
Thanks that means a lot! Let me know if you have any issues learning along the way.
Got it in my recommendations! Impressive work BTW.
Did you showcase it to the fast.ai community or by tagging Jeremy on Twitter?
Actually he found it and shared it on his Twitter when I released it! Very cool guy and a truly great teacher.
@@ClarityCoders Yes, indeed! Glad to know this :)
Would love to see ai bot playing among us and actually generating speech that can convince others that it's not the suspect.
Honestly a super cool idea. Not that far off either sense among us would have some processing time.
Same actually! I've never seen a bot actually play Among Us before, just spam bots that leave moments after they join.
From reddit here ^^
I didn't waste my time :D It was worth it
Thanks for checking it out! I got some more cool stuff coming soon stay tuned.
Love to see AI learn and I am an Agent X
Great idea and content.
Great video!
You made this a lot more complex than was necessary, simply have the ai copy the patterns of the fastest fall guys and replicate their inputs.
You would need to have access to that data as inputs. I didn't have any of their code so I couldn't use that...
Any plans to add re-inforcement learning to make it play fall guys, like AlphaZero , learning from the ground up? Would be fascinating to see something like that.
I would love to but.... need a bit more processing power than I have at the moment. 😂 If you guys keep watching maybe Nivida can hook a guy up.
Now that I see this program, I have a theory that Fast AI could be useful for more than just playing video games. This AI could also be useful for other applications, such as learning Calculus for example. It could also be used to make the code that you need in order to get 100% on your coding project too. I am working on a project that involves FastAI
How does this account for the different variations within each mode? Like on Hit Parade, the 2nd section can be the revolving doors that you need to push through, or the spinners that were shown at 9:39 where you can do a combination of avoiding and jumping over the bars.
I used a different model for each mode. with enough data you might be able to share models.
Yes, love it
Thanks!
Huh, so no need for camera control? Just 3 keys and hold forward, and edge detect for image processing, that's super smart and efficient, I wouldn't guess you could build an efficient player with just that.
Good note! That's why those 3 level were chosen because you don't need to mess with the camera. That would need to be addressed on the next version.
"The plan is simple" OMEGALUL
Please do a full tutorial on this pleeaaaasee
U need to set timer so the faster it wins - the better.
might try to reconfigure this to work with half life 2 one day
it actually qualified, nice :D
Nice work !
Thanks for watching and commenting Mikolaj.
Seriously underrated video
Thank you! Appreciate the comment/view.
cool!