The quest to make an AI that can play competitive Pokémon
An AI can beat a chess grandmaster. An AI can become the StarCraft esports champion. But creating an AI that could play Pokémon at the competitive level has been a more elusive problem.
Thanks to the variety of monsters, stats, moves, and items, a Pokémon battle has hundreds of thousands of factors for any player — or machine — to consider. But that hasn’t stopped some people from trying. Most recently, Future Sight AI, created by computer scientist Albert III, successfully made it into the top 5 percent of the competitive ladder.
Albert posted a video explaining how it all works, but to summarize, the bot takes in all the information it can about the current state of the game, extrapolates the possibilities for all the turns it could take, looks a couple of turns ahead to how these would play out, and then chooses the option that can lead to the highest number of best outcomes. By doing all of that within 15 seconds, turn after turn, it can beat all but the very best human players.
That’s pretty impressive, especially when you consider that Albert had almost no experience with artificial intelligence or other major aspects of the program before he started working on it. “I took classes in college about machine learning, [but] the real question is: was I paying attention?” he laughs. “The main software that it runs on is called Node.js. I hadn’t touched that at all before I started this project.”
“Even though computer science is my day job, it’s something that I love so much that I can’t help but do it in my free time, too,” he says. That passion, combined with pandemic boredom, propelled him to look into an idea that was first inspired by his interest in basketball. “[Some websites] would do this thing where you’d be able to watch a game and see the team’s current chance of winning, and I thought about doing that for Pokémon,” he says. “Then just kind of one thing led to another and then I ended up with an AI on my hands.”
One thing leading to another is a pretty good summary of Albert’s work on Future Sight AI. He says he wanted to learn new skills and simply broke them down into small enough tasks until he was able to create his vision. “This is such a bad reference but there’s that song in Frozen 2, called ‘The Next Right [Thing].’ It’s just that. Just keep doing that until you get somewhere,” he says. Nowadays, for example, he knows Node.js so well that he can use it in projects at his day job, too.
His step-by-step approach means that he actually wasn’t aware of previous attempts to make similar AIs. Earlier projects are not as well documented as Albert’s, though there have been a few varying success levels that gained some attention within the community.
An early example was Technical Machine, first created in 2010. Though it was updated through 2019, Technical Machine only ever fully supported Pokémon up to Generation 4 and did not create its own teams, one of the key features of Future Sight. Additionally, at the time of its release, the competitive ladder base was not established in the same way, so it’s difficult to tell how successful Technical Machine was overall. One Reddit comment, however, stated that “Technical Machine at its smartest was still leagues worse than a normal player.”
Another example was posted on Reddit in 2015 by a user who went by onmabd. Comments indicated that it was “one of the stronger bots to date.” The competitive ladder gives players a ranking of 1,000 to begin with, which then goes up or down depending on wins and losses. There’s no public way to view the data, and it changes over time, so it’s tricky to evaluate what a “good” rank is. However, during his creation process, Albert found that the average player’s ranking settles at around 1,170. Onmabd’s AI managed to reach 1,300, which would put it in the top 30 percent.
More recently, a user on Pokémon community forum Smogon going by pmariglia shared another attempt. Their AI beat Technical Machine in a best of three and was able to reach a rating of between 1,250 and 1,350 — again, around the top 30 percent.
Future Sight AI ranked at 1,550 on average during testing. Though Albert apologized on Smogon “for making it seem in my video that [Future Sight] is the first bot of its kind or the first to get as far as it did,” (as well as detailing where the two projects take different approaches) he says that ultimately he’s glad he didn’t know that other people had already attempted his project. “I don’t know why I never thought to look into it [but] if I’d gone down their path I might have ended up with the same results,” he says.
He also was never expecting the video to gain as much attention as it did. For starters, when I ask about its creation, he laughs. “I have to reveal something,” he says. “That entire video was animated in Powerpoint. I have to say I don’t have much video production experience [so] I had an idea for what I wanted the video to look like and I just kind of kept working on it until I could get the tools that I knew how to use to do it.”
Then, there was the delayed reaction. Posted in July, it was only viewed about 100 times in its first three weeks. The next week, it jumped up to 300,000. (As of late November, it’s almost at 600,000 views.) Albert thinks that it was picked up by somebody in the Pokémon community who posted it to Twitter, causing it to blow up, but he never found out who.
He says that it was difficult to process the sudden influx of viewers, but that he was appreciative of how supportive the Pokémon community was. “I kind of just had to take a step back a bit because the whole point of what I’m doing is that I want to teach people about computer science,” he says.
In particular, as a Black man, Albert wants to be the kind of representation he never had in the field. “I figured I have experience in public speaking, I like doing projects that people might find interesting, so really I wanted to put out a channel that said, ‘This can be an example of someone like you doing fun things in computer science.’ That’s genuinely the core of why I’m doing all of this.”
For now, his focus is on getting Future Sight playable in actual Pokémon games. Thus far, it has used Pokémon Showdown, a community-created simulator that allows online battling and functionally forms the center of the competitive scene. But early on Albert was hinting that he wanted to make something that could tie in with the releases of Brilliant Diamond and Shining Pearl. Most recently, he’s managed to get it to beat the final boss of Sword and Shield, despite not having any code to deal with Dynamaxing, which is banned in common competitive settings.
Beyond that, he doesn’t have too many concrete goals. “I mean this is such a corny thing, but I want it to be the very best like no one ever was,” he says, echoing the old Pokémon anime theme tune. “But seriously, I don’t know. I just started this for fun and I want to take it as far as I still find joy out of making it.”