EDT 00:10 CEST 06:10 KST 13:10

Streams: 109 live
24744 total viewers

Active: 7211
Pizza Meter
AMD Premier League S1 Gran…
[WCS KR] Semis: Soulkey vs…
[WCS AM] Premier League Ro…
TI3 East Qualifier Preview
[WCS AM] Challenger Round …
Papa John's explores EG, L…
TeamLiquid Map Contest Fin…
Liquid wins the Curse Invi…
mousesports defeats DD.Dot…
Dragon joins Clarity Gaming
Code S Group of Death, Par…
Axiom.Miya Retires
New Get 50% off Papa Joh…
TL Advertising Features
Korean Music Discussion
[TV] Star Trek: Deep Spa…
[TV] HBO Game of Thrones
Star Trek: Into Darkness
GeoGuessr geography game
The Automated Ban List
The Closed Thread Lounge
Barcraft DF - WCS Europe F…
Long Island, NY BarCraft!
Barcraft Edmonton!!
NesTea Fanclub
The Alicia fanclub!
[Stream] KumA
[Stream] Bails
Help me to buy an ultrabook
Simple Questions Simple An…
Computer Build Resource Th…
Mechanical Keyboard Guide
Any fix for Twitch tv lag?
Post your Papa John's Es…
Papa John's explores EG,…
[Interview] SPL 8th Team…
Awesome/Confusing SC2 BM
Grandmastering the Ladde…
Designated Balance Discu…
[WCS AM] RO16 Group A Prem…
[Code S] RO4 Day 1 WCS Kor…
GomTV to hold/broadcast Up…
[Rochester NY] HotS Monthl…
[SPL] SK Telecom T1 vs. CJ…
[G] Boss TvP Allin
TvZ: A different flavored …
[H] Need help with my ZvT
The HotS Terran Help Me Th…
[G] PvP: Modern DT Expand/…
TeamLiquid Map Contest Fin…
[D] Favorite Maps that Did…
Work In Progress Melee Maps
[D] Map Contest Finalists,…
[A] Starbow
Inhouse Dota
General Discussion
Dota 2 QQ thread
The Great Dota 2 Key Req…
AMD Premier League S1 Gr…
Liquid wins the Curse In…
[TPL S5] Demon Edge Cup
[The International] Easter…
Liquid Pasture Community L…
[D2L] Na'Vi vs. Dignitas
Starladder Season 6
Simple Questions, Simple A…
Solo Mid - Who? What? How?
A guide to Krobelus, the D…
Newly ported Hero discussi…
[Guide] Storm Spirit by Bl…
Better Server Registry F…
Pucca Comeback?
[Update] itemBay SSL Gra…
snipealots 24/7 afreeca …
Making an Online Broodwa…
[TLS2] Qualifier #4 VODs
[TLS2] Qualifier #4
D Ranks Teamleague Season 4
[GC S3] Gambit's Cup Semif…
Torenhire Starleague II
2x Speed Hack Perversion T…
Challenger map on Starcraf…
Simple Questions, Simple A…
Tips and tricks: Defilers …
Practice Partner Thread
Touhou Discussion Thread
Magic: The Gathering Onl…
NBA Playoffs 2013
Path of Exile
Tera MMORPG
[Patch 3.07: Nerf Everythi…
The Shikyo Memorial for QQ…
[HELP] i CAN'T play melee …
[LoL] General Stream Thread
[D] Pro Scene Evolution
[OGN] Olympus The Champion…
[Champion] Nunu
[Guide] Montegomery's Supe…
[Champion] Udyr
The: What is my item worth?
D3 Hardcore Community
Witch Doctor Discussion
Carnival Cruise Mafia
Newbie Mini Mafia XLII
[M][N] Les Mafia
TL Health and Fitness Init…
Running Thread
Questions & Answers
Leta - Movie
Michael - skyline
Anytime - Beast
By.Hero - Shuttle
Anytime - Pusan

Website Feedback

Closed Threads

IRC Chat
irc.quakenet.org #teamliquid

IRC Web Client

TeamSpeak 3 (83 users)

First steps towards perfect AI micro

Forum Index > Brood War 1 2 All
 
 Serendib   July 05 2012 06:51. Posts 63
Profile # 


Another update from the world of academic StarCraft AI! Here is a video demonstration of the results from our paper:

"Fast Heuristic Search for RTS Game Combat Scenarios"

We use a new algorithm (ABCD - Alpha Beta Considering Durations) to plan all unit actions you see being performed. The search is allowed to run for 50ms per frame in order to simulate real-time performance. There is *NO* human input or hard-coded scripting being used. All actions are being decided intelligently in a similar manner to how chess AI systems work. The reason this problem has been so hard is two fold:

- Extremely high branching factor for search (ie: an exponential number of possible simultaneous actions)
- Limited resource budget (50ms per decision, vs. many seconds or even minutes given to a game like chess)

Unit HP bars are shown above the units, as well as larger versions in the top-right corner. The red units are controlled by search, while the blue units are controlled by the default "attack closest unit" behaviour which is default to the StarCraft built-in AI. Initial starting positions for units are generated randomly, but symmetrically to guarantee fairness.

Shown is our combat simulation visualizer. Due to some issues with unknown unit behaviour in StarCraft, it is not yet possible to carry out perfect action execution in the game itself, so we showcase its performance first in simulation. Soon we'll be incorporating this into our AI bot "UAlbertaBot" which came 2nd place last year at the 2011 [AIIDE StarCraft AI Competition](http://www.starcraftaicompetition.com).

- Why is this new?

This is new because every other micro system so far (including those in BW, SC2, and the AI competition) has been performed using hard-coded human knowledge, or with incredibly long rule-based scripts. With this system, I can simply throw any units at it and it figures out the best moves on its own.

- Why does the script win sometimes?

In the examples I recorded, the blue player (script) does win sometimes. This is due to the nature of the randomly generated positions, as well as the visualization eating up some of our processing time. In our paper, our method beats the best scripts used from the 2011 StarCraft AI Competition over 80% of the time.
Last edit: 2012-07-05 06:52:03
Old Post

 
 okum   Austria. July 05 2012 07:08. Posts 5699
Profile Blog # 
Very cool.

What does it actually evaluate? Does it try to play the battle to the end, or just find a strategy that gives a good position some time into the future? Then how does it evaluate the strength of a position? Are you using (or plan to add) heuristics? Would the winning ratio improve if the algorithm was allowed, say, 100x more computation time? How does the algorithm scale with the number of units?
I was a Flash fan before it was cool | Coiner of "jangbang"
Old Post

 
 Zhyq   United Kingdom. July 05 2012 07:38. Posts 113
Profile # 
Interesting stuff. Is the paper available to read yet? If not, when is it expected?
Last edit: 2012-07-05 07:38:32
 
Old Post

 
 JustPassingBy   July 05 2012 08:17. Posts 6247
Profile Blog # 
Is the search parallelized to run on multiple cores? If not, is it possible to do it and, if yes, would you expect significance improvements (i.e. how limiting is this 50ms limitation).
Old Post

 
 WightyCity   Canada. July 05 2012 09:31. Posts 764
Profile # 
this is amaazing work. gj
90% watching it 8% talking about it and 2% playing it - sc2
Old Post

 
 Chef   July 05 2012 10:22. Posts 9708
Profile Blog # 
Seriously awesome :D Thanks so much for sharing and choosing to take up this project
LEGEND!! LEGEND!!
Old Post

 
 Serendib   July 05 2012 12:38. Posts 63
Profile # 

On July 05 2012 07:08 okum wrote:
What does it actually evaluate? Does it try to play the battle to the end, or just find a strategy that gives a good position some time into the future?


It is trying to decide the best 'next move' that it can perform. This is, when a unit (or multiple units) finish an attack or move command, what is the next best thing they should do?


Then how does it evaluate the strength of a position? Are you using (or plan to add) heuristics?


We use two methods to evaluate a position. The first is: for each player, sum the square root of their unit hit point remaining, multiple this by their damage per frame, and then divide this by the starting total for this value. This gives us a number between 0 and 1 indicating a heuristic 'strength' of our original force.

The second is through scripted play-outs, similar to monte carlo simulations, but deterministic. We use a script to guide actions from a leaf node in the search, and then use the above formula to evaluate the end state of the scripted simulation.


Would the winning ratio improve if the algorithm was allowed, say, 100x more computation time? How does the algorithm scale with the number of units?



We do get better results if we allow for more time, but I don't have exact numbers for you. Right now we are able to do search up to 8 vs. 8 units, due to the exponential branching factor of the problem. For example, if we allow Attack, Up, Down, Left, Right movement for 8 vs 8 units, and all units are within range to attack each other, the branching factor (number of combinations of possible moves for one player) is 12^8.
Old Post

 
 Serendib   July 05 2012 12:40. Posts 63
Profile # 

On July 05 2012 07:38 Zhyq wrote:
Interesting stuff. Is the paper available to read yet? If not, when is it expected?


I can't release the paper yet, since it has just been accepted to AIIDE 2012, but the camera-ready version hasn't been submitted. However, the paper improves on results from this paper, written by my supervisor:

https://skatgame.net/mburo/ps/rab.pdf
Old Post

 
 Serendib   July 05 2012 12:41. Posts 63
Profile # 

On July 05 2012 08:17 JustPassingBy wrote:
Is the search parallelized to run on multiple cores? If not, is it possible to do it and, if yes, would you expect significance improvements (i.e. how limiting is this 50ms limitation).


Any sort of parallel techniques that could be applied to alpha-beta (which are quite tricky) could be applied here, however with only 2 cores available to us during the AI competition, we may not benefit very much from it.

50ms is incredibly short amount of time, but for example we are able to look-ahead up to about 20 moves in the future in 2v2, or 5 moves in the future in 8v8 using this technique.
Old Post

 
 undyinglight   United States. July 05 2012 13:48. Posts 588
Profile # 
Visually this reminds me a lot of Robotron 2084.
Rise Up!
Old Post

 
 JustPassingBy   July 05 2012 21:14. Posts 6247
Profile Blog # 
This might be a noobish question to people who are familiar with the topic, but changing to 100ms per 2 frames improve the result or make it worse?
Old Post

 
 1a2a3aPro   Canada. July 06 2012 01:39. Posts 181
Profile # 
As a developer, I find this really cool. Please open-source your efforts after the competition?
We are just an advanced breed of monkeys on a minor planet of a very average star. But we can understand the Universe. That makes us something very special.
Old Post

 
 Equalizer   Canada. July 06 2012 01:57. Posts 106
Profile # 
Are there any thoughts on how to improve the scaling?

It seems that its still quite a long shot to get from 8v8 to full scale battles in a real game.

Also how well can it handle a combination of different unit types that need to work together (say vultures, goliaths, and tanks)?
The person who says it cannot be done, should not interrupt the person doing it.
Old Post

 
 3FFA   United States. July 06 2012 04:45. Posts 2651
Profile Blog # 
And what about reaver micro? Can we get a video of it trying to do Reaver/Shuttle Micro?
I no longer expect the best in people. Sadly, I am beginning to expect much worse.
Old Post

 
 ZeroCartin   Costa Rica. July 06 2012 05:28. Posts 2147
Profile Blog # 
Cool. I can see space for improvement though. Some dragoons die since they almost have no health. They could have been saved if they had moved further away and avoid damage.
"My sister is on vacation in Costa Rica right now. I hope she stays a while because she's a miserable cunt." -pubbanana
Old Post

 
 snakeeyez   United States. July 06 2012 08:48. Posts 754
Profile # 
Always cool to see brood war bots get better. I wonder also about moving the weak goons to back or can it handle different combinations of units? Speed might be a problem once you get late game with huge battles those tree searches are going to get slow but again I always said you never have enough CPU in AI problems.
Old Post

 
 AcrossFiveJulys   United States. July 06 2012 11:05. Posts 3593
Profile Blog # 
Are you doing the search individually for each agent? It seems that considering friendly units around would be important, and its importance would scale with the number of units and unit combinations involved.

Regardless, this is cool, but I think using a search method to select individual actions is a dead end if your long term goal is to produce an intelligent sc player. There needs to be an element of learning involved combined with abstraction so that you are planning with (learned) higher level behaviors. In other words, I think your goal should be to produce a behavior/policy which is able to decide what to do in particular micro situations without needing to plan in real time.

So I would suggest forgetting about the 50ms ceiling you're imposing. You are essentially using a brute-force search method and you can't expect it to scale well. I think your method would be useful instead for producing examples of perfect micro behavior (especially if you cranked up the ceiling to minutes) which you could then feed through a learning algorithm (such as a supervised learning algorithm, or apprenticeship learning, etc) which would then be able to make decisions in real time, and can be used by a higher level AI which does more than just micro a single battle.
 
Old Post

 
 Fluid   Canada. July 06 2012 11:29. Posts 132
Profile # 
Have you tried it in a real game? (AI vs AI, and you spectate)
Old Post

 
 Morfildur   Germany. July 06 2012 15:09. Posts 3488
Profile Blog # 
This should work for normal units but i can image it becoming extremely complex with units that have special effects, i.e. SC2 broodlords (broodlings), BW/SC2 carriers (interceptors), SC2 marauders (slow), BW Reavers (Scarabs) as well as active unit abilities (SC2 ghost snipe, BW marine/SC2 marauder stim, ...).

Good luck implementing that into the Starcraft AI.
Last edit: 2012-07-06 15:16:42
"Remember kids, the 3 most important things for becoming a good player: Micro, Macro and always take your Dailies!" - Rastaban
Old Post

 
 Fluid   Canada. July 06 2012 16:23. Posts 132
Profile # 

On July 06 2012 15:09 Morfildur wrote:
This should work for normal units but i can image it becoming extremely complex with units that have special effects, i.e. SC2 broodlords (broodlings), BW/SC2 carriers (interceptors), SC2 marauders (slow), BW Reavers (Scarabs) as well as active unit abilities (SC2 ghost snipe, BW marine/SC2 marauder stim, ...).

Good luck implementing that into the Starcraft AI.



Well I think it would be interested to see if he just changes the AI for the units that don't have special abilities and leave the original AI for those that do. And then just try out a game or two and see how the computer plays with it's new skills.
Old Post

1 2 All
Please log in or register to reply.
 
Refresh
StarCraft: Brood War
StarCraft 2
Dota 2
[ Show 97 non-featured ]

» Recent SC2 Results
» Premier SC2 Tournaments
Sidebar Settings...

The Little App Factory



The opinions expressed by our users do not reflect the official position of TeamLiquid.net or its staff.

Advertising | Jobs | Privacy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren. Ad tag: TF_US.
The contents of this webpage are copyright © 2002-2013 Teamliquid.net. All Rights Reserved