Thursday, February 8, 2018
Starcraft AI Tournaments and Warcraft Warfronts
Been watching the AI bots tournament again to see whats new, and found a group of the bot makers in chat talking so I asked some questions.
I may not grok all they said, but I'll include the log below.
Just watched a match between the Student division 2nd place champion Martin Rooiljacker and PeregrineBot. PeregrineBot kept sending zerglings down to attack Martins Terran base, one at a time, while Martin amassed a cloud of Marines and Medics lurking between his base and his base entrance , with a Hellion rolling out to scout any incoming in the immediate vicinity and come right back chased by a zergling, sniping as he did like a Hunter in WoW kiting mobs. Then Martin had 2 Hellions. Then 3 then 4, each time getting further across the map before having to race towards home and snipe. When the 4 Hellions arrived at Peregrines base, suddenly Martins entire army poured out of his base and up to Peregrines Base, demolishing it utterly. 20 minute fight.
Watching a second match with PeregrineBot, same thing, sending over zerglings, A moving to the enemy base to get blown up.
Ive seen many more complex fights in this AI tournament but this match up seemed like something a Warfront could be like.
I wondered if in WarFronts players might just zerg Stromgarde immediately and not waste time building and teching up then trying to assault, and the defenders will have the same amount of time plus the time it takes the horde to get to their gate to set up and hold, so I'm guessing if the Alliance has a Scout to look for the Horde, and everyone gets into position before Horde arrives then its a straight up 20 man PvP battle, and over with. Whereas if they both harvest trees and build buildings and knights etc, then a Warfront would take about 20 minutes, Blizzard said at BlizzCon.
I suspect players would rather zerg it and win or lose and queue again but we shall see.
Heres the log. Enjoy!
Welcome to the chat room!
4:14Dilyan_: cherry will lose a lot to updated bots
4:14xilmi: cherry has the chasing-bug aswell
4:14xilmi: which is not surprising when you know what causes it :o
4:14Dilyan_: i have seen it to ignore scouting probe
4:15SubscriberTwitch PrimeM1RaCIe: need to add firebats vs Cherry
4:15RealLanceGunnin: ecgberht FailFish
4:15Dilyan_: for an attack
4:15RealLanceGunnin: wait, you see this and adding firebats is the conclusion you come to?
4:15SubscriberTwitch PrimeM1RaCIe: umm
4:15SubscriberTwitch PrimeM1RaCIe: where are the scvs
4:15SubscriberTwitch PrimeM1RaCIe: at the exp
4:15xilmi: seems logical, doesn't it
4:15RealLanceGunnin: yeah the lack of mining in the expo and the lack of units was what was getting me
4:16SubscriberTwitch PrimeM1RaCIe: welp
4:16SubscriberTwitch PrimeM1RaCIe: this map has a BWTA bug
4:16RealLanceGunnin: bwta bug?
4:16SubscriberTwitch PrimeM1RaCIe: sometimes doesnt get the minerals
4:16RealLanceGunnin: at least it knew to build the rax and get double upgs, thats pretty good
4:16SubscriberTwitch PrimeM1RaCIe: or maybe bwapi
4:17SubscriberTwitch PrimeM1RaCIe: yeah its bwta
4:17SpriteClub: Betting open for PeregrineBot Vs. Martin Rooijackers -- Place your bets at starcraft.spriteclub.tv
4:17SubscriberTwitch PrimeM1RaCIe: doesnt get all the mineral patches
4:17SubscriberTwitch PrimeM1RaCIe: of that exp
4:17Dilyan_: so they wont updaate cherry anytime soon? bastards
4:17SubscriberTwitch PrimeM1RaCIe: using BaseLocations
4:17WillBotSC: baselocation.getminerals() ?
4:17SubscriberTwitch PrimeM1RaCIe: yep
4:18SubscriberTwitch PrimeM1RaCIe: so no minerals
4:18SubscriberTwitch PrimeM1RaCIe: no workers
4:18WillBotSC: i found that it sometimes takes less, but i update it regularly
4:18SubscriberTwitch PrimeM1RaCIe: also that
4:18WillBotSC: then they come all
4:19SubscriberTwitch PrimeM1RaCIe: umm how?
4:19SubscriberTwitch PrimeM1RaCIe: just calling the getMinerals a few times?
4:19WillBotSC: after a while
4:19Speedyblupi: Well I fixed the bug with my bot. Apparently just switching around the attack and build order instructions solved it. I've no idea why, but whatever, it works now :P
4:19SubscriberTwitch PrimeM1RaCIe: umm will try
4:19WillBotSC: for different reasons: more bases, base lost, base mined ou ...
4:20SubscriberTwitch PrimeM1RaCIe: thanks :D
4:20SubscriberTwitch PrimeM1RaCIe: I only update it once when finishing the command center
4:20RealLanceGunnin: Im pretty sure echberht wins there if he is mining from the natural
4:20SubscriberTwitch PrimeM1RaCIe: and adds the minerals to a Set
4:20SubscriberTwitch PrimeM1RaCIe: so I can track the workers assigned to the patches
4:21s7jones: sorry my bot broke stuff again
4:21WillBotSC: for my bot i recount everything periodicly, units, buildings ... so i dont need to deal with add and remove
4:23WillBotSC: but this also leads to slow reaction of my bot
4:28s7jones: can someone reset the stream?
4:33Moderatorjaj22: nope. You could try buzzing Krasi0 on Discord.
4:33Twitch PrimeAlisaunder: Im enjoying your work. Do the bots learn or do you update build orders over time?
4:34Moderatorjaj22: It's common to have multiple planned builds and select them based on opponent-specific learning.
4:34Speedyblupi: @Alisaunder some of the bots have some learning implemented, but most have the build orders at least tweaked manually
4:35Moderatorjaj22: more dynamic learning is unusual, and typically not very effective.
4:35Twitch PrimeAlisaunder: Why not @jaj22 ?
4:35Speedyblupi: It's just very difficult to implement in a complex environment like Brood War
4:36Twitch PrimeAlisaunder: Very true. The longer the game, I cant imagine it.
4:36Speedyblupi: Martin Rooijackers (letabot) is one of the few people who tried it. He used monte-carlo tree search to try to optimise builds
4:36Moderatorjaj22: doesn't work yet :P
4:36Speedyblupi: Yeah. Usually, versions of his bot that use hard coded builds rather than MCTS do better,
4:37Twitch PrimeAlisaunder: I am not a programmer so will smile and nod.
4:37Moderatorjaj22: AILien has had flexible builds and learned unit choice, worked worse than the usual method.
4:38Twitch PrimeAlisaunder: Why is that do you think? Lack of computing power or something deeply technical?
4:38Speedyblupi: To put it simply, MCTS is basically a method to try to find the optimum solution to a problem, based on variations of things that worked previously, and weighting different decisions with different probabilities.
4:38Speedyblupi: I don't really understand it myself, as I'm not an expert on AI.
4:38Moderatorjaj22: Well, it's partly because BW has some very non-obvious sweet spots for builds
4:38Moderatorjaj22: It's pretty tough to generate a build algorithmically that doesn't suck.
4:39Speedyblupi: Or at least, that doesn't have at least a few hard counters
4:40RamenDEN: At some point in the future I think a much more general AI approach will be taken to BW where bots learn from scratch against themselves like has been done by AlphaGo but there are so many more possible game situations it will require either massively more computation or more clever learning algorithms.
4:40Twitch PrimeAlisaunder: Thats what DeepMind is supposedly doing, learning, but noone knows how its doing.
4:40Moderatorjaj22: The fog of war is a big problem for build choices.
4:41xilmi: coding a star-craft bot is very different from coding an AI for a 4x
4:41xilmi: real time is very different from turn-based
4:41Speedyblupi: It's hard to find something for an AI to aim for to get a machine learning algorithm to work.
4:41Speedyblupi: the way deepind did it for SC2 was with "minigames"
4:42marcodbaa: it is always winning in the end but well
4:42Speedyblupi: where they teach the ai to move units, then to pick up minerals, then to mine.
4:42RamenDEN: Between the granularity of the maps, multiple maps, unit combinations, and thousands of frames vs turn-based the complexity is just insanely greater than something like Go or Chess
4:43xilmi: in many cases a completely general approach makes no sense... there simply are things which we already know are ideal and can be determined and executed with relatively simple algorithms
4:43Dilyan_: yea its incomplete information game
4:44Dilyan_: but starcraft can be mastered quickly in specific areas
4:44Dilyan_: for example
4:44Speedyblupi: Yeah - micro is easy for bots.
4:45Dilyan_: a bot by one look can know how much money you have gained by looking at minerals
4:45Speedyblupi: I think Alibaba's micro AI used machine learning. I'm not certain though.
4:45Dilyan_: how much gateaway you have
4:45Dilyan_: how much time a goon can be created and how many in next minute
4:45Speedyblupi: It's very difficult to choose good metrics though.
4:46Dilyan_: in future bot will know exactly how much army you have made
4:46Speedyblupi: Having more macro is good, but not very useful if your enemy has a huge army that your composition can't deal with.
4:46Dilyan_: and will master timing attacks
4:47Speedyblupi: or something like a dt rush - you can have a bigger army and a bigger eco, but lose it all if you don't have detection
4:47Moderatorjaj22: Well, issue for humans is that you can't see their minerals all the time.
4:47Moderatorjaj22: metagame is heavily dependent on that. There are dark periods where the enemy can hide their tech.
4:48Dilyan_: we dont need to we have experience, intuition , trained eye by one look to say cant brake defense, etc
4:48Speedyblupi: Bots can kind of "cheat" at working out how many units you have by looking at which number the unit has (stored in game, accessible to bots but not to human players)
4:48Moderatorjaj22: yeah, that will probably go in BWAPI 5.
4:49Moderatorjaj22: hopefully no-one's using it at the moment.
4:49RamenDEN: Interesting Speedyblupi I did not know that, I wonder if that has been utilized
4:49Speedyblupi: I don't think it should be. Bots should only get the same info as a human would.
4:50Twitch PrimeAlisaunder: Or if they can scout the minerals, see what units you have, maybe extrapolate from that missing mineral supply what could be built to equal that number.
4:50RamenDEN: As long as they scout it I feel that that is not cheating, just a spot where AI has the advantage of being able to "click" thousands of times faster and compute
4:52RamenDEN: We should put quantum computers on SCBW AI first priority when they're built :)
4:52Twitch PrimeAlisaunder: What has been hardest to do besides AI learning capability?
4:52Moderatorjaj22: that extrapolation's a much harder problem for bots than humans anyway.
4:53Moderatorjaj22: well, I wouldn't consider "learning" to be an issue, really.
4:54RamenDEN: Humans do thinge like, "based on what my enemy just saw of my army, I bet he will build XXX, so I will build YYY to counter what I expect him to build." That's hard to encode.
4:54Moderatorjaj22: None of the bots is great at reacting to enemy choices, but that doesn't have to involve learning.
4:55xilmi: i had an algorithm that would try to make a unit-comp based on the enemies unit-comp
4:55xilmi: but then i learned that it's better to just be proactive ^^
4:56Twitch PrimeAlisaunder: Grins.
4:56Moderatorjaj22: Well, that's very zerg :P
4:56Twitch PrimeAlisaunder: Good to try though and see.
4:57Moderatorjaj22: you have to pick a tech to give the other guy a problem to deal with
4:57Moderatorjaj22: otherwise you will be run over.
4:58Twitch PrimeAlisaunder: Im more familiar with SC2 than BW. Is walling off not a thing very much in BW? Some of the maps, the entrances seemed maybe too big to wall off, so Im not sure.
4:58Moderatorjaj22: but then for zerg, drone count, sunkens and expansion timings need to be very reactive.
4:59Moderatorjaj22: BW walling is very weird.
4:59Moderatorjaj22: Buildings don't occupy whole tiles, so if you place two buildings next to each other they won't necessarily block a zergling, or even a zealot.
5:00Twitch PrimeAlisaunder: Ive seen units form part of the wall, that must be why
5:00Moderatorsscaitmaintenance: NOTICE: Please stay tuned, the stream will continue in 2-3 minutes (we're restarting the machines to clean up after the bots). If the video doesn't start within 3-4 minutes, refresh the page.
5:01Moderatorjaj22: Conversely, bots often have trouble with accidentally blocking their units.
5:01Twitch PrimeAlisaunder: Ive also seen some patrol patterns that were really interesting, to defend a base.
5:01xilmi: hmm the removal of the condition to always halt teching when under pressure makes it tougher to survive even the stock-AI zealot-rush :o
5:01s7jones: it works?
5:02Twitch PrimeCalmB4theStorm: Game has started
5:02WillBotSC: what happened?
5:02Moderatorjaj22: did you change your DLL?
5:02WillBotSC: did you reupload something?
5:02s7jones: I reuploaded something about an hour ago :P
5:03Moderatorjaj22: well, it should probably work after the restart. Maybe.
5:05SubscriberTwitch PrimeAntiga: 5-6 bots getting updated in a day
5:05SubscriberTwitch PrimeAntiga: is pretty great
5:08SubscriberTwitch PrimeN00byedge: More like people have buffered updates since the 20th
5:09xilmi: ok, my hydras look quite a bit smarter now
5:09SpriteClub: Betting open for MadMixP Vs. MegaBot2017 -- Place your bets at starcraft.spriteclub.tv
5:14WillBotSC: these fight take place in wierd locations :D
5:15xilmi: these obstacles are just annoying
5:16SpriteClub: Betting open for Simon Prins Vs. AILien -- Place your bets at starcraft.spriteclub.tv
5:17xilmi: oh 12 is a muta-strat
5:18xilmi: that will most likely fail too
5:18xilmi: 14 and/or 16 might work
5:18xilmi: these are the ones with lurkers
5:22marcodbaa: nice backstab
5:23marcodbaa: but there is more
5:23xilmi: prins is like a better version of leta
5:23SpriteClub: Betting open for KaonBot Vs. AILien -- Place your bets at starcraft.spriteclub.tv
5:24marcodbaa: vs zerg they play similar
5:25marcodbaa: now at least
5:25marcodbaa: had no tanks few days agao
5:25marcodbaa: except vs Killerbot
5:26xilmi: i don't really know what zerg leta doesn't beat, so mimicing his build is supposed to be good
5:27WillBotSC: kaon only one base?
5:27marcodbaa: Tyrs terran was always good vs zerg however
5:27xilmi: yeah but now it's even stronger
5:27marcodbaa: his m&m are extremely compact
5:28marcodbaa: but it is better
5:28marcodbaa: told him to update ;)
5:29Moderatorjaj22: Leta loses pretty heavily to SH's muta build at the moment.