You may have read about Elon Musk’s OpenAI program beating Professional Dota 2 player Danylo “Dendi” Ishutin at The International (Dota 2’s biggest event) last year. After the match, developers of the OpenAI Dota 2 program said that next year they would have the program play against a pro team in a 5v5 game. Many in the Dota community were skeptical of this, but the ability of the OpenAI program has grown by leaps and bounds in the last 12 months. While OpenAI will face a top professional team at The International later in August, it’s first real test will be earlier that month.
On August 5th, the AI will play a best of three series against a team of 5 of the most well known Dota 2 casters, some of whom are former professional players. What makes this match such a big test of the AI’s capability is the removal of many in-game restrictions. These restrictions significantly dumbed down Dota 2’s complexity in previous 5v5 games. Later in our article, we will examine each one of these restrictions and how their removal will affect the upcoming matchup.
AI vs Humans: A Trip Down Memory Lane
Before we get into the big match on August 5th, let’s look at two of the biggest events in AI vs. Human gaming history. The first high profile match of an AI program vs. a human was IBM’s supercomputer “Deep Blue” vs. World Champion chess player Garry Kasparov in February 1996. Kasparov barely edged out Deep Blue in the first series of 6 chess matches. Deep Blue won the first game, but then Kasparov took the next three games and drew the last two, winning with a final score of 4-2. At this time, the fact that Deep Blue was able to take a single game off the world champion was groundbreaking.
Fast forward one year to May 1997, after improvements to Deep Blue’s AI, the famous machine and Kasparov were set for a rematch. In another series of 6 games, the score was tied 2½ -2 ½ (In chess draws can give a player credit for winning half a game). Deep Blue took the win in the final game, marking the first time a computer had beaten a World Champion human opponent in a six-game series. Comically, Kasparov accused the Deep Blue team of cheating and demanded a rematch. However, IBM declined and retired the Deep Blue program.
Stepping Up the Complexity
Chess is obviously a very complicated game. There are millions of possibilities the AI must examine before deciding on the optimal play. But what if there was a game that makes Chess look like Checkers? There is, and that game is called “Go”. Unfamiliar to most people in the west, Go is a board game that was invented in China more than 2,500 years ago and still played today. Go has relatively simple rules but is vastly complex. The basic idea of the game is to have more of your stones on the board than your opponent. Stones are placed at an intersection of lines and remain there until the end of the game, but one player may remove an enemy’s stone from the board if he surrounds it with all his stones.
What makes Go more complex than Chess is the larger game board, longer games, and on average, exponentially more possibilities to consider when making your move. After the first two moves of a Chess match, there are 400 possible moves, after the first two moves in Go, there are 130,000 possible moves. David Silver, the main programmer for the AlphaGo AI team explained the complexity of Go:
“If you look at the board there are hundreds of different places that this stone can be placed down, and hundreds of different ways that white can respond to each one of those moves, hundreds of ways that black can respond in turn to white's moves, and you get this enormous search tree with hundreds times hundreds times hundreds of possibilities.”
If you ask a skilled Chess player why he made a certain move, they can usually give specifics as to how they came to that decision. For example, “This move pressures his rook into defending his Queen…” and so on. When you ask a skilled Go player why he made a certain move, the answer will often be something like “It just felt right”. This difference between Go and Chess is why many people did not think there would not be an AI program that could defeat a World Champion Go player anytime soon. It was believed that Go is so complex and that the game relies too heavily on human intuition for an AI to beat. There are simply too many possibilities for even a supercomputer to effectively examine in order to compete with a world class Go player.
Despite the daunting task, Google set out to create an AI program (called AlphaGo) that could do just that. However, Google would have to develop an AI very different from Deep Blue. With so many more possibilities in Go, the Google AI couldn’t simply “Brute Force” the calculations as Deep Blue did. Instead, the Google AI would have to re-create actual human like thought to learn Go strategy and recreate the human intuition Go players rely on. In May 2017, exactly 20 years after Deep Blue beat Kasparov in Chess, Google’s AI beat the best Go player in the world. Another milestone in AI vs. Human game competition, we are now witnessing something similar with the OpenAI Dota 2 program.
From Solo to Team Play
What makes the OpenAI different from Deep Blue and AlphaGo is that these AI programs have beaten the best players in the world at Chess and Go, but these are only 1v1 games. AI has always had difficulty learning games that require complex teamwork. This is why the OpenAI program beating Dendi in a 1v1 matchup at last year’s International was interesting, but nothing groundbreaking. The matchup allowed both Dendi and the AI to only play one hero, Shadow Fiend. In this very controlled 1v1 match up the AI’s advantage mostly came from making calculations quickly and being almost mechanically perfect. The bot relied more on making these calculations faster and more accurately than a human to win, instead of outsmarting his opponent. There were headlines saying that the OpenAI defeated the best Dota players in the world, however this was miles from the truth. A 1v1 match up is nothing compared to the complexity of a 5v5 game. Only now are we about to see OpenAI play anything close to a “real” game of Dota 2.
About a month ago, the OpenAI team revealed that the AI was starting to beat human teams of five of different skill levels. On May 15th the AI, now called OpenAI Five was evenly matched against a human team of 46th percentile players. Just 3 weeks later in early June, the AI was able to beat a semi-pro team of 99th percentile skilled players. The difference in skill between amateur to semi-pro players, even the difference between a tier 3 pro team and a tier 1 pro team in Dota, is absolutely massive. This is why the AI jumping from first beating an amateur team to a semi-pro team in just 3 weeks is so impressive.
Let’s look at how OpenAI Five learns and improves over time. It learns by simulating games against itself at a mind-boggling rate. Each day OpenAI Five simulates 180 years worth of games, examining what strategies worked and what didn’t. What is also interesting is that the AI does not control all 5 heroes on its own. Instead, the AI is run in five separate instances that do not actually communicate with each other (Much like many human Dota players in pubs). Each instance of the AI controls one hero, the same way a human team is played by five individual people. The AI takes teamwork decisions and calculations into account the same way a human would, such as if the risk involved in attempting to save a teammate is worth the potential reward.
At the very beginning of the program the AI controlled heroes would walk aimlessly around the map, but after a few days the AI started to mimic basic human strategies, such as farming near towers for safety or attempting to steal runes. We witnessed this exponential learning ability with OpenAI Five beating the amateur team and then the semi-pro team only three weeks later. The timing of this could not be more exciting as we are only weeks away from OpenAI’s major tests coming up on August 5th and at The International later that month.
Despite the fact OpenAI Five had beaten a semi-pro team, many were still not that impressed. This is because while still extremely complex, the games in which these matches were held had some major restrictions from a standard game of Dota 2. However, the most impactful of these restrictions are being lessened or completely removed for the matches on August 5th. With these restrictions removed or changed, the game is much closer to a “real” game of Dota 2 than ever before. We’ll look at each restriction below and how they affect the game in detail:
- Both teams use the same 5 heroes instead of choosing 5 out of the possible 115
- No warding
- No Roshan
- Reaction time of AI increased from 80ms to 200ms
In May to early June when OpenAI Five began to beat teams of human players, each game was a “mirror match” with only the same five heroes on each team in every game: Viper, Necrophos, Crystal Maiden, Lich, and Sniper. These are known as five of the most simple and easy to play heroes in the game, which minimizes the calculations the AI must consider when using hero abilities. As we said earlier, OpenAI simulates 180 years worth of games every day. By simulating the same 5 heroes against each other, the AI will have had thousands of years of practice with this exact 5 hero combination, while it is likely the first time any individual human player has played with that exact team makeup as there are 18,417,137,760 possible 5 hero combinations with the full 115 hero pool.
For the upcoming match on August 5th, the number of possible heroes each team may select from is now 18. While nowhere near the complexity of choosing from 115 heroes, changing to a pool of 18 from having the same five heroes on each team is massive. OpenAI has not specified if selecting a hero from your team removes it from the pool as it does in a regular game of Dota, but if it does, that means the number of possible 5v5 hero combinations goes from one (Same 5 heroes vs. Same 5 heroes) to 158,789,030,400. OpenAI has also not specified if there will be drafting, but if so, this will be the first time anyone has publicly seen OpenAI draft. Drafting is when players select which heroes they want for their team. Teams switch off selecting one hero at a time until both teams end up with five. This is one of the most important and strategical aspects of Dota as teams must draft around a cohesive strategy and attempt to counter enemy draft picks. Hopefully we will get to see OpenAI Five do this on August 5th, as this alone would be very interesting to watch.
Perhaps an even bigger change than the increase in hero pool, is warding. A ward in Dota 2 is a stationary item placed somewhere on the map that provides vision for six minutes. It’s important to understand how important warding and vision is in Dota 2 to comprehend the significance of allowing wards in the upcoming OpenAI match up. We’ll look at a basic example, below is the Dota 2 minimap:
This map is for a player whose team owns the green half at the start of the game (Known as the Radiant team), with the arrows representing enemy players (The Dark Green arrow in the center is an enemy) and the teal, yellow, blue, purple, and orange circles representing the Radiant heroes. Keeping a constant eye on this map and your enemy’s positions is one of the most important aspects of Dota. If you know where your enemies are, you know when you are safe, when enemies are vulnerable, and vice versa. The lighter parts of the map represent areas in vision, with the darker areas being blind to the Radiant team members. Wards are used to temporarily gain vision of an area for defensive and offensive purposes. Let’s look at how much of a difference proper warding can make in the following example:
Here we see that the yellow and purple players would like to attack the enemy tower (tower being represented by the red square). However, the entire area surrounding the tower is darker compared to other areas of the map. This is because the Radiant team has no vision here. In order to attack the top tower safely, the Radiant players will need to place some wards that will reveal any enemy heroes who may be waiting to defend. You can see how the ward to the bottom right of the purple player (Represented by the green eye icon) provides vision and lights up the surrounding section of the map. Here is what the map looks like after the Radiant players have placed two wards:
Now these areas of the map are visible to all players on the Radiant team and they will be able to see any enemies within the ward’s range and line of site. Here is the map while the Radiant team is avoiding an ambush thanks to their ward vision, which also lets the dark blue and orange players know they are safe (Enemy players represented by arrows):
There are many other strategical aspects warding adds to the game, such as trying to figure out where the enemy’s wards are (They are invisible to your team for the most part). One way to do this is by watching how enemies play. For example, if you cast a spell on an enemy when they should not be able to see you, but the enemy dodges it, there is a good change you were in their ward vision. This is the type of gameplay and intuition that make Dota such a complex game, and why removing the restriction on warding is so significant for the upcoming Open AI Five match against human opponents.
As with most MOBAs, Dota 2 has a neutral world boss on the map known as Roshan. Although an optional boss, killing him provides powerful items, such as an item that gives any hero who carries it an extra life. This adds a big layer of strategy as teams must always keep Roshan in mind. The boss often requires three to five heroes to defeat and as a Dota rule of thumb: if you cannot see most of the enemy team on your minimap, there is a good chance they are attacking Roshan. The single use items the boss drops are often the difference between winning and losing a team fight. This is why you will often see teams battle over this area of the map for several minutes at a time. Playing around Roshan adds another major level of complexity that OpenAI Five will have to consider at all times in order to beat professional teams.
Another major change is the AI will now have a programmed reaction time of 200ms, up from 80ms. The 200ms is much closer to average human reaction time and while OpenAI says that it relies more on strategy and teamwork to beat their opponents rather than quick reflexes, this change will certainly have an impact. Reaction time is obviously important in any eSport, but let’s look at how it can affect gameplay in Dota 2.
In Dota 2 almost every spell has a “cast point” which is the time between the spell being activated, to the spell taking effect, also referred to as cast time. Most spells in Dota have a cast point of 0.3 to 0.4 seconds. While this might not seem long, it is often the difference between landing or missing your spell. The faster the reaction time a player or AI controlled hero has, the more easily they can avoid spells due to their cast time. Some players cheat by using scripts which cast spells instantly before an enemy’s cast point is complete. Here is what a script looks like, slowed down to 25% speed:
This video is from the perspective of the player “Junko” who is playing a Shadow Shaman. This hero has a powerful disable ability called Hex, which has a cast point of 0.0 making the spell cast instant. A Hexed player moves extremely slow and cannot use any items or abilities. This player’s script detected that the enemy player teleported near him, the script then instantly cast Hex, disabling the enemy player. You can see where it says “Hexed” above the enemy player’s red health bar. This player’s script was able to instantly cast Hex before the enemy’s spell with a 0.3 second cast time was able to complete, and thus stopping his spell and saving his entire team from being disabled.
This is an example of how unfair an almost 0 second reaction time would be. While the AI had a programmed reaction time of 80ms and not 0, having a reaction time that fast would allow for some similarly unfair plays that no human could ever replicate. Increasing the AI reaction time to a more human level of 200ms creates a much more even playing field.
The Real Game Begins
While most of the focus has surrounded OpenAI Five playing a professional team at The International later in August, the upcoming match on August 5th is arguably a bigger game to watch. This will be the first time that Open AI plays a game live in public, against 99.95th percentile players, and with these restrictions removed. How the AI performs on August 5th will be very indicative of its performance against a pro team at The International later that month. If OpenAI Five is victorious, how long will it be before it can win with a hero pool of 50 instead of 18? How long before it can win against a professional team in a completely unrestricted game, if ever? Only time will tell. On August 5th, Dota, Esports, and AI history will be made and we here at Inked Gaming can’t wait to tune in and see what happens.