The Street Fighter bot that plays better than you
There's a common joke among Street Fighter fans that Ken players are as predictable as a robot. But what if a robot were actually to give it a try?
Eric Sheppard wasn’t quite able to bring that fruition, but he did manage to program a bot that plays Ken. And it’s very possible that it could beat you and all of your friends.
The idea of the reliably predictable Ken player gave Sheppard his inspiration to program the Ken bot.
“It made me think about how simple Street Fighter can be, and how complicated it would be to make a bot that followed a flowchart style list of rules for its AI,” Sheppard told The Daily Dot.
Sheppard already had the tools he would need at his disposal. He had reverse-engineered game files in Street Fighter 4 that control how the varied characters work, and his involvement with the Project M mod for Super Smash Bros. Brawl—a fan-made modification to the game that improved its competitive play—had provided him with tools for editing AI behaviors.
From there, it was simply a matter of programming the bot to make the right decisions at the right times. And if he were able to give it the information it would need, Sheppard was confident that the bot could be a success.
“While the bot does not attempt to play like a human player, it can do things that no human player can really do,” Sheppard said.
The way the bot works is relatively simple. It makes decisions through a combination of reading the distance between the bot and its opponent and the actions the opponent is taking. If the opponent is a fair distance away from the bot, it knows it needs to close that distance before attacking. If an opponent is too close for comfort, the bot might try to an unblockable throw attack requiring that close range.
Reading the opponent’s actions proved more complex than Sheppard had anticipated, because human opponents aren’t always so predictable.
“Some players were smart enough to figure out ways to abuse the bot within the first round, such as spamming moves at a certain range,” Sheppard said.
A tactic like this could have confused the bot when it was programmed only to recognize when a given attack was being used. But later iterations could also recognize when the attacks being used were active and when they left the opponent in a state of recovery.
“(Taking advantage of the bot) was possible because of how the (AI) rules play out, and after each loss, I review the videos and adjust the bot to ensure that each of those strategies no longer works in the future,” Sheppard said.
Of course, not every opponent was as wise as those who would try exploiting its tendencies.
“Sometimes it backfires and the ‘dumber’ bot actually succeeds more due to relying on its reaction time rather than advanced logic,” Sheppard said.
That reaction time is indeed difficult to beat. The bot can react in a mere two frames of action, far quicker than the average human.
These quick reactions make a character such as Ken the perfect choice.
Ken’s Dragon Punch special move takes priority when clashing with most other attacks in the game. If the bot is constantly buffering the movements required to trigger the maneuver, it can react with inhuman speed when given the opportunity to unleash it as the opponent makes themselves vulnerable by attempting to trigger an attack of their own.
Figuring out how to implement these and other tactics into the AI proved challenging but ultimately rewarding for Sheppard.
“I’ve learned that Street Fighter isn’t a very complex game for an AI to tackle, but it’s still hard to create an AI that can take down a living, breathing opponent,” Sheppard said.
Screengrab via DantarionX/Youtube