Strategic/Tactical Concepts for AI : On and Off Game (plus thanks to devs)

Started by lotb, June 13, 2010, 01:51:37 PM

Previous topic - Next topic

lotb

Hi all, I'm lotb.

I've been playing with the AIs posted in this forum. All I can say is THANK YOU very much to all the AI developers out there.  I particularly love Strategy AI (for it's code simplicity, at least that's how I see it)  and Green Tea AI (for the great game tactics each general plays).

Brings me to an idea I'd like to share as you AI developers out there. I love Strategic/Military theories and here's one basic one that you might want to look at as you make your AI scripts:

The OODA loop by John Boyd (http://en.wikipedia.org/wiki/OODA_loop

OODA stands for Observe-Orient-Decide-Act.

The basic idea is get into the decision cycle of your opponent.  Your tactical/strategic attack should disrupt your enemy. You do this by working at a faster tempo.  Decide faster than your opponent and move quickly.

This is the heart of the intelligent REACTIVE scripts out there now.  If your bot sees this number of zealots, your AI script formulates that it must create this number of marauders or banelings.  This is how you counter your enemy.

For this to work, INTEL is very important.  This is the "Observe" element.  That's why we run early scouts to see what our opponent plays. If a protoss player puts out 2 Gateways, you'd immediately think - he'll mass Zealots.  Thus you (or your script) "Orients" to the situation.  Create  banelings or marauders immediately <- "Decide" and "Act".

ON GAME COUNTER

I've seen the scripts play typical counters when a scout unit have determined what the enemy's playing.  However, there are cases when there isn't effective scouting being done.  For instance the "STRATEGY" AI I've seen tends NOT to scout and identify what the enemy is doing. I think an effective "scouting" tactic must be within any AI script.

OFF GAME COUNTER

I've also noticed that scripts have focused mainly on-the-game counter. I do not know if this is possible - what if the bot can save your last game with it and remember your build order and counter your strategy based on what you've done before? 

I've seen a "MIMIC AI" map that supposedly could copy your build order.  I was wondering if this could be used a somehow in conjunction with the other IN-GAME AI.  Theoretically, the computer would remember your units/build order by a certain time and create counter-units before said set time.

THEORETICAL AI SCRIPT
I'm not really a coder (though I try to understand it). Here's how I think I would make a  AI script based on OODA and OFF-ON Game concepts:




1. Load  previous game's (if any) build order. Load counter build order. Run.
2. Send scout. Find enemy location (or any new base location). See build order if consistent. If not create and send harassment units (disrupt supply input). (Harassment units units also created and played if no previous game was played)
3. If scout dies, replace or find other ways to get enemy intel. (Compsat, etc.). Find other bases and monitor.
4. Create counter buildings and counter units. 
5. Repeat 2, 3 and 4.


Well something like that.  Rough theory on how to create strategically smart AI.

You'll notice that this is a purely macro game.  If there was a way to mimic and record the micromanagement behavior of winning game moves, then the AI would emulate/counter this as well.


--

Sorry for the long post.  I just want the AI scripts to be much better. HOpe what I've shared might be useful.



darka

@lotb

Thx for your support, Green Tea core is based on maphack. (A.I see whole the map)
With this infos, A.I can choose to attack if enought units or expand.
Can make counter with units infos (like vs armored make units own armored, air counter or others ...)
On this point, we work on core to improve it because of some bug already found, issue too.
Now the problem is not why, but how to fix it. A.I depend from Blizzard code too.
We cannot create things that doesn't exist or we need find a way to answer it.

lotb

Noted.


Love the work you guys have done.


Would love to understand how you guys do it right now.


At an early AI release, it's been awesome so far.

darka

A.I depends from Blizzard galaxy code. I am not as good as PT for code instruction.
I learn this code with Strategy A.I. Some people ask me to work on GreenTea who had a better core.
After I worked during 1 week-end to understand the script and start opening.
Finally, I was accustomed to this script and working with PT is well.
Now, we are trying to improve this A.I together and have good idea to do it.
I hope we can realise it.