How an A.I. is Becoming the World's Best Pokemon Player

Поделиться
HTML-код
  • Опубликовано: 31 май 2024
  • Because sometimes you gotta spend a year turning a childhood interest into a personal computer science breakthrough…
    Learn more about the AI or watch it battle live at www.battlepredictor.com/FSAI
    OR battle it throughout this week yourself at play.pokemonshowdown.com and look for user “Future Sight AI”
    __
    References and Links:
    [01]: Possible Situations (a.k.a. State-Space Complexity) for different games
    - Tic Tac Toe, Othello, Go: project.dke.maastrichtunivers...
    - Checkers: webdocs.cs.ualberta.ca/~duane...
    - Chess: The two links above both solve for Chess, but provide conflicting numbers, so took the average of both
    - Connect 4: www.informatik.uni-trier.de/~f...
    - Pokemon: Calculated myself based on how many possible team combinations there are. The code and more detail is here: github.com/aed3/FSAI-Extras/t...
    [02]: Images
    - Type symbols sourced from bulbapedia.bulbagarden.net/ and animated 3D models from www.pkparaiso.com/espada_escu...
    - All originally from Pokemon Sword and Shield
    [03]: Chance to win for an NBA team from ESPN
    [04]: Pokemon Battle Predictor Links
    - Chrome and Edge: www.pokemonbattlepredictor.co...
    - Firefox: www.pokemonbattlepredictor.co...
    [05]: How Chess Playing AIs work - www.chess.com/article/view/ho...
    [06]: Pokemon Showdown GitHub Repo - github.com/smogon/Pokemon-Sho...
    [07]: Random Moves
    - I ran tests where during the AI’s runs, it would choose a random game to only click random moves. This happened 60 times and it won… 0 games.
    - That’s actually worse than it should be, and I go over it in more detail here: www.battlepredictor.com/FSAI/h...
    [08]: “Someone has Weather Ball”
    - “WBE Finals! Wolfey VS Cybertron” by WolfeyVGC: • WBE Finals! Wolfey VS ...
    - I kinda feel bad for taking that part out, so you can read what I would’ve said here: www.battlepredictor.com/FSAI/h...
    - This is also where the short gameplay clip in the intro comes from. One of many, many Easter Eggs…
    __
    Timestamps
    0:00 - Pokemon: More than Meets the Eye
    1:14 - Intro
    1:39 - Competitive Pokemon’s Depth
    2:51 - Answering Your Questions
    4:05 - Applying Machine Learning to Pokemon
    9:00 - Seeing a Battle’s Future
    14:00 - How the AI Did
    18:00 - Inverse Damage Calculation
    20:31 - Future Topics
    22:24 - Battle the AI!
    23:15 - Potential Applications
    23:36 - Kinda Arrogant, Kinda Accurate
    24:19 - Potential Applications
    __
    I started this channel for three reasons:
    1. Increase representation in the engineering community
    2. Improve at talking into a camera
    3. Include tasks I’m fine with putting less effort towards in the day (this video being an exception)
    Some of the goals are more far-fetched than others, but I’ll see what I can do.
  • НаукаНаука

Комментарии • 2,7 тыс.

  • @dangerbeans9639
    @dangerbeans9639 2 года назад +3129

    The fact that it plays to the opponents skill level means that you just made a competitive “play against AI” mode in Pokémon. That’s impressive.

    • @KinkajusRevenge
      @KinkajusRevenge 2 года назад +79

      If the AI is to improve, it should always play its best, and not adjust to skill level.

    • @tl1326
      @tl1326 2 года назад +383

      @@KinkajusRevenge
      with pokemon, a bad player can outplay a good player that over thinks or over estimating a player

    • @KinkajusRevenge
      @KinkajusRevenge 2 года назад +51

      @@tl1326 Yes, but i believe that in the long term, playing to the best move in a given situation wins more often than trying to underpredict a player

    • @lucaslbpo91
      @lucaslbpo91 2 года назад +9

      @@KinkajusRevenge but to properly do that the AI will need to see a lot more turns ahead than the current 3

    • @KinkajusRevenge
      @KinkajusRevenge 2 года назад +60

      @@lucaslbpo91not really. Pokemon is largely about tactics, and knowing your win condition. Prediction is only a small part of it. I doubt most players think more than a few moves ahead, since RNG and other factors change the board often.

  • @colisali5603
    @colisali5603 2 года назад +4062

    I laughed over landorus u-turn being no.1 prediction, AI already learned the essence of high-level play

    • @kylekiske_
      @kylekiske_ 2 года назад +188

      "high level play" being asleep at the wheel. sure.

    • @xav9992
      @xav9992 2 года назад +174

      @@kylekiske_ "high level play" spaning spore with amoongus

    • @ezla1663
      @ezla1663 2 года назад +68

      @@xav9992 Only in VGC, this is playing OU.

    • @litapd311
      @litapd311 2 года назад +59

      @@xav9992 when the ai is sus

    • @jamesflanagan6977
      @jamesflanagan6977 2 года назад +48

      @@kylekiske_ yeah, a lot of people (especially if they're tilted) will just play on autopilot. Leading something like a choice scarf Landorus Therian and clicking u-turn turn 1 is something that will often work out well for you It's like spamming a high damage move in a fighting game which is the mark of a noob rather than "high level play", you find something that works and just keep doing it. This is an important thing to identify when trying to improve. When you catch yourself going on autopilot the best thing you can do is slow down and try to force yourself to use more time per turn (temporarily). That is not to say you always need to spend a minute thinking through every turn, experience can help you off-load a lot of the processing so you can focus your conscious thought on tricky scenarios (and sometimes you can get in "the zone" where you can play super fast because even though you're not consciously thinking about each play you subconsciously are quickly following the correct logic).

  • @PositiveBlackSoul
    @PositiveBlackSoul 2 года назад +1683

    An AI that has a consistent ~50% winrate in all levels of play is honestly pretty cool.

    • @amberlee4536
      @amberlee4536 2 года назад +58

      It has a better winrate than I do

    • @Noobie2k7
      @Noobie2k7 2 года назад +156

      Yeah. It actually makes it the best kind of practice AI to put into a videogame. Since if there is always an average of 50% chance to win or lose regardless of your skill level it will always be a challenge and keep you learning and improving.

    • @HiImBeans
      @HiImBeans 2 года назад +9

      And that's on the weakest setting 😂

    • @meepmeep8875
      @meepmeep8875 2 года назад +6

      Such a perfect practice tool

    • @Lastremify
      @Lastremify 2 года назад +21

      Honestly speaking this is absolutely the golden opportunity! Even though it was not the creators intention having a computer that pushes a player no matter the skill level and both the player and the computer having an even chance at beating each other should be its own project. Modeling skill curves is damn hard and is some secret sauce!

  • @ZeroNumerous
    @ZeroNumerous 2 года назад +609

    Playing to the opponent's skill level is actually an incredible accidental creation. You've built an AI that, if it's pared down a bit, could be plugged into a pokemon game to provide an interesting opponent throughout the game.

    • @asterlofts1565
      @asterlofts1565 Год назад +41

      Honestly, I'm tired of NPCs that don't EVER switch their Pokemon until one of them faints and moves on to the next Pokemon they have... I'd like one or a few that at least have some "skill" and a solid strategy but no unfair to the player and it's challenging and rewarding to defeat them even they gradually increase the difficulty of the battles based on certain game conditions as you progress or do quests or something like that... It would be super interesting and cool and teaches you how to play for real like in Pokemon Showdown, for example!

    • @ireallyhatemakingupnamesfo1758
      @ireallyhatemakingupnamesfo1758 11 месяцев назад +4

      Lots of post games have something similar where the only way to get far is to have a competitively viable team

    • @ironboy3245
      @ironboy3245 9 месяцев назад +5

      Alternatively, slap it into smogon and let it rip

    • @jmlynr
      @jmlynr 8 месяцев назад +3

      @@asterlofts1565 Having read Chorocojo's Let's Play Pokemon Platinum, Barry seems to be a weirdly skilled NPC by the general standards of the series, not only switching out of unfavorable matchups, but punishing the player character for switching out through the use of the move Pursuit. While kind of a doofus in general, he's sort of an idiot savant when it comes to his chosen form of competition, like so many anime protagonists I guess.

    • @davidcardinal3654
      @davidcardinal3654 6 месяцев назад +1

      This is why I liked Pokémon black and white 2. The hard mode was decently difficult and made the second play through way more fun. Wish they would add hardmode to all Pokémon games

  • @LudikrisTV
    @LudikrisTV 2 года назад +267

    "I made an ai that plays at the skill level of its opponents" Dude, that is not easy. Every video game ever wouldn't mind having that ability for co op vs ai games.

    • @davideleoncini6246
      @davideleoncini6246 2 года назад +10

      It's not usable, the ai can do that because he know the opponent rating and what's usually used at that rating, it couldn't work in single player game

    • @kairotox
      @kairotox 2 года назад +47

      @@davideleoncini6246 Think league of legends. Every player has an elo rating. Their current co-op vs ai mode doesn't scale in difficulty though, any player better than bronze can easily defeat them. If they changed up their difficulty based on the elo of the players, that'd be a LOT better than the current implementation.

    • @davideleoncini6246
      @davideleoncini6246 2 года назад +7

      @@kairotox I was thinking about Pokemon story mode ahahah, Im with you in this though, it would be good

    • @Nintendilly
      @Nintendilly 2 года назад +18

      Technically it could be possible. If the ai was incorporated into the story mode it could just base it's level off of how many gym badges the trainer has, probably some other factors too like total number of wins or losses, total number of defeated trainer pokemon.. Definitely would love to see something like this in the main games, the story mode is way to easy

    • @davideleoncini6246
      @davideleoncini6246 2 года назад +6

      @@Nintendilly it wouldnt make a difference, a pokemon game should just give better pokemon to trainer and make them do moves that actually do something, thats all, youll have a difficult game for 90% of pokemon player.
      If you want to know why AI wouldnt make a noticeble pratical difference its because you cant make it choose the trainer team and level, thats all setup in advance, and even if you make it choose, you should give a small selection cause of type trainer that use only some type of pkmn.

  • @pokeaimMD
    @pokeaimMD 2 года назад +5613

    This is so sick

    • @TheThirdBuild
      @TheThirdBuild  2 года назад +717

      Why do I hear boss music...
      But seriously, your videos helped a lot in making this, so I'm glad you think it's cool!

    • @TheMonkeee
      @TheMonkeee 2 года назад +36

      Joey himself here :o

    • @JamesJones-ts5fl
      @JamesJones-ts5fl 2 года назад +201

      Joey vs FuturesightAI when?

    • @tomfoolery8238
      @tomfoolery8238 2 года назад +40

      Feature challenging the AI on your channel. Be a sick vid

    • @Flapjack3734
      @Flapjack3734 2 года назад +4

      J his name is…

  • @JosephCatrambone
    @JosephCatrambone 2 года назад +45

    Professional ML Engineer / Data Scientist here. You did amazing work. Some particular points that I think deserve commendation:
    1. Picking a language based on how well it fits the needs of the project. (Yeah, I'm a Python fanboy, but I think the call to use JS here was the right one for the reason you mentioned.)
    2. Being socially responsible with the code release -- thinking of cheaters making the game not fun.
    3. Making the model available to test by outsiders.
    So yup. I'm floored. Awesome work.

  • @Faherd
    @Faherd 2 года назад +1218

    17:45 “it has this weird limitation where it played to its opponent’s skill level”
    THATS SUCH A WHOLESOME LIMITATION THO 🥺

    • @Katharina-rp7iq
      @Katharina-rp7iq 2 года назад +129

      Fun to play against for anyone, giving a challenge but good win chance... that's the perfect opponent for anyone.

    • @ReyNico
      @ReyNico 2 года назад +50

      @@Katharina-rp7iq yeah it would be good as a built-in bot for the game. But, he wants it to be the best... That means wrecking everybody

    • @coreygarris9390
      @coreygarris9390 2 года назад +43

      Honestly, that seems like the next logical step. Over prediction is a thing.

    • @Smenchevieve
      @Smenchevieve 2 года назад +8

      I feel like a problem that may have led to this was only using the last used move as a parameter and not all the moves that have been used throughout the battle.

    • @jasonruff1270
      @jasonruff1270 2 года назад +1

      lol that emoji

  • @xotrovert
    @xotrovert 2 года назад +629

    Your chance of predicting whether a player will win is almost the same as stone edges chance of hitting. How poetic.

    •  2 года назад +17

      50%?

    • @cellP8
      @cellP8 2 года назад +18

      *stone miss :´)

    • @zachrowe6271
      @zachrowe6271 2 года назад +9

      Though the exact thing. That and focus blast

    • @pulkitjain2361
      @pulkitjain2361 2 года назад +11

      Nice 30%

    •  2 года назад +12

      @Zeta Then it is 50%.

  • @elirantuil5003
    @elirantuil5003 2 года назад +353

    "Multithreaded"
    "But he just said he did everything in javascri..... Oh, poor soul"

    • @illusion9423
      @illusion9423 2 года назад +1

      I didn't really understand it, can you explain?

    • @elirantuil5003
      @elirantuil5003 2 года назад +62

      @@illusion9423 there are languages that make it easier to use multithreading... And that is somewhat of an understatement.

    • @jenidu9642
      @jenidu9642 2 года назад

      @@elirantuil5003 do you mean like C++ or is it even easier in other languages?

    • @PabloRozario
      @PabloRozario 2 года назад +1

      @@jenidu9642 for multithreading yes

    • @jenidu9642
      @jenidu9642 2 года назад

      @@PabloRozario easier in C++ or other languages?

  • @SendFoodz
    @SendFoodz 2 года назад +118

    I'm blown away by this project.. and the AMAZING animations in this video..
    the production quality of this video is absolute top tier

  • @atraxian5881
    @atraxian5881 2 года назад +451

    I would love to see how it would fare with meme teams like focus-sash + endeavour + quick attack rattatas or pain-split + sturdy level 1 mons.
    Would the ai find a worthy challenge in trying to predict extremely fringe cases or be at a loss.

    • @justas423
      @justas423 2 года назад +80

      Might be possible that the computer, through machine learning, could pick up that Level 1 Rattata = FEAR and play accordingly.

    • @nya69
      @nya69 2 года назад +30

      without any kind of learning or preparation for FEAR mons itd probably struggle, but it could very easily be taught or learn to recognise and counterplay any possible FEAR strats

    • @Awesum
      @Awesum 2 года назад +8

      Considering the likelihood of it carrying toxic, and burn it would probably be able to play accordingly..being able to detect the set automatically with its database of million of battles.

    • @UnknownVir
      @UnknownVir 2 года назад +4

      @@nya69 Actually, I don't think it's likely to run out of PP versus a FEAR pokemon
      /j

    • @RocketPropelledMexican
      @RocketPropelledMexican Год назад

      If this project is still active I wonder how it would fare against weird metas like revivecats of the former natdex AG

  • @insaneintherainmusic
    @insaneintherainmusic 2 года назад +1217

    This is so freakin cool. Congrats on building something this impressive!

  • @JamesJones-ts5fl
    @JamesJones-ts5fl 2 года назад +759

    This is genuinely one of the best videos I’ve ever seen. I’ve played Pokemon for years at various levels, but I know precious little about actual computer science; yet when I watched you explain the AI in depth, I never felt talked down to or lectured towards, just educated. It’s a rare skill to be able to explain a topic in-depth, and passionately, without coming off as showoff-ish, but you nailed it.
    Sub earned. Great work, I can’t wait to see more!

    • @TheThirdBuild
      @TheThirdBuild  2 года назад +162

      That is truly all I strive for when making these videos; ngl this comment had me tearing up a bit. It's super uplifting to see this and I'll do my best to keep the quality coming!

    • @cohandora
      @cohandora 2 года назад +1

      Yes

  • @Auride
    @Auride 2 года назад +54

    Way back in high school, I tried to do almost the same thing. It's kinda hilarious hearing you describe all my wrong choices! I tried to write it in Java, using Webdriver to interact with PS!, so I had to write a very basic simulator. After half a year, my final demo was winning a carefully designed 2 turn battle where it had to use a strong move followed by a priority move. Great work!

  • @lilyposting
    @lilyposting Год назад +46

    When you said 81% accuracy my jaw dropped. AI that does its intended task with 55% accuracy is considered pretty good. That’s insane.

  • @dynamicbanteranimated8411
    @dynamicbanteranimated8411 2 года назад +586

    I’d easily watch a 3-hour version of this with every tangent included; this project is so impressive

    • @daniellewilson8527
      @daniellewilson8527 2 года назад +10

      I’d watch that too

    • @someghosts
      @someghosts Год назад +1

      Yeah maybe as a second channel video or something

    • @keylowjoe
      @keylowjoe 6 месяцев назад +1

      2 years later, its still worth a 3 hour version, im now down a rabbit hole and hoping the 3 hour compilation exists.

    • @ZenoEditz.
      @ZenoEditz. 6 месяцев назад

      @@keylowjoe same 😢

  • @HaloAdherents
    @HaloAdherents 2 года назад +182

    Me: Show me your team so I know it's not a stall team.
    AI: I'm sorry Dave, I'm afraid I can't do that.

  • @AR-io8fv
    @AR-io8fv 2 года назад +99

    You’re going far man. My jaw dropped when the graph started going crazy and the music played. Stylish. Sharp as a knife. And lovable. I wish you were my data science professor.
    Subscribed.

  • @KorgCrimson
    @KorgCrimson 2 года назад +180

    Absolutely amazing! Ever talk to the dev's of Pokemon Showdown to see if you can make your AI something players can play against?

    • @JohnYoo39
      @JohnYoo39 2 года назад +45

      This so much. Future Sight AI would be an amazing tool to test strategies against and for general training. I'm sure gamefreak would love a dynamic difficulty setting to keep players engaged too.

    • @KorgCrimson
      @KorgCrimson 2 года назад +17

      @@JohnYoo39 this! Heck work for game freak and create an actual hard mode AI for pokemon!

    • @damsonrhea
      @damsonrhea 2 года назад +5

      @@JohnYoo39 I suspect it's probably too big and slow, and probably has some quirks he has to manage.

    • @alis6581
      @alis6581 2 года назад +8

      @@KorgCrimson Original BW had a mode like this I believe but only after yo beat the main story. Idk why they never did this again

    • @adoniscreed4031
      @adoniscreed4031 2 года назад +1

      @@damsonrhea for now... he can only improve from here!

  • @kevincheng4288
    @kevincheng4288 2 года назад +478

    I shiver in fear for the day that this bot ends up loading up full stall and begins to grind down the ladder lol.
    Jokes aside, very cool. Reminds me a lot of the development of AlphaGo, except on a much smaller scale.

    • @highvoltage3508
      @highvoltage3508 2 года назад +41

      I wonder if the AI would ignore hazards and not even click defog/rapid spin, cause if it only plans 3 turns ahead it doesn't care about the long term. I think that teaching the AI the importance of removing hazards is the only thing it has to be manually taught tbh.

    • @Flapjack3734
      @Flapjack3734 2 года назад +32

      Imagine playing a 100+ turn match against a stall AI… I would cry lol

    • @ultimaterecoil1136
      @ultimaterecoil1136 2 года назад +12

      @@Flapjack3734 100 is kinda tame. 500+ is the point I’d start to worry

    • @genyrik35
      @genyrik35 2 года назад +7

      @@highvoltage3508 in one of the clips we say lando T click Defog I front of a dragon it’s w screens, so it does seem to recognize that

    • @robertocorti9845
      @robertocorti9845 2 года назад +10

      Bots work horizontally.
      That means lots of computing work.
      They will probably do better on hyper offense.

  • @lankyaf2868
    @lankyaf2868 2 года назад +207

    this video is criminally underrated: the editing, presentation, and the entire project itself of course is AMAZING. Keep it up!

  • @hoguesteele
    @hoguesteele 7 месяцев назад +6

    Bro I watch this 2 years ago when it first came out, you did great I'd love to see more of your work. RUclips just recommended it to me again, I'm happy to give it a second watch through

  • @Radi0actvChickn
    @Radi0actvChickn 2 года назад +20

    It's impressive enough that you were able to make an AI with results these good, but you also made a super entertaining video and explained things very clearly using fantastic visuals. I'm also a programmer, and this is exactly the type of quality programming content I want to see more of on RUclips. You definitely earned my subscription. Looking forward to what you make next!

  • @TheThirdBuild
    @TheThirdBuild  2 года назад +60

    I'm still wrapping my head around this video's random surge, but what I can understand is how absolutely grateful I am for the support and kind words yall have given it; A huge THANK YOU to all of you!
    This has been a huge project, so I'm thinking it's time we assemble a team. If you know a lot about Pokemon, programming, or both, fill out this form ( forms.gle/6R85bn2GwajrgteL7 ) so I can gauge interest in creating a team. No promises anything comes of it, but if you fill it out, I'll let you know if it does. Also, finally learning how to use Discord, so that might be a thing soon too.
    (P.S.I'm surprised no one's found any Easter Eggs yet. If my face isn't on screen, odds are there's something to find 😉)

  • @TrippyPepper
    @TrippyPepper 2 года назад +914

    honestly the most impressive video ive ever watched on yt, subbed and look forward to more vids !

  • @DaBlueIghuana
    @DaBlueIghuana 2 года назад +6

    I really like listening to you talking about anything, you’re very active but calm at the same time. I can’t really explain it, this is the first of your videos that I have ever seen.

  • @ipercreeper3300
    @ipercreeper3300 2 года назад +24

    You're going places man
    Also your editing is fantastic

  • @RAISEYOURDONGERS1
    @RAISEYOURDONGERS1 2 года назад +80

    "Why would I do this? Well, the Florida wall decoration behind me should explain everything."

  • @PrincessYellowSings
    @PrincessYellowSings 2 года назад +250

    When you finish doubles, it would be so cool to see WolfeyVGC play against it! This is really cool. I hope more people get to see your hard amazing work.

    • @spikerthedragonbear
      @spikerthedragonbear 2 года назад +15

      double the problems

    • @snacqk6550
      @snacqk6550 2 года назад +1

      Doubles will probably be for DOU because this is for showdown- Wolfey plays VGC

    • @Talynen
      @Talynen 2 года назад +21

      @@snacqk6550 he uses showdown to practice VGC with training partners I thought

    • @deeznoots6241
      @deeznoots6241 2 года назад +8

      Would be fun to see ‘anti-computer’ pokemon develop like anti-computer chess

    • @nathanielgomez8350
      @nathanielgomez8350 2 года назад

      Holy heck yes. This needs to be a thing.

  • @litapd311
    @litapd311 2 года назад +1

    this is one of the coolest and most impressive videos i've seen on youtube from a small creator. both the coding and video are VERY impressive, and it was really cool hearing you walk through your process and decision making

  • @theinfiniteconqueror
    @theinfiniteconqueror 2 года назад +2

    Dude, every time you go another step into the simulation it just keeps blowing my mind at the solution you used to solve it. Its amazing to see the process.

  • @Sephiron
    @Sephiron 2 года назад +825

    Bro how are you so smart?
    Dayum. Max props for the effort on this video!

  • @TalonFlo
    @TalonFlo 2 года назад +581

    I made a PS ai, too. In fact, it was my bachelor thesis. Also we had the same ideas for many topics. I used JS as well for the exact same reason and Tensorflow. Plus I had the same idea to go over the next turn with the original ps code.
    There are some differences, too. You went for an Alpha Go approach because the used data is from actual pvp battles. I chose Alpha Zero, meaning I wanted the ai to learn by itself. I only used ai vs ai battles so it learns the game by itself. I think this was the main reason, why your project succeeded and mine failed. The ai battles were slow and I couldn't generate enough data in time. In the end, my neural network was very weird, it always predicted Thunder Wave and I wasn't able to fix that before the deadline.
    However, there is another difference and I think this idea might help you. I noticed that created teams often followed some patterns. If a team doesn't have a grass type, then it's more likely that the pokémon have grass type coverage. But wait, at a specific turn grass knot wasn't used althought I had Swampert on that turn. Could it be, that this pokémon of the opponent doesn't have the move in the set? I was able to create a system to handle this problem. It's a bit too complex for aRUclips comment but if you want, I can show it via voice chat or something.

    • @hydrostrikehd4661
      @hydrostrikehd4661 2 года назад +32

      I know nothing about this field, but why not just combining the two approaches? I mean, now that he has a good AI trained on pvp battles data, he can make it train by playing against itself, can't he? Sorry if i'm asking a stupid question, but once again i know nothing about this and i'm just curious.

    • @schmeat7609
      @schmeat7609 2 года назад +95

      Always predicting thunder wave regardless of the mon in front of you is a valid approach if you're on showdown.

    • @TalonFlo
      @TalonFlo 2 года назад +34

      @@hydrostrikehd4661 This idea is called Alpha Go Zero. And yes, it is a good idea, however we will face the same problem: We need many, many battles to train the ai.
      Plus, for PS specifically it might not be a good idea, because human players play differently than the ai, which is a problem when predicting the opponent's moves. To be honest, this is also a problem for my Alpha Zero approach.

    • @hydrostrikehd4661
      @hydrostrikehd4661 2 года назад +4

      @@TalonFlo Got it, thanks for the answer.

    • @mattcroft
      @mattcroft 2 года назад +34

      "Always predicted thunder wave"
      the 20XX of Showdown

  • @bibbobella
    @bibbobella 2 года назад +31

    This feels like one of my old biotechnology classes. You clearly know what you are talking about, do a great job of explaining what you are doing and how it works and overall are just making it interesting...yet I can barely comprehend the kind of time and effort learning all of this must have taken...

  • @SchmavidSchmobb
    @SchmavidSchmobb 6 месяцев назад +4

    I don’t know how often this dude uploads, but I see his videos in my recommended very rarely and I’m always so impressed with his mind, his warmth and his ability to communicate complicated ideas

  • @Eskay_OW
    @Eskay_OW 2 года назад +1070

    This was a treat to watch you’re awesome

  • @BobWhoosta1
    @BobWhoosta1 2 года назад +34

    Dude, how old are you? The level of thoughtfulness and maturity of your channel is off the charts, not to mention the entertainment value and editing.
    I'm showing this to all my sons, and we're counting it for school. 1000%

  • @archetypeknight771
    @archetypeknight771 2 года назад +5

    You've got a good presentation style. Can't wait to see where this project goes!

  • @briancordry8165
    @briancordry8165 2 года назад

    Incredible vid, can't believe how good your art direction / editing are, on top of how deep the math goes. True talent!

  • @AbsolBlogsPokemon
    @AbsolBlogsPokemon 2 года назад +903

    Every facet of this - the concept, the editing, the explanation, and the whole project - is awe-inspiring. Fantastic work on all of this!!!!
    Really fascinating how fine-tuning it without machine learning has made it better at battling for now - makes me wonder if being more selective with the battles input in the dataset to only have battles between high ranking players could change that or if it wouldn't matter? (EDIT: just watched the sequel to this and learned the fault of neural networks here. Still really rad that you tried it out!)
    Well, no matter what, I'm really looking forward to seeing whatever comes next!!! Best of luck on your project

    • @tpsam
      @tpsam 2 года назад +8

      Ai trains this Pokémon from egg lvl 1 to 100

    • @gargoil0624
      @gargoil0624 2 года назад +1

      Get back to grinding lvl 100 boy 😂

  • @freezerman7109
    @freezerman7109 2 года назад +79

    So I used to play on the generation seven ladder and there is a bot on that named FildrongEstNul. The bot is usually a free win because it uses the same team over and over and makes the most basic plays it can so it became obvious it was a bot(not even a good one tbh) . This is shocking that an A.I. like yours can learn mons so quickly and get top500 to the point it can be disguised as a real player. This is great work.

    • @perrydimes6915
      @perrydimes6915 2 года назад +16

      fun fact: fildrong is a huge french pokemon youtuber and the username means "fildrong sucks" in french

    • @freezerman7109
      @freezerman7109 2 года назад +16

      @@perrydimes6915 Ok time to make a bot named BlunderBad which will only click the hardest reads like scizor on CB Vic lol.

    • @cellP8
      @cellP8 2 года назад

      @@freezerman7109 LMAO

  • @mysticuno
    @mysticuno 2 года назад

    I love the attention to detail and the polish in this video, especially the easter eggs in the pseudo-code around 20:39. Really looking forward to the rest of the series!

  • @LancerVillan
    @LancerVillan 2 года назад +2

    Dude people combining and nerding out about their favorite things is always amazing to watch. You got some talent and dedication cannot wait to the fruits of your labour

  • @illusion2438
    @illusion2438 2 года назад +311

    This video needs to blow up. As a showdown player myself this has been one of the most interesting videos I’ve seen. Hoping this hits it big because I’m mind boggled by the work you’ve done here.
    I play a variant of pokemon called draft league in which each player only has 8-12 possible pokemon to choose from and build a team of 6 and each opponent knows what the other 8-12 pokemon the opponent has. Your AI seems perfect already for something like that as compared to OU you only need to prep for 12 possible pokemon and their sets compared to the hundreds on the OU ladder. Can’t wait to see how you grow this.

    • @TheThirdBuild
      @TheThirdBuild  2 года назад +62

      Thanks for the complement!
      Ah yes, I've been thinking the latter half of your comment for a while, and under my best guess, this AI would be an absolute threat in a draft league! There are so many optimization it could make (and I could add) with only 12 possible foes a match. Once I'm done fixing the current set of bugs, we'll see what it can do.

    • @phantomstryfe
      @phantomstryfe 2 года назад +5

      haha im right there with you, seeing this in draft would be amazing...
      but it could definitely cause problems too, since leagues are just like tournaments and some owners may not like this being used in their league - i for one know that i am unsure of what to think about it in this regard.

    • @jeronipuff
      @jeronipuff 2 года назад +1

      it's hitting the algorithm rn

    • @profchipboard6640
      @profchipboard6640 2 года назад

      On top of that, I imagine you could train the dataset for particular player (though sample size might be an issue there) which could be quite significant when looking at tendencies (i.e. whether somebody clicks pursuit or not).

    • @TheThirdBuild
      @TheThirdBuild  2 года назад +8

      That's definitely possible, it's just hard to find enough battles from any one player to train on

  • @poke-maniacchris2965
    @poke-maniacchris2965 2 года назад +51

    I’d love to see a top Pokémon player react to or even challenge this AI like Wolfe or Cybertron

  • @drewbilly9
    @drewbilly9 7 месяцев назад

    I love how you number the sources and show them at the bottom left that’s so much easier than how most channels link stuff, super cool video :3

  • @uranium54321
    @uranium54321 2 года назад +4

    I don’t think I can overstate how great this video is. Cool projects like this are what first got me interested in machine learning, and I’m sure this video did the same for some people. Thank you for this video, keep up the good work!

  • @josidfin
    @josidfin 2 года назад +167

    This is absolutely amazing! Love how you explain it and applied it thus far.
    Thank you for sharing your mind with us here. Going to have to tell my subs to check this video out

    • @PrismaAce
      @PrismaAce 2 года назад

      not gonna lie, something like this could be really useful to the council

  • @Bayckun
    @Bayckun 2 года назад +19

    14:30 I’m so happy I watched this video. Not only was it intriguing and entertaining, I always thought of myself as a low ladder player since elo decay starts 1400+ and my peak was only 1400 and I averaged around 1350. This gives me a small confidence boost knowing I’m an upper 25% ish player. Thank you man. 🙏

  • @ZimmervisionCZ
    @ZimmervisionCZ 6 месяцев назад +2

    This is a jaw-droppingly cool project! I'm very excited to check this out in more detail. I'm looking to learn more about competitive Pokemon play, and a skill-matched AI opponent seems like a great low stakes way to do that. Plus you've got amazing production quality on the video itself. All around incredible work!

  • @ssssaintmarcus
    @ssssaintmarcus 2 года назад +1

    This is wild man. Very impressive dedication. You are going places brother

  • @KDM267
    @KDM267 2 года назад +17

    Bit late to the party but damn... I develop AI to detect cancer subtypes, and the work you've put in here is Masters if not PhD worthy! Just getting the data clean enough to use would have been the biggest pain in the ass. Congratulations Sir! If I could invest in RUclips channels, best believe I would invest with this one

  • @InvisibleTower
    @InvisibleTower 2 года назад +25

    When the Go-playing computer was in the news, the first thing I thought of was "show me a computer that can play competitive Pokémon and I'll be impressed." This is awesome!

    • @BrawlLegendLink
      @BrawlLegendLink 2 года назад +10

      This is absolute awesome work for sure, but the Go AI is so much more difficult and impressive in every ascept.
      Not trying to talk this down in the slightest, of course that is no competition with a full team of Google AI scientists VS a single dude.

    • @brzt4256
      @brzt4256 2 года назад

      @@BrawlLegendLink It's because AlphaGo was coded in Lua. If this guy switches languages, his AI will be top-tier in no time.

    • @BrawlLegendLink
      @BrawlLegendLink 2 года назад +6

      @@brzt4256 You significantly underestimate the complexity of Go and the effort behind AlphaGo.
      Pokemon is magnitudes easier to solve, because most of its numeric complexity covers cases that are trivial to rule out and/or don't play any role in the decision making.
      Another significant difference is that in Pokemon, only a small subset of moves have any impact on future turns, and if they do it is really straightforward. In games like chess and even more so Go a move that seems poor at the time played even for the best human player can commonly turn out to be brilliant 20, 30, 40 turns later. Pokemon is trivial in comparison which makes it way easier to train a decent AI.
      Also the language doesn't make much of a difference in the end (except for runtime maybe), at the core it is the same Tensorflow library which does the heavy lifting. Other languages just make your life easier.

    • @gattabat
      @gattabat 2 года назад

      ​@@BrawlLegendLink I agree, but pokemon is far more complex at an actual competitive level. This AI can beat the equivalent of an 'average' player at pokemon, in singles OU. The skill level increases drastically after 1500s, and the distributions aren't actually representative of the communities skill (lots of competitive (>1700s) players ceebs laddering).
      To make a truly powerful pokemon ai, in other words 'solving' it, you would need to account for all the probabilities.

    • @BrawlLegendLink
      @BrawlLegendLink 2 года назад

      @@gattabat No, it is not. The skill ceiling is fairly low, compared to really hard games such as chess or go it is the equivalent of TicTacToe.
      It is impossible to brute-force solve even chess, which has much fewer possibilites overall. The difference is: In chess, it is impossible to even guarantee that a certain move is objectively bad most of the time (always whenever it does not lead to a known guaranteed loss). In Pokemon, a 6 year old can tell you that Bodyslam always is better than Tackle. Most options are like that.

  • @maximusm5823
    @maximusm5823 2 года назад +1

    The way you explain things comes off as very easy to understand you have a talent for this I hope you go very far your channel deserves way more subs great video quality too

  • @jaksida300
    @jaksida300 2 года назад

    This is a very well made video! I’m pleasantly surprised by both the overall quality of the video itself and the AI itself. Keep up the great work!

  • @TVBenSifka
    @TVBenSifka 2 года назад +11

    This mans fuckin made a win predictor more accurate than focus blast, holy shit

  • @icymiles
    @icymiles 2 года назад +23

    The fact that this video only has 227 views blows my mind... This is the craziest thing I've ever seen. You're the goat.

    • @BarrettC9
      @BarrettC9 2 года назад +8

      Looks like your comment was the final push into the algorithm zone because it’s been 1 week and now it’s got 55k

    • @icymiles
      @icymiles 2 года назад +2

      @@BarrettC9 LET'S GOOOOOO

    • @hucklejoko4838
      @hucklejoko4838 2 года назад +3

      Well well, 2 weeks in an it's at 150k

    • @BarrettC9
      @BarrettC9 2 года назад +1

      @@hucklejoko4838 this is ageing nicely

    • @cellP8
      @cellP8 2 года назад +1

      @@hucklejoko4838 almost 200k lol, lets gooo!

  • @shilohmagic7173
    @shilohmagic7173 7 месяцев назад +1

    for a moment I was so excited, then realized this was *July*
    and also OVER TWO YEARS AGO

  • @jacobdumford1891
    @jacobdumford1891 2 года назад

    Amazing stuff! Looking forward to seeing how you continue to build this masterpiece.

  • @0liviaSama
    @0liviaSama 2 года назад +35

    Incredible ai you've made, this is actually astounding you were able to make this with such high odds. If only the ai could emulate how salty some players get, then it'd truly be a top tier player

  • @pulkitjain2361
    @pulkitjain2361 2 года назад +63

    Hey man, this is incredible, the sheer scale of what you're doing is just insane. Props to you for having the ability to make this happen! Good luck on your future endeavors and on the AI

  • @Dad......
    @Dad...... 2 года назад +1

    26:10 I don't know anything about competitive pokemon but that was the hypest Who's That Pokemon segment ever.

  • @froggouk2
    @froggouk2 2 года назад

    The editing on this is phenomenal, as well as the topic - kudos to both the host and the editor (if they are different!)

  • @cellP8
    @cellP8 2 года назад +23

    Congratulations my friend, RUclips just recommended this masterpiece to me, so expect a lot more people to come.
    Looking forward to the future of this project, and the most important part is that you are having fun with it :)

  • @enickma910
    @enickma910 2 года назад +26

    This is the most high quality video I have ever seen from someone with fewer than a million subscribers, let alone the fewer than 1000 you have. Your channel has a bright future.

  • @AndreSantos-kr3yu
    @AndreSantos-kr3yu 2 года назад +1

    Great job! Love the project, and it seems really well executed. Kudos for your dedication and hard work.

  • @DerpsGW
    @DerpsGW Год назад +1

    Super inspiring. Was blown away by the detail and approach here. Amazing project!

  • @SuperCosmicSpaceMagnet
    @SuperCosmicSpaceMagnet 2 года назад +32

    To be so young yet so bright - I'm absolutely stunned. You're an inspiration!

  • @MAVERICKSHOOTERS
    @MAVERICKSHOOTERS 2 года назад +31

    The editing, the structuring of the vid, the idea, the vid itself, all amazing, keep up the work this vid gonna blow up

  • @pheeeshy
    @pheeeshy 5 месяцев назад

    I need to see more of this, hope you have more videos coming out soon

  • @crowsong8097
    @crowsong8097 2 года назад +8

    This is absolutely amazing. It occurs to me that this could be a fantastic tool to teach battles as well. If it knows which action is most beneficial every single turn, I could see this being helpful for demonstrating ideal choices in every circumstance and to train ourselves to be better at battling as well!

  • @amphicyon4359
    @amphicyon4359 2 года назад +23

    Ladies and Gentlemen, this is what passion looks like

  • @Sevenes7-S
    @Sevenes7-S 2 года назад +11

    Why did the algorithm wait to show us this amazing video?
    I'm excited to see Top Players challenge your AI build in near future.

  • @georgehughes2521
    @georgehughes2521 2 года назад

    This is incredible. Looking forward to more updates (and VGC AI)!

  • @fauvilein
    @fauvilein 2 года назад

    Just came across this video, watched through the intro and loving your ideas and mindset so far. I have no background in engineering, not even mentioning AI or machine learning there, but you got my interest peaked!

  • @Silver19897
    @Silver19897 2 года назад +53

    I love how you had to add inverse damage calculation after your first attempt to make the AI while that’s actually something players around its elo do all the time. Joey has seen damage numbers and known instantly that something has a Choice Band and the AI just had to catch up. You’re really teachin it the basics of being good at the game.

  • @PokemonTrainerOrange
    @PokemonTrainerOrange 2 года назад +13

    I commented on the other video, but this is truly a work of art-the pokemon draft league community has their eyes on it now, and the very creation of a bot this successful could be really cool for mock battles. I don;t think anyone in the competitive pokemon community has come close to what you have today, we have Porygon which tracks Kills/Deaths in replays and that's about the only notable one.
    If you had a Patreon to help fund the bot, I'm sure plenty of people would want to help make this the best it can be-it has so much potential. Thank you for putting so much effort into a good bot, a high quality video, and sharing it with us.

  • @flyingfrogofdeath9616
    @flyingfrogofdeath9616 2 года назад

    WOW!! Excellent quality. Instant subscribe. Can't wait for your channel to continue to grow!

  • @benkesler487
    @benkesler487 2 года назад +2

    This was incredibly accessible for a video involving machine learning, and an application that is dear to my heart as well. Amazing video!

  • @HittingBandy
    @HittingBandy 2 года назад +23

    "Complex" As Lusamine's Clefable Metronome's herself to death. I remembered Clefable using metronome and both my Machamp and her Clefable was inflicted with a 3 turn death timer

    • @MidoseitoAkage
      @MidoseitoAkage 2 года назад +2

      You mean, Perish Song?

    • @KurisuBlaze
      @KurisuBlaze 2 года назад

      @@MidoseitoAkage Meaning Metronome landed on Perish Song.

  • @movingparts6270
    @movingparts6270 2 года назад +9

    I've been working on a project like this for months! I'm so jealous and excited someone scooped me, and with such a well produced video. Great job!

  • @mkazn1322
    @mkazn1322 6 месяцев назад

    Absolutely killer video idea and execution. Good job with the awesome video. Cant wait to see more!

  • @clementcapart1123
    @clementcapart1123 2 года назад

    Great video and project! You explain your process really well and the video editing is perfect, excellent job!

  • @perfecteblu
    @perfecteblu 2 года назад +23

    Very well made video that needs to have more views. I really like how the bot is self learning, so hopefully it can climb the ladder with time! I know you mentioned that the bot had similar win percentages vs all player levels. Pretty interesting to see that even AI can play down to an opponents level. A lot of other people in this comments section are also from this part of the community, but I play Pokémon draft league, and I feel like inverse damage calculation plays a big part in how we view the game compared to ladder mains or even doubles mains. Hopefully the weather ball modifier can help the AI learn lol. It might be worth looking at the showdown damage calc and seeing if you can include code from that to maybe improve the AI. Will definitely be keeping an eye on any future uploads regarding this, keep up the good work bro! :D

  • @sergis528
    @sergis528 2 года назад +17

    The production and the program are both so insane, you will go places!

  • @haffedali6148
    @haffedali6148 Год назад

    dude even a year out this video is so cool! I plan on doing some regionals this year and this is a great video to explain to my parents what is going on up in Pokemon!!

  • @buneco05
    @buneco05 Год назад

    I started studying programming this year, and JS really got my attention from the beginning. Seeing this video gave me a hype boost. I'm watching this before sleep. Can't wait for tomorrow and study some more. What an amazing project

  • @pikaclonegod
    @pikaclonegod 2 года назад +28

    Hm, a team of dragapult, ribombee, pangoro, ampharos, empoleon and gardevoir.. Interesting, even if I don't see ampharos putting in a lot of work for OU..
    But it'll be interesting!

    • @mag-bu4vn
      @mag-bu4vn 2 года назад

      Weird Ampharos and Empoleon aren't in swsh?

    • @RiX20xx
      @RiX20xx 2 года назад +1

      well the AI works around the OU tier instead of VGC, so that might be the reason...

  • @menghamaster4485
    @menghamaster4485 2 года назад +5

    Gotta say, I deeply respect that you were willing to say: ‘It’s not perfect but it works!’ in so many parts of your process, too many engineers I know and work with focus too hard on finding the “best” solution and fail to find a solution that simply works.

  • @sheeshbro9559
    @sheeshbro9559 2 года назад

    I wish you the best of luck my man, so happy for you, you're making history!!!

  • @Joshcohen97
    @Joshcohen97 7 месяцев назад

    Albert!!! My mind was blown when I saw you on this. Excited to see you and not surprised youre still killing it, thanks for the video :)

  • @Ondas563
    @Ondas563 2 года назад +4

    I just found this video, and it's absolutely amazing what you've done. This is incredibly impressive and I hope this channel blows up, you definitely deserve it

  • @nicholaswoel-nogueira4074
    @nicholaswoel-nogueira4074 2 года назад +13

    Hey man this is the best thing I’ve ever seen props to you this is an absolutely amazing idea and you are brilliant. This video is going to blow up and this is so dope

  • @trainerskitz
    @trainerskitz 2 года назад +1

    Great video dude was really interesting, the struggle of making a video understandable to the general populace and technically in-depth really comes through. Would had loved more of the in-depth changes you made over the course and all the "Weather Ball" moments you had ahaha
    also kudos for not releasing the code, you're 100% right in your reasons

  • @maxtague7278
    @maxtague7278 2 года назад +1

    This is so cool! Incredible work my man, downright impressive.

  • @mimo-paulluxx2628
    @mimo-paulluxx2628 2 года назад +8

    Me and my friends have discussed this recently, it was great to see how it works, and this video explains it very well. Thank you for taking your time to do this.

  • @Zoogore6777
    @Zoogore6777 2 года назад +16

    That intro made me feel smart. Like as if my years of Pokémon battling makes me a strategy genius. 😂

  • @BobFisher3
    @BobFisher3 2 года назад

    Nice work on this! I've literally started looking into ML a couple of days ago and have been really into pokemon lately too. Really glad I found this :D keep it up!

  • @kylelesh5456
    @kylelesh5456 2 года назад

    This is really well done. And the focus sash cloyster at 5:10 was a nice touch