ZAPOC
Posted: Sun May 16, 2010 7:39 pm
Some time ago I worked on making a final update to my Starcraft AI project, RequiemD. Out of it came two new AI scripts - ZAPOC (Zerg Apocalypse) and Mighty Crusader (protoss).
These two Aiscripts are available in the BWAILauncher. However, their version of the BWAILauncher does NOT have the latest versions of my script in it currently to my knowledge. The version I have upload DOES. This is THEIR version -
http://www.broodwarai.com/forums/index.php?showtopic=452
Quoted from my blog on TL related to sc2;
ZAPOC 7.0 is a script derived from the ashes of ZONS. My most difficult and final effort to create a functional Extreme Zerg to end all Zergs.
[imgwh 640x480]http://img709.imageshack.us/img709/8522 ... 144555.jpg[/imgwh]
[imgwh 640x480]http://img268.imageshack.us/img268/8353 ... 141234.jpg[/imgwh]
Early development screenshots - note the gametime.
Old development posts
This is released as-is and is considered FINAL. You may use Mighty Crusader and ZAPOC in your map or campaign project so long as I am provided credit. To access the AI scripts you can dig through the BWAILauncher directories to find the PyAI code for them.
These two Aiscripts are available in the BWAILauncher. However, their version of the BWAILauncher does NOT have the latest versions of my script in it currently to my knowledge. The version I have upload DOES. This is THEIR version -
http://www.broodwarai.com/forums/index.php?showtopic=452
Quoted from my blog on TL related to sc2;
These are my major posts in the BWAI development thread I had for the project before it was completed.http://www.gameproc.com/meskstuff/BWAILauncher.rar (My version, contains the newest ZAPOC and MC but other user's scripts may be outdated. I do NOT plan to make an exe version at this time.)
Running the main exe will yield this screen.
[imgwh 554x448]http://img709.imageshack.us/img709/2221/22654030.jpg[/imgwh]
Click the dropdown menu on the top and set to BWAIWar (AI vs AI). This will set the script selection to use these scripts out of the specific package, which contains my two major updated scripts; one for Protoss, called Mighty Crusader, and ZAPOC, for Zerg, which stands for Zerg Apocalypse.
Selecting these in the menu and pressing "Play!" will launch Starcraft and temporarily "patch" the game during this session. When you exit the game it will revert to normal unless you again use the Launcher. This is the way with all mods in Starcraft, Diablo, and Warcraft - they require third party programs to globally modify the game. Yes, globally - you can now play any melee, FFA, or TvB game versus the AI and the standard melee AI will be replaced with those you've selected. Do not have Starcraft, Staredit, or anything like that running when launching. If both players are running the mod you can both play on battle.net.
It is to be noted that ZAPOC and Mighty Crusader are Cheating AI Killers. That is to say they were built to kill other cheating AI's. They were NOT created with the BWAPI project - they cannot micro or do anything fancy like that. This is the same scripting method that people used since 2000.
A new notes,
- You cannot play with multiples of these AI's because they will encounter what is called multithread clashing. Starcraft has a global AI multithread limit. Many of these AI's make extensive usage of multithreads, especially Ashara's AI's and my Protoss. Sometimes this can be bad enough that when you load an AI vs AI replay (which is how we tested them; replays don't record AI actions so changes to the AI are reflected in replays!) both AI's will encounter considerable slowness and often cease to function at all.
- You'll need to play on a map with large main bases. BGH, for example, is far too small. ZAPOC will attempt to build around 40-60 hatcheries in its main base. On a small map, especially with elevations, I cannot predict what kind of hilarity will result or if the AI will just break entirely.
ZAPOC 7.0 is a script derived from the ashes of ZONS. My most difficult and final effort to create a functional Extreme Zerg to end all Zergs.
[imgwh 640x480]http://img709.imageshack.us/img709/8522 ... 144555.jpg[/imgwh]
[imgwh 640x480]http://img268.imageshack.us/img268/8353 ... 141234.jpg[/imgwh]
Early development screenshots - note the gametime.
Changelog -
7.0 -
Initial version.
7.1 -
First major version. Can stalemate Myk's protoss, but is lethargic in upgrades and construction.
7.2 -
Notable changes;
- Upped the maxes for ultras, guardians, the works.
- Builds more hatcheries.
- No longer builds sunkens. Seemed kind of moot with the addition of lurkers + I want to eliminate as many variables in building as possible when the AI has so much it needs to deal with.
- Gets 3 lairs for some instances where it would for some reason read ahead and get overlord capacity before hive. looks like I removed that because of issues it caused...
- Some minor alterations.
Problems -
- Works fine against Myk's Protoss, completely breaks vs Ashara's protoss. No idea why.
- Tech is not as fast as it could be. The main code still needs to be streamlined.
- Early hatchery construction is very, very slow for some reason. I want it to be as fast as Zbath's. But any changes totally break the script. Help?
7.3
Notable changes;
- Merged drone thread with main and exchanged some construction priorities into off threads and moved some upgrades.
- Builds hatcheries faster, retains good tech speed (ultra cavern starts at 4:50 in BGR), upgrades a little faster, all around better.
- Able to defeat Ashara in both BGR and BWAIWar while maintaining the ability to stalemate Myk's protoss on both maps. Unfortunately BGR really would never end regardless because both scripts trap many of their big units behind buildings. :\
Problems -
- This script still remains fairly vulnerable to a pre- 5:00 rush of significant size. It only gets hydras and mutas around 4:00 or so, before then it is completely open to attack. Once it hits tier 3 it is virtually impossible to kill unless it bugs out. This AI would probably not be able to beat Ashara on a very small map like Luna or other Progaming maps, and stalemating Myk in those maps would also be iffy.
As it is I don't think it is possible to beat Myk's protoss with zerg unless it is drawn out over an extremely long time. Sometimes ZAPOC does significant damage to its first or second expansions or destroys almost all of its expansions and deals minor damage to the main, but the protoss are always able to kill gratuitous amounts of units with archons and storm before they can begin attacking buildings. The distance also works against ZAPOC since it relies heavily on guardians to deal with archons.
7.4 - Current Version
Notable Changes;
- Increased the speed that upgrades are researched. This has come at the cost of some stability and it seems that they take some damage from Ashara/Myk's protoss in their matches though nothing significant as a result.
- Added anti-terran attack loop - is able to defeat Skynet.
- Removed send_suicide loop resulting in massively increased productivity. Instead of hovering around 150/200 supply vs Myk they were always at 200/200.
Problems -
- Remains vulnerable for the first 3 or so minutes in the game. For some reason vs terran they choose to make lings but vs toss they make hydras instead. I can't really let them build units during this time or slows tech way too much or, even worse, interrupts drone production.
- They don't seem to get 1-2 hatcheries out of the first hatchery block until after the hive is finished. The hive in general seems to stall the entire script until it's done, even unrelated multithreads.
- There is the potential the upgrade timings will break the zerg and cause them to refuse to build units or build them too slowly and die to the first major pushes from Ashara/Myk's toss, but in my tests it didn't seem to do that.
While testing this version vs Myk's protoss it froze my computer and caused me to lose the 7.4 scaiedit data. I still have the Py code but... not exactly my favored playground. I'll have to get used to it if I plan to update the Ai any further.
THIS IS CONSIDERED THE FINAL VERSION
[/quote]Mighty Crusader
After seeing the effectiveness of Myk's AI (HEY WHAT A COINCIDENCE MYK INSPIRED ME AGAIN WHAT A FELLA) one-base and defeat 6.9f, and later on stalemate ZAPOC, I began to think. Could I make something even better? Specifically to fight zerg. I had a few unit combination ideas in my head and wanted to at least give them a try.
Enter Mighty Crusader. The biggest pain in the ass script I've had to deal with so far.
I've discovered that each race has their own personality and handles attack code very differently from each other. I built the construction style somewhat similar to Myk's, except mine techs a lot more, but I used the zerg's attack code. It didn't work. The protoss would never build any units. After countless revisions and rewrites of the attack code I finally started getting results. But the protoss just wouldn't keep a decent supply level and would often not build any units to attack themselves. Considerably humiliating was the 1.4 defeat against ZONS 6.9f (which Myk's AI decimated because of its zergling problem and unstable attack code), where ZONS effectively destroyed Crusader and its 4-5 bases with one pack of hydras while Crusader chipped away at the ZONS base with carriers.
Concept
Mighty Crusader was to initially be a very tech oriented script. I wanted to use Dark Templar, High Templar, Archons, and Dark Archons exclusively for land forces. This would also give the AI a decent edge against Terran, although terran could counter with EMP, a mass of Dark Templar spells doom for any terran Ai because they will burn all of their scanners on a single attack (casting a scan for each scanner), making them very vulnerable. I suspect an infantry-massing AI would be able to kill this script, though, as it's simply not designed to fight terran.
Incidentally, Dark Archons were a bust. They just didn't use maelstrom except in very rare circumstances. So I removed them and left the remaining land units as they were.
This AI invests largely into air. I like Air. Baja doesn't like air, but I love air. Especially carriers. But scourge and devourers can really hurt carriers. So I pulled out the oldest trick in my book - scouts. Scouts are simply amazing little units in the hands of the AI because they are so durable and they do so much damage against air. They can attack land to boot. It's not a very good attack, but every bit helps. With disruption web, corsairs, scouts, and carriers, this protoss can put a serious hurt on most zerg with just its air forces alone. On top of that, they're also supposed to get arbiters which they will use to stasis large numbers of enemy air units with, further adding to crowd control and overall damage potential.
Ultimately this AI counters what I believe to be the zerg's strongest attribute - their anti-air. If a zerg gets air superiority they can do tremendous damage with guardians. Ashara's protoss relies exclusively on corsairs for its anti-air, and that's why ZONS and ZAPOC have such an easy time with it. Myk's protoss uses archons which kind of decimate the muta stacks from ZAPOC, but offense is impossible because of the critical mass production.
I intended for this protoss to be a ZAPOC killer but I don't think it will ever be able to do that simply because it's not fast enough and it's not good enough at unit production.
This AI first opens up with dragoons (without range) and zealots. It quickly acquires 1/1/1 upgrades to protect it against zerglings. The dragoons are to help against the ZAPOC muta timing rush and the Zbath mass muta attack, but corsairs alone were able to deal with the latter in my tests albeit with significant base damage which the protoss eventually recovered from. It then immediately switches to its build-oriented units.
Version History
1.5 -
- Current release version. Starcraft froze and I lost all scaiedit data on this script, leaving me only with this txt. It seems unlikely I will be updating it any further.
Notable attributes -
- Builds relatively fast.
- Can defeat both Zbath and Mutant Zerg in my tests, though Zbath gives a bit of trouble with the expansions because the protoss doesn't get shuttles.
- I gave the AI Zealots and Dragoons in early game to deal with rushes and ZAPOC's muta timing rush which comes considerably faster than Zbath's mutas. I only tested this once, which they managed to defend vs the ZAPOC rush but this is where it froze so I didn't see the rest of the game after that. I also haven't tested the 1.5 build against other zerg yet, so my tests are based on 1.4 which functioned worse and got strictly zealots in the beginning
- All upgrades and base construction seems to work reasonable well.
- Massively simplified structure compared to earlier examples and most other protoss scripts. Very few multithreads are used now, making sure it does not clash with other scripts. This AI might even work in larger games.
- Able to deal with heavy Zerg air reasonable well, even masses of scourge because they all ram into one target, usually a scout or a corsair.
- Super-fast upgrades like Myk's protoss make the early attacks in particular really strong against zerg if they have the unit count.
Notable issues;
- Unit production remains problematic, but not as horrible as it used to be. I expect ZAPOC or another updated zerg AI who maintains 200/200 permanently to be able to easily kill this protoss.
- Expansions build very slowly if at all.
- send_suicide is tremendously bad for keeping this AI's attack groups together.
- Observer and Arbiter construction is not very consistent even when the AI reaches a good production state. Since they don't get many cannons because they are lazy faggots, this makes them exceptionally vulnerable to ZAPOC's lurkers.
- This AI does not have any anti-terran scripts, but if it builds units reasonably it should be able to put up a resistance against most Terran AI's except for Skynet and Baja's nuking terran.
- This AI was repeatedly crashing the game in my tests but with my revised attack code it hasn't crashed since. It's very possible it will still crash.
Old development posts
Jan 3 2010
Added 7.3b to the main topic.
Some amusing screenshots for your entertainment.
[imgwh 640x480]http://img136.imageshack.us/img136/9042 ... 010210.jpg[/imgwh]
^ lol battlecruisers
[imgwh 640x480]http://img209.imageshack.us/img209/5828 ... 155019.jpg[/imgwh]
[imgwh 640x480]http://img136.imageshack.us/img136/3043 ... 154849.jpg[/imgwh]
^ The stalemate on BGR is assured by all of the dudes trapped behind buildings...
I just noticed the ultras have no melee upgrades ugh did I break it again
[imgwh 640x480]http://img163.imageshack.us/img163/9164 ... 150012.jpg[/imgwh]
^ I have no idea.
I'll have to check those upgrades and the zergling speed later.
Wait, they don't even use zerglings. We don't need zergling speed we don't even get ADRENALINE WHY ARRRRRRRRRRRRGH
Jan 8 2010
I tested the protoss against Skynet. They very, very barely won through DT abuse. The terrans blew up about half the protoss base early in and this totally broke their AI, causing them to softlock repeatedly and rarely go past 50 supply. Every now and then a few carriers and a sputter of dts would get out and slowly destroy the terran base, eventually killing the main CC and crippling them. The death was agonizing and wretched.
I ran a test against ZAPOC and I stopped at about the hour and a half/ two hour mark. It seems as though the protoss might be able to stalemate ZAPOC as the zerg could not deal enough damage to the protoss base to kill them. The protoss did very minor damage to the zerg base before they hit critical mass which was a bit slower and later than usual, but after that had a hard time penetrating the zerg's sheer unit count.
They do reasonably well. Not that good, but reasonable.
This is released as-is and is considered FINAL. You may use Mighty Crusader and ZAPOC in your map or campaign project so long as I am provided credit. To access the AI scripts you can dig through the BWAILauncher directories to find the PyAI code for them.