but this morning I woke up to such a fun artosis video www.youtube.com so now I'm here x)
I'll introduce myself briefly, just to get the credential out of the way ...
- I have been following broodwar since 2004 and been on TL.net
- While in undergrad, I was part of the team who built the winning BW bot (
- I have a PhD from MIT, my thesis topic was information gathering under uncertainty
- I have written blog posts about the DoTA2 AI ( https://evanthebouncy.medium.com/understanding-openai-five-16f8d177a957 ) and the SC2 AI ( https://evanthebouncy.medium.com/adversary-attractor-astonishment-cea801d761 ).
- I am currently a Professor, I still work on reinforcement learning / program-as-policy
So onto the bot itself
From reading the comment on Youtube, it seems the bot is trained under pure self-play using reinforcement learning. What that means is that the bot has played against itself in a hyperbolic time chamber for about 100s - 1000s of years, compute permitting.
It is implemented as a neural net without explicitly encoding high level strategies, and all the strategies are "emergent" from the training itself. So it will do a tank + m&m push at a given moment but it cannot explain why the push is the right idea. The decision to push at a given moment is learned through millions of trials and error.
So what walks out of the hyperbolic time chamber isn't a thoughtful master but more like a beast of great instinct. You can see from the replay where it will misplace its own command center, absolutely horrible building placements, and even lockdown its own tanks with ghosts :D. However its micro will be immaculate, it made a wraith that kept attacking high templars and never died, d-matrix tanks just in time. It is also capable of controlling multiple battlefronts at the same time, something Artosis remarked as well.
How to beat it
TL;DR: as a beast of great instinct, any action sequence that requires less than 10 seconds to process will be optimal by the bot. Conversely, any strategy planning that requires more than 2 minutes to materialize will confuse the bot immensely.
For a few days it will be difficult as the pros will try to "out execute it" because it'll be so exciting to fight someone who has 6000+ APM. This of course will not work because the bot has been microing for 1000s of years and has unlimited APM cap. The pros will also make calculation mistakes on engagement, where they think the current army will crush the bot's army, only to realize under perfect micro, the bot's army is effectively worth 2x their value in resources. This was the primary way pros lost to both the openAI Dota AI and the deepmind Starcraft AI.
But give it a week or two, it'll get figured out strategically. The limit of pure self-play is that 1) it is actually quite difficult to sample a diverse set of strategies to train against, and that 2) each new strategy requires the neural net 10s of years of effective training time to get aquatinted to from trial and error. So the bot does not know apriori a diverse set of strategies, and it cannot adapt quickly to a new strategy without 10 years of playing against it. So this bot will struggle against 1) novel cheese that is not present in its training set or 2) very long games (like 40 minutes) that's far beyond its typical game length during training.
It will also be very weak to fog of war, as the beast has only 10 seconds of attention span. If you fly a dropship out of vision range, it'll "forget" that it ever existed, allowing you to fly it back later. That's why the bot on the ladder has maphack on.
Conclusion
It is unfortunate the first wide exposure to the AI-vs-Human topic is through a cheating bot stolen from its original creators against their will. Nevertheless it is a good opportunity for us to reflect on what makes BW challenging and fun to play, and speculate on how we can make / beat AI systems.
The two linked medium blog post above has a more technical explanation on these RL-trained bots, for those who want a deeper dive.
-- evan
feel free to ask questions in comments and I'll reply!
if anyone (content creator, bot creator) want to do a collab on this topic, you can message me on Reddit u/evanthebouncy, it will be fun to chat at least x)