BWAIWar

Help - Resources - AI Scripting - Grafting - Plugins - Modding Projects
Equalizer
Posts: 83
Joined: Wed Sep 23, 2009 3:49 am

Postby Equalizer » Sun Jan 03, 2010 12:04 am

If I remember right Avance Z gave it a lot of trouble before just because it swarms with so many low tech units while the Terran is teching up so it used to not have the numbers to hold out.

Panda Z gave it some trouble on Colosseum with its ultralisks. Ironicly it got beaten by a medic/marine/firebat rush on Byzantium.
User avatar
Myk
Posts: 257
Joined: Sat Jun 13, 2009 12:56 pm

Postby Myk » Tue Jan 05, 2010 12:18 am

[attachment=2515:Myk_Z.txt]

Results:

vs T
Archon: 1,1
Baja: 1,1
Blizz: 1,1
EasyChat: 1,1
Equalizer: 1,1
JH24: 1,1
Racine: 1,1
= 14

vs P
Archon: 1,1
Ashara: 1,1
Baja: 1,1
Blizz: 1,1
JH24: 1,1
Peppe: 1,0
Racine: 1,1
Zelduck: 1,1
= 15

Details:
vs T: Eq's script is still the greatest threat to this script. It's fast tech and "sleeping giant" like behavior gives an edge that other AI scripts haven't quite grasped. Using resource jumps to build, it also keeps really good unit production.
JH, AW & EasyC scripts come up next in line, their solid builds and bunkers keep them safe for a little while, but a lack of tanks seems to be their downfall. The rest of these either don't get enough defense or not enough tanks/tech to hold on.
How to beat my script Siege Tanks.

vs P: I really tried to make some sort of tech build work, but due to the myriad of different timing of zealot rushes and intensities, I couldn't ever find a suitable amount of defense. So, I flipped it around to having a much stronger offense. 3 hatchery speedlings eats most of these 2 gate scripts for breakfast. The trend here is that a lot of these get their tech after expanding, which is just too late. Peppe P maintains big zealot numbers and gets Dark Templar on Destination, providing enough defense and offense to hold off the mass zergling attacks.
How to beat: Some sort of 2-3 Gateway rush and then tech to Archons or DT/Sair before attacking again or expanding.
User avatar
Myk
Posts: 257
Joined: Sat Jun 13, 2009 12:56 pm

Postby Myk » Tue Jan 05, 2010 9:34 am

[quote name='bajadulce' post='8852' date='Jan 4 2010, 04:53 PM']Edit:
I see you've added some comments and details:
I'd have to disagree with the theorycraft you're suggesting however. From what I've seen, every single one of the scripts in this contest has the ability to beat any other script including the ones from the very bottom. It's just a matter of timing and or changing that timing. A delayed attack here or expansion there usually makes all the difference. It's just a matter of changing things around and finding the timings that work. .. and of course having a decent build. Being the last guy with all the power is huge too.

Here's my quick rebuttal to demonstrate it's all about timing and not "theorycraft of some unit compositions"..
change line # 102 in my T1.2 script from wait(1000) to wait(1500) and suddenly it wins on byzantium.. That's the difference between winning and losing. It's all about timing not how "good" some script is. All of the scripts here are good and everyone of them can win. It's just a matter of finding the right timings.

Excellent job again.. am working on fitting in a new Zerg on the web page. The tables will have to be shrunk a bit! :) I'll try to get to it asap as well as update the BWAIWar folder.[/quote]

I guess it is pretty easy to judge all the other builds having been really late to make an entry for the war. I should know, since all of you guys have been beating down on my  scripts for the past few days and I'm taking the jabs and waiting for the next opponents to be updated so I can beat back on them for a while. Haha!

Though, calling my suggestions theory-craft isn't too nice. I've got some nice test builds here that have beaten or at least almost beaten this Zerg. Changing around builds and adjusting timings are totally key. It takes a lot of time to get either one of those right or even good enough.

(Ick, my internet went out right before posting...)

I've ended up with some horrible cheese as my Zerg entry. I end up feeling bad because I didn't include something more similar to whatever "standard play" is to show off how well it performs, instead of just how fast it gets Ultralisks or a mass of Zerglings, in this case, lol.

The other scripts are really good. I never intended for it to seem otherwise. I use almost all of them when testing new things and they've all beaten some variation of my Zerg at one time or another.

Well, this is turning into a big wall of text. I better stop mashing away on the keyboard for a while. ;)
Equalizer
Posts: 83
Joined: Wed Sep 23, 2009 3:49 am

Postby Equalizer » Wed Jan 06, 2010 2:10 am

I am not sure I like the idea of simply tweaking timings to counter an opposing AI because a counter rebuttal would likely only require some "counter tweaking" of the other AI's timing. As such this could go on indefinitely with neither AI becoming any better. I could be wrong but it is not uncommon for an AI to win just because it "got lucky" with its attack timing instead of actually over-powering the opposing AI.

I would promote the concept of having the AI change its behaviour dynamically by having it trigger timing changes off of something it can detect of the opponent's timing, instead or hard coding the change.


@Myk's Z AI: Reminds me of Panda Z (some version), but made faster and less vulnerable. While simple I think these types of scripts are what lead to the making of AIs that are overall much better than those before them. This is because for an AI to hold up to very specific builds such as this while not being clobbered in some other match-up it has to have an all round solid build.
User avatar
Myk
Posts: 257
Joined: Sat Jun 13, 2009 12:56 pm

Postby Myk » Wed Jan 06, 2010 3:33 am

[quote name='Equalizer' post='8868' date='Jan 5 2010, 06:10 PM']I am not sure I like the idea of simply tweaking timings to counter an opposing AI because a counter rebuttal would likely only require some "counter tweaking" of the other AI's timing. As such this could go on indefinitely with neither AI becoming any better. I could be wrong but it is not uncommon for an AI to win just because it "got lucky" with its attack timing instead of actually over-powering the opposing AI.

I would promote the concept of having the AI change its behaviour dynamically by having it trigger timing changes off of something it can detect of the opponent's timing, instead or hard coding the change.


@Myk's Z AI: Reminds me of Panda Z (some version), but made faster and less vulnerable. While simple I think these types of scripts are what lead to the making of AIs that are overall much better than those before them. This is because for an AI to hold up to very specific builds such as this while not being clobbered in some other match-up it has to have an all round solid build.[/quote]

I remember talking to AW about timings and he suggested that if we kept changing timings and whatnot for these things we would end up with AI opponents that just don't attack and the winner would be whoever lasted the longest before attacking. If you have pretty reasonably constructed scripts that spend their money on units and upgrades, they're pretty even in armies, but when one of them attacks usually the defender will come out ahead.

There's lots of other weird timing issues. You can get armies passing each other or even Zerglings that refuse to defend a Hatchery or all kinds of other missteps taken by the comp. I had this happen a lot with my past lurker-oriented AI.

I wish it were easier to detect what the other AI was doing as far as actual numbers of things. Then you could do something like make the AI build a Spire just to fake-out the Terran that goes into defense, instead of the T detecting the Queen's nest and recognizing that the opposing Zerg was teching super hard to Ultralisks and it should expand to a third base immediately. Stuff like that would really throw off those detection loops, but I haven't actually tried it out yet.
I remember I had Baja scripted a trigger like that based on the Zerg gas timing and I had a script that would get really fast gas and then double expand and the T hadn't been setup to handle that scenario to well. Ashara has a check for an early Spawning Pool and it will expand early if it's detected and if it's just a Hatchery first build it will make a giant mass of Zealots. Both of those were easily exploited. Maybe BWAPI would lend itself to this kind of stuff, but then again, the ridiculous micromanagement those guys have coded opens up all sorts of balance issues we'd have to sort out.

My Zerg script is heavily inspired by PandaBB's. I've been using the basic concept of that 2 base Ultra rush for a while, but this has been the best implementation of it, which uses resource jumps to help unit and tech production. This is further assisted by unit loops that hardly ever stop, keeping a maximum amount of units out per minerals available.
This whole idea is furthered by aggressive expansions and pummeling the opponent with units.

Through the evolution of AI scripting, we've arrived at this resource loop based scriting style, which Equalizer has used quite a bit with his Terran AI. Does it make a better script? Maybe. The two AI that are based on this style are both big points leaders here.
Equalizer
Posts: 83
Joined: Wed Sep 23, 2009 3:49 am

Postby Equalizer » Wed Jan 06, 2010 4:39 am

I've actually found that if the attacking AI has a well coordinated attack the attacker has a substantial advantage due to having all their units concentrated while the defender can be very spread out.

Obviously this becomes more the case later in the game with 2+ expands so I would argue that even with AIs with misserable attack micro there is a point where turtling can't win due to unit spread and the attacker will win.

I still don't quite understand how the attack control works as I've seen the AI attack prepare sending many of its troops out just as the enemy attacks and have them sit or go attack the opposing base while their base gets overrun. While other times it some how sees that attack coming and instead of targeting the opposing base it seem target the attack as it preps all of its units just infront of the opposing force and charges right into it even if the angle of attack is in a direction away from the opposing base.

For a while I was thinking the rush checks could be used to trigger off of the opposing units but I never got it to behave the way I wanted to but it may be possible.

edit: I forgot my favourite quarky attack control feature, its when the AI preps an attack and a small number of the attack units (1-3) get killed while preparing and that attack some how gets cleared without ever being launched and all the attack units get sent back to the AIs base.
User avatar
Archon_Wing
Posts: 903
Joined: Wed Jul 25, 2007 11:22 pm

Postby Archon_Wing » Wed Jan 06, 2010 5:25 am

Hah, very interesting thoughts. I never thought too much about strategy. My AI vs AI scripts were not altered much from the regular ones and thus weren't very adaptable.

But there's a bunch of ways to approach this:

General strategy. If a good counter build can be found; it can easily net a lot of wins.

Example: Panda ZvP, counter to rush builds, easy points after writing about 50 lines; my fast expand build was way too crude to really do anything. (builds a gateway at 5 min?)

My own PvT fast expand crap is another example, since it was literally tacked on at the last second. Despite having no timing whatsoever, late tech, and poor resource usage, it pretty much rolled every other terran except my own, though its overall weakness was eventually exploited by later entries. ;)

Timing: Take advantage of windows to do a certain thing.

Panda's ZvT was a perfect example of exploiting the terran scripts (at the time)'s tendency to not attack and built exactly as much defense as possible. It was eventually exploited due to this

Baja's raynor script would also defend and or expand depending on certain actions of a script, allowing it to take advantage of a number of windows.

Ashara's P script is a very heavy user of this, as well, and I thought it was very masterfully designed.

It's another very effective way to gain points.

Mechanics: The simple ability to get things faster, and more importantly, have more doodz than the other guy. Aka:Macro As with many low level human players, often times the player with the superior mechanics will win regardless of strategy.

The first example of this was Counterzerg. It could simply power through most other scripts. If it actually had a more reasonable opening build (14 pool is wayyyyy too late), it would be very strong even now.

Equalizer and Myk's script are probaly great examples of this. With powerful macro and a number of adaptive checks, it proved to be overwhelmingly hard to deal with and perhaps could kill an unwary player or two. Unlike top-down scripts, the behavior of these scripts are unpredictible and cannot be easily slowed down by aggression like a traditional script.

Of course, managing all 3 things would make something really hard to beat, if not invincible. Everything is beatable, but the bar can be raised.

Return to “StarCraft Modding”

Who is online

Users browsing this forum: No registered users and 1 guest