OpenAI – a non-profit AI research company, founded by Elon Musk and Sam Altman, which focuses on developing friendly AI – unveiled their Dota 2 AI Bot in August 2017, which is capable of defeating top Dota professional players in 1v1 matches.
Dota 2 is a multiplayer online battle arena (MOBA) game developed by the Valve Corporation. First released on July 2013, the game is a sequel to the community game Defence of the Ancients (DotA) which was released back in 2003 as a mod for the game Warcraft III.
The Dota 2 Game Logo
A typical match of Dota 2 is played by five-verses-five (5v5), although other variations of the game exists, such as 1v1. The players each choose a ‘hero’ from 115 playable characters, each with its strengths and weaknesses, and various abilities and powers. The game is played in a real-time strategy manner, where each ream battles the other and attempts to destroy the ‘Ancient’ (the large structure on their base) of the opposing team while defending their own.
The diverse characters available, their abilities, strength, weaknesses, and the real-time manner which the game is played makes Dota 2 one of the most complex and competitive multiplayer games available. The required permutations of moves to program a bot manually makes it impractical. Which makes Dota 2 – quoting the engineers of OpenAI – the perfect test bed for AI.
So, how did OpenAI achieve their Dota 2 bot?
OpenAI has used self-play – playing against a copy of itself – to entirely train the bot from scratch. They have not used imitation learning or tree search mechanisms in any way. It’s worth noting that creating a dataset for any other types of training might also not be practical due to the complexities we discussed above.
Quoting the engineers of OpenAI: “Supervised deep learning systems can only be as good as their training datasets, but in self-play systems, the available data improves automatically as the agent gets better”.
See the engineers of OpenAI explain the Dota 2 Bot below,
The bot training has started with completely random moves and competing with a copy of itself. As “coaching” for the training of the bot the team has added a set of whitelisted item builds (part of the gameplay of Dota 2) in to the training. The training of the bot has started in March 2017, and by July, it was starting to beat top level professionals.
from the game between the bot and SumaiL
On August 7th, the bot competed against three professional pros – Blitz, Pajkatt, CC&C – and won 3-0, 2-1, and 3-0 respectively.
On August 9th, the bot took on Arteezy, the top overall Dota 2 player in the world, and won 10-0.
On August 10th, the bot won against SumaiL, the top 1v1 Dota 2 player in the world, by 6-0. SumaiL then played against the Aug 9th version of the bot and won 2-1, showcasing how the bot has advanced in just one days training.
On August 11th, the bot won against Dendi, the former world champion, by 2-0.
Watch the OpenAI vs. SumaiL match below,
Most of these players have expressed that the bot felt unbeatable, and that they have learned new moves from the games with the bot.
OpenAI has stated that their next step would be to train a set of five AI bots that could take on a professional Dota 2 team on a 5v5 match.
That’s something we all would like to see.
Build Deeper: The Path to Deep Learning
Learn the bleeding edge of AI in the most practical way: By getting hands-on with Python, TensorFlow, Keras, and OpenCV. Go a little deeper…