Unleaded AI 3.3 Full Non-cheating AI (Updated 2/23/10)

Help - Resources - AI Scripting - Grafting - Plugins - Modding Projects
User avatar
Archon_Wing
Posts: 903
Joined: Wed Jul 25, 2007 11:22 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Postby Archon_Wing » Thu Jan 15, 2009 2:44 am

User avatar
Archon_Wing
Posts: 903
Joined: Wed Jul 25, 2007 11:22 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Postby Archon_Wing » Wed Jan 21, 2009 6:11 am

Ok, allow me one more try before I hang up AI editing for good. Here's a little gift, strictly for the laughs.
Both my and Zerg AIs have been consolidated into 1 attachment. (Latest Version: 1/29/09) Also the AI scripts are located in this post as well. If you want to modify any of them, feel free to. Note that the AI will only work on ground maps.

This non-cheating AI is relatively simple. Nothing elaborate like trick builds or complex counters. The AI's goal is to provide a bunch of lings and mutas to the battlefield. It probably isn't the best 1v1 opponent, and it works best if you give your it some support. If the game goes on long enough guardians and devourers may appear. May have 20+ hatcheries if allowed to expand enough at which point its forces will pop right back up when destroyed. ;)

Tip: To play with the comp as a team, go to multiplayer, select local area network and create a game. Make the mode, "top vs bottom" I have no idea why they didn't place this in single player. You may also try this on battle.net or hamachi, though everyone must be running the same mod.

It normally does a 9 pool rush, but sometimes may do a 6 pool or 12 pool. If you try to 4 pool or 5 pool, the AI will definitely respond with a 6 pool. ;)
Uses a resource query check later on to make better use of its economy; this idea was originally seen in Easychat's TvP script.
Inspired by counterzerg; if you can't beat them, join them! Though I am sure the pacing of this script should give a rather different experience.
1v2 ai 2v3a, or 3v4 ai on maps with decent pathing (not too many obstructions is best) should work best. You may also try putting them on your team as well.

Stratzors
[spoiler]It will always rush 6 lings, unless it is a 12 pool. Then it will just build lings and hang out for a bit for a hatchery. If you build a early pool or lair, the AI may mirror it. After the initial rush, the AI will be very weak as it tries to rebuild troops and economy, thus it will be highly vulnerable to a counterattack. Support during the initial rush and/or counter defense is highly recommended.

A bit later on, if the AI is not heavily damaged, it will have a decent economy and defenses. It takes a while to launch another attack. However, Storm Zerg is highly effective at sending zerglings to support allies that are under attack. Note that it may decide to not attack in favor of a larger force. It is however, eager to aid allies in need.

If Storm Zerg is still intact during the mid game, it becomes a highly effective war machine, capable of using tons of mobile mutaling forces to toss at the enemy or aid allies. The AI will react to air threats with spore colonies and scourge.

It will tech when it has excess resources or when the enemy techs high. If more resources are left over, it will build more hatcheries and expand. Due to its lack of unit variety, it will get upgrades pretty fast.

Late game, it will continue to mass expand, placing hatcheries and sunkens all over the place, and will get cracklings, guardians and devourers in addition to the mutalisks. A highly developed storm zerg is very difficult to stop.

Strats when playing with the AI as your ally: Rush with it, and delay any counter offense until storm zerg can take care of itself (activate macro mode).
Strats against the AI: Block your ramp; kill it off when its rush fails. Storm, archons, corsairs, firebats[/spoiler]


Recommended maps for this AI, or AIs in general

Unfortunately, the AI can't tell what map it's playing on, except that it's an island or land map. Thus, it can't really handle stuff like cliffs not accessible by land or other obstructions. Thus, to minimize AI retardation, and for the best playing experience, one should try these maps. Just click on the name, and it'll take you to the download page.
, , , , , ,


Some of these maps seem good for team games. Crusaders and Equilibrium K8 looks really nice for larger scale team games. Snake pit for more close quarter battles, but small mains can be annoying

Script
[spoiler]extdef C:/Program Files/PyMSwinEXE/unitdef.txt


# stat_txt.tbl entry 1344: Zerg Expansion Custom Level<0>
ZMCx(1344, 101, aiscript):
start_town()
transports_off()
farms_notiming()
groundmap_jump(STOz 0000)

--STOz 0000--
define_max(100, zergling)
define_max(75, drone)
define_max(100, mutalisk)
define_max(8, devourer)
define_max(100, scourge)
build(1, drone, 150)
wait_buildstart(1, drone)
build(1, hatchery, 150)
wait_buildstart(1, hatchery)
build(1, overlord, 130)
wait_buildstart(1, overlord)
build(6, drone, 80)
random_jump(32, 6_pool)
enemyowns_jump(spawning_pool, 6_pool)
random_jump(32, 12_pool)
build(9, drone, 80)
wait_buildstart(9, drone)
build(1, spawning_pool, 80)
wait_buildstart(1, spawning_pool)
build(1, overlord, 80)
wait_build(1, overlord)
build(10, drone, 80)
train(3, zergling)
defenseuse_gg(1, zergling)
multirun(moar_hatch)
attack_add(6, zergling)
attack_prepare()
build(12, drone, 80)
farms_timing()
build(13, drone, 80)
attack_do()
attack_clear()
goto(early_game)


--6_pool--
build(1, spawning_pool, 80)
wait_buildstart(1, spawning_pool)
train(3, zergling)
defenseuse_gg(1, zergling)
attack_add(6, zergling)
build(7, drone, 70)
attack_prepare()
attack_do()
attack_clear()
multirun(moar_hatch)
attack_add(4, zergling)
build(1, overlord, 80)
attack_prepare()
attack_do()
attack_clear()
farms_timing()
build(13, drone, 80)
goto(early_game)


--12_pool--
build(9, drone, 80)
wait_buildstart(9, drone)
build(1, overlord, 80)
wait_build(1, overlord)
build(12, drone, 70)
build(1, spawning_pool, 80)
wait_buildstart(1, spawning_pool)
train(3, zergling)
defenseuse_gg(1, zergling)
farms_timing()
build(13, drone, 70)
multirun(moar_hatch)

--early_game--
wait_buildstart(13, drone)
multirun(ling_speed)
multirun(evo_ups)
multirun(air_up)
train(5, zergling)
build(1, extractor, 80)
train(8, zergling)
build(15, drone, 70)
multirun(main_defense)
train(12, zergling)
multirun(crack)
train(20, zergling)
build(1, evolution_chamber, 60)

--lings--
attack_add(40, zergling)
attack_prepare()
wait(100)

attack_do()
attack_clear()
resources_jump(300, 300, mutaling)
wait(200)

goto(lings)


--mutaling--
notowns_jump(spire, lings)
wait_build(1, spire)
train(10, mutalisk)
train(25, zergling)
defensebuild_aa(6, scourge)
defenseuse_aa(1, mutalisk)
defenseuse_ag(1, mutalisk)
random_jump(168, mutaling swarm)
resources_jump(400, 700, big_mutaling)

--mutaling swarm--
attack_add(12, mutalisk)
attack_add(50, zergling)
attack_prepare()
attack_do()
attack_clear()
resources_jump(400, 600, big_mutaling)
wait(100)

resources_jump(300, 300, mutaling)
wait(10)

goto(lings)


--big_mutaling--
player_need(1, spawning_pool)
notowns_jump(spire, lings)
train(20, mutalisk)
train(32, zergling)
defensebuild_aa(12, scourge)
attack_add(20, mutalisk)
attack_add(64, zergling)
attack_prepare()
attack_do()
attack_clear()
wait(100)

resources_jump(500, 1000, huge_mutaling)
wait(100)

resources_jump(400, 700, big_mutaling)
resources_jump(300, 300, mutaling)
wait(1000)

goto(lings)


--huge_mutaling--
player_need(1, spawning_pool)
notowns_jump(spire, lings)
train(28, mutalisk)
train(32, zergling)
defensebuild_aa(20, scourge)
attack_add(28, mutalisk)
attack_add(64, zergling)
attack_prepare()
attack_do()
attack_clear()
wait(100)

resources_jump(800, 1200, guardians)
wait(100)

resources_jump(400, 700, big_mutaling)
resources_jump(300, 300, mutaling)
wait(1000)

goto(lings)


--guardians--
notowns_jump(greater_spire, huge_mutaling)
train(34, mutalisk)
train(32, zergling)
wait_train(15, mutalisk)
train(15, guardian)
wait_train(15, guardian)
train(4, devourer)
attack_add(15, guardian)
attack_add(4, devourer)
attack_add(15, mutalisk)
attack_add(64, zergling)
wait(100)

resources_jump(800, 1200, guardians)
wait(100)

resources_jump(400, 700, big_mutaling)
resources_jump(300, 300, mutaling)
wait(1000)

goto(lings)


--moar_hatch--
resources_jump(300, 0, hatch_2)
wait(200)

goto(moar_hatch)


--hatch_2--
build(2, hatchery, 80)
wait_buildstart(2, hatchery)

--hatch_3--
resources_jump(400, 0, build_hatch_3)
wait(200)

goto(hatch_3)


--build_hatch_3--
build(3, hatchery, 60)
wait_build(3, hatchery)
wait_train(24, zergling)
expand(99, expo)
wait(2500)


--more_expand--
resources_jump(500, 0, build_more_expo)
wait(200)

goto(more_expand)


--build_more_expo--
expand(99, expo)
wait(4500)

goto(expo)


--expo--
start_town()
build(1, hatchery, 120)
wait_build(1, hatchery)
defenseuse_gg(1, zergling)
get_oldpeons(4)
build(1, drone, 70)
wait_build(1, drone)
multirun(defenses)
build(6, drone, 70)
train(6, zergling)
build(1, extractor, 30)
multirun(expo hatches)
build(10, drone, 70)
build(16, drone, 30)
stop()


--expo hatches--
resources_jump(1000, 0, build expo hatch)
wait(300)

goto(expo hatches)


--build expo hatch--
build(2, hatchery, 40)
wait_build(2, hatchery)
goto(moar expo hatch)


--moar expo hatch--
resources_jump(1000, 0, build moar expo hatch)
wait(300)

goto(moar expo hatch)


--build moar expo hatch--
build(3, hatchery, 40)
wait_build(3, hatchery)
build(4, hatchery, 40)
stop()


--main_defense--
player_need(1, spawning_pool)
creep(3)
build(1, creep_colony, 60)
wait_build(1, creep_colony)
build(1, sunken_colony, 60)
wait_build(1, sunken_colony)

--main_spore--
enemyowns_jump(spire, build main_spore)
enemyowns_jump(stargate, build main_spore)
enemyowns_jump(starport, build main_spore)
wait(200)

goto(main_spore)


--build main_spore--
player_need(1, evolution_chamber)
wait_build(1, evolution_chamber)
build(2, creep_colony, 80)
wait_build(2, creep_colony)
build(1, spore_colony, 80)
build(3, creep_colony, 80)
wait_build(1, spore_colony)
build(2, spore_colony, 60)
stop()


--defenses--
player_need(1, spawning_pool)
creep(3)
build(3, creep_colony, 70)
wait_build(1, creep_colony)
build(1, sunken_colony, 70)
wait_build(2, creep_colony)
build(2, sunken_colony, 70)
wait_build(3, creep_colony)
build(3, sunken_colony, 60)
wait_build(3, sunken_colony)
goto(antiair)


--antiair--
enemyowns_jump(spire, spore)
enemyowns_jump(stargate, spore)
enemyowns_jump(starport, spore)
wait(200)

goto(antiair)


--spore--
player_need(1, evolution_chamber)
build(4, creep_colony, 80)
wait_build(4, creep_colony)
build(1, spore_colony, 80)
build(5, creep_colony, 80)
wait_build(1, spore_colony)
build(2, spore_colony, 60)
stop()


--ling_speed--
resources_jump(0, 100, research_speed)
wait(200)

goto(ling_speed)


--research_speed--
wait_train(6, zergling)
upgrade(1, zergling_speed, 60)

--lair--
resources_jump(400, 400, build_lair)
enemyowns_jump(lair, build_lair)
enemyowns_jump(starport, build_lair)
enemyowns_jump(templar_archives, build_lair)
enemyowns_jump(stargate, build_lair)
wait(200)

goto(lair)


--build_lair--
build(1, lair, 80)
build(1, evolution_chamber, 60)
wait_build(1, lair)
build(1, spire, 60)
wait_build(1, spire)
upgrade(1, overlord_speed, 30)
wait(2000)

resources_jump(1000, 1000, hive)
wait(200)

goto(hive)


--hive--
build(1, queen_nest, 80)
wait_build(1, queen_nest)
build(1, hive, 80)
wait_build(1, hive)
upgrade(1, overlord_capacity, 50)
player_need(1, spire)
wait_build(1, spire)
build(1, greater_spire, 80)
stop()


--evo_ups--
wait_build(1, evolution_chamber)
wait_train(24, zergling)
upgrade(1, z_carapace, 70)
wait(4500)

upgrade(1, z_melee_attack, 70)
wait_build(1, lair)
wait(4500)

upgrade(2, z_melee_attack, 70)
wait(4500)

upgrade(2, z_carapace, 70)
wait_build(1, hive)
upgrade(3, z_melee_attack, 70)
wait(5600)

upgrade(3, z_carapace, 70)
stop()


--air_up--
wait_train(12, mutalisk)
wait_build(1, spire)
upgrade(1, z_flyer_carapace, 50)
wait(4500)

upgrade(1, z_flyer_attack, 50)
wait(4500)

wait_build(1, greater_spire)
upgrade(2, z_flyer_carapace, 50)
wait(4500)

upgrade(2, z_flyer_attack, 50)
wait(4500)

upgrade(3, z_flyer_carapace, 40)
wait(4500)

upgrade(3, z_flyer_attack, 40)
stop()


--crack--
wait_build(1, hive)
player_need(1, spawning_pool)
upgrade(1, zergling_attack, 70)
stop()[/spoiler]
Blizz P does the unthinkable and makes good unit choices! Have you ever seen a comp owned unit with that many kills? Well, the reaver racks up a few more kills and so does the storm. There was also an archon with about 2 dozen kills. They've repelled many waves already. But with hardly any army or mining that only prolongs the inevitable as yet another wave will soon pour from about the 10 hatcheries which will only increase in number as the game goes along.



Unleaded vs Storm!


Ah crap. Why did the script that took less than a day to write beat the one that took a month? ;) Simplicity can be good at times. Well, at least unleaded wins on shine and maps with closer spots, though zerg ais simply don't work right on that map though.

Not even irradiate can save unleaded at times.
User avatar
Archon_Wing
Posts: 903
Joined: Wed Jul 25, 2007 11:22 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Postby Archon_Wing » Thu Jan 22, 2009 6:19 am

*Facepalm* It doesn't build spores at the expos. Despite this, it did prove to be a challenge when I played it 1v2 ;) Ah well, I'll wait a bit to update in case people find more errors.

Baja, I could place both of my scripts in the same file to save space, it may improve playability by a bit as well.
Halachee
Posts: 11
Joined: Sat Mar 29, 2008 7:24 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Postby Halachee » Tue Jan 27, 2009 6:05 pm

Good job on the script.

[quote name='Archon_Wing' post='5786' date='Jan 20 2009, 10:11 PM']Ah crap. Why did the script that took less than a day to write beat the one that took a month? ;) Simplicity can be good at times.[/quote]

:)
User avatar
Archon_Wing
Posts: 903
Joined: Wed Jul 25, 2007 11:22 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Postby Archon_Wing » Tue Jan 27, 2009 10:07 pm

Thanks!

The newest version of the script is located in the same file for ease of use, because default AI bashing was no longer fun. ;) The download is located at the top of the topic.
Changes for Version 1.0 final (I hope)
[spoiler]Builds spores in expansions now
Fixed a bug where the comp didn't build its 2nd overlord and would just stop at 19/19 supply (NOOO!!)
Expands faster
Fixed a softlock bug which occured because the comp built 100 drones and didn't have space to train some needed army. ;)[/spoiler]
User avatar
Archon_Wing
Posts: 903
Joined: Wed Jul 25, 2007 11:22 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Unleaded AI 3.3 Full Non-cheating AI (Updated 2/23/10)

Postby Archon_Wing » Sat Jan 31, 2009 5:37 pm


Unleaded Ai is the combination of three non cheating AIs that complement each other in style. The scripts are based on the default Blizzard AI's theme of showcasing a large variety of units and delayed larger attacks with better econ. As with all other AI-only mods, unit behavior and micro cannot be changed yet, so it is best played 1v2, 2v3 , etc on limited money maps.
Download:
The exe file, if you just want to play my AIs:
[attachment=2726:Unleaded AIs 3.3]
BWAI launcher files if you wish to use BWAI launcher which has every AI ever made; unzip to your BWAI launcher folder

[attachment=2725:UnleadedAI 3.3 BWAI launcher scripts.zip]

Ye old version, in case you liked it better
[attachment=2633:UnleadedAI 3.07 BWAI launcher scripts.zip]

3.3-- Final version! I'll go for one more round of bug fixes though if needed; no new features will be added.

The standalone exe for Unleaded AI will no longer be supported, and is provided as is. It may be updated irregularly. More current updates to the scripts will be provided via and . Suggestions can be brought up here, and updated txt files for use in BWAIlauncher may be provided in this thread, so check the latest posts.

Too easy? Try the Premium AIs instead. They are almost the same as the non-cheating AIs, but are given unlimited money until the 30 minute mark.

Updated: 2/13/2012-- Updated Premium Terran and Zerg from 3.3 to 3.31, Protoss remains unchanged. Only works with BWAI launcher
[attachment=3003:Premium AIs 3.31.zip]

Standalone exe file; no longer supported:
[attachment=2751:Premium AIs 3.3.zip]

BWAI Launcher scripts for the cheating version:
[attachment=2752:Premium AIs Scripts 3.3.zip]

Premium Terran may be broken if you turned off Debug Messages in BWAIlauncher. A hotfix is now available above.

Want something stupid?



Thanks to Bajadulce, this exe now uses a Firegraft fix that deals with the bug where Terran AI would not finish buildings when the worker is destroyed. This should make the terran AI a bit harder than usual. Only works with 1.16.1, the latest version of Brood War. You can still run it on any version of BW, but the extra stuff only works on 1.16.1

Also, as we are developing a new , this exe uses triggers that remove an observer from play. If for some reason you are observing a game with this exe, all you have to do is build a 5th worker and you will not be removed. Note: The older BWAIWar III replays will not work right here sometimes.




Special thanks to:
Bajadulce- For Providing this site and all its resources.
Easychat- The bio section of Unleaded TvP is pretty much a fusion of Easychat TvP and Bajadulce's Raynor T AI
Peppe- For being the inspiration to Unleaded Protoss
Ashara, Zelduck- For the impressive macro structure of their scripts that I borrowed shamelessly from
Xerxes, Jh24, X of Life, Equalizer for the feedback.
Myk, Avance, PandaBB for presenting Zerg AIs that weren't complete pushovers to test and also giving ideas for my own zerg AI :P
Iskatumesk- for sharing all his available knowledge about AI over the years
poiuy_qwert- PYAI, and now BWAI launcher, of course
Everyone that downloaded this file

Older exes and Replays from past versions have been downloaded, removed, and archived. The old exes and replays can be found here in the : So if you weren't able to watch a replay from an older verison, that will serve your needs. Note: The file is on rapidshare, because I would not want to clog the forum up with my old versions. It also doesn't have anything older than 2.23 since I didn't archive it til then.

For versions 3.0 and higher, it'll be here. It will contain old versions and reps, but only in BWAI launcher format because the much smaller size is much faster upload for me. :P Also only versions where reps were posted will be included

Use of these scripts to serve as a base for new AIs of your own is permitted and encouraged. Please share though. ;)
[cutoff]Read more...[/cutoff]


For island maps, only terran and protoss are supported. Zerg on island maps will use the default AI only, as I don't plan on writing a Zerg island script. To play, just download the zip file, unzip it to any folder and run the exe. Then start a melee, free for all, or top vs bottom game. . If you are playing this with other people, make sure they are all running the same version as you! This file may be updated at any time, without warning.

Recommended maps for this AI, or AIs in general

Unfortunately, the AI can't tell what map it's playing on, except that it's an island or land map. Thus, it can't really handle stuff like cliffs not accessible by land or other obstructions. Thus, to minimize AI retardation, and for the best playing experience, one should try these maps as the AI will work better, or at least screw up less. :)

Just download and unzip to maps folder in your starcraft folder.
Recomended maps in that package: Python, Luna the Final, Sin Chupung-Ryeung, Athena II, Byzantium, Tau Cross, Faoi
For more info, try browsing

Some of these maps seem good for team games. Jungle Hunt and Symbolic looks really nice for larger scale team games. Snake pit for more close quarter battles, but small mains can be annoying

In general, maps with larger mains, decent pathing (meaning no artificial obstructions like mineral walls or neutral buildings, as well as really winding paths) work best. Simple is usually better. Having only one entrance to the main so the comp can properly place defenses may help a bit too.

FAQ:
[spoiler]Q: Unleaded? What kind of stupid name is that?
A: Well I had to give it a name you know. I could call it something cool sounding like liberator or destroyer, but that seems awfully cliche and this AI isn't really meant to rock your socks. So something more mudane seemed more suitable. This AI is intended to be a more modern version of Blizzard's basic terran AI. Same old crappy unit control, but more sensible build orders and unit mix. It's the unleaded version. If a cheating version were made, that'd be the premium version. The name may change as the project comes along. ;)

Q: Why non-cheating?
A: Because a good part of Starcraft is about limiting your enemy's resources. Also, the best cheating AIs have pretty much done it all, and there is really nothing that I could add in that area.

Q: This AI sux! I own it ez!!!11111 n00b! You know nothing about starcraft ^^
A: That's not a question, btw. Due to the limitations of current technology and a bunch of hardcoded crap, it's unlikely any AI could match an experienced player without heavy cheating. There are replays in the BWAI challenge plays of people beating 2 gold AIs, which do cheat! For those that aspire to be good at this game, you should really try iccup.

Q: So who is it meant for?
1v1 with other AIs and people who have grown sick of the default AI. Other players may need 2 AI enemies for a challenge. It will work best on the common iccup maps like python, luna, etc. It is not intended for team games and many player maps like hunters. Building placement gets really weird on those. Many a story has had a newbie turtling against a comp to win. But how often have you seen the other way around?

Q: Why terran AI?
A: After playing Entropy II, I noted that the T AIs aren't nearly as strong as the z or p ones. They can still pack a punch in team games, but also wear off much quicker. The same is true of the Blizz one (though this could be due to the fact that it forgot siege in tvt) This is thanks to the fact that there's nothing we can do about the comp's nonexistent micro or stupid building placement which really hurts terran since terran units have very high damage potential but very low health for their cost. T AI using standard build orders= instant loss to any rush.

Q: What can be done about this?
A: The AI will have to play unusually safe in the start and build up to take out the enemy in a quick one-two punch. Kinda like typical newbie play. There is one area that the AI excels at though-- spellcasters. Units such as ghosts aren't viable in typical play due to the difficulty of getting off spells in a heated battle. There's really no way to get a reasonable return unless you are SlayerS_Boxer. However, the AI has no trouble with this because it has no buttons to press. Hopefully, this AI will abuse its abilities to the max with more caster support. Against zerg, the AI will abuse irradiate. The AI will use lockdown against terran and protoss. Emp will be used against protoss. Much like what the default AI already does, but hopefully much more large scale.

Q: Why doesn't your AI launch that many attacks?
A: I feel that niche (1 base timed rushes) has been adequately filled by the other AIs out there, and I doubt I can top that really. Besides, if this script was mixed in with the others, it'd provide more variety! Currently I see the 1 x expo builds which are oh so popular today to be very lacking when done by an AI as they get run over by anything faster than an 18 pool. Thus, this script will try to find a happy medium between expanding and defending, Large attacks are also cooler, and help compensate the AI's lack of micro through some brute force. Currently the Tvz script is incredibly inefficient at battling the default Z ai. However, it'll eventually walk over the Z anyways regardless of how many units it loses just because the build and economy is superior, making it pretty funny. It also reflects the way I play, for better or for worse. :P

Q: Can I get the AI to BM?
A: Maybe, though all in good fun. :)

Q: D00d, where the hell are the mass casters?
Hah, getting an AI script to work properly in this game was such a pain, so some things didn't really turn out as they should. But enough of the excuses...
A: Unfortunately, many of the caster units are pretty costly and high up in the tech tree. Thus, you probably won't see them used much til late-mid game when the AI has the resources to maintain an army and also build the support. The goal of the AI isn't just to build units for the sake of building them; support isn't really good support if there is nothing to be supported. They are there (hopefully) to help the comp's game. But overall, I didn't really see a viable use for them in TvT, so they aren't utilized much there. But the TvZ script will make good use of it to annoy you for sure if the game goes on for a bit. So yea, I'd say the scipt's original intended style is best preserved there. ;)

Q: Will you ever make a zerg island script?
A: No, island maps are just too awful for the most part for zerg to play on. The other island scripts are for the sake of completeness since we don't have any island ais in our database.

Q: How do I get your script to work in PYAI? It says it doesn't recognize any names.
A: In the main window of PYAI, click edit, and then click "Manage External definition files". Click the + sign, and go to the folder pyms was installed to (should happen immediately) and look for a "unitdef.txt" Just add that file you can use the shorter names. Remember spaces are replaced with underscore so siege tank is siege_tank. However, you can always search for unitdef.txt on your comp and edit the names to whatever you want. I simply wasn't gonna type out "terran science vessel" every freaking time. :)[/spoiler]


[size=0]Unleaded Terran[/size]
The default AI gets bashed a lot, and while it is underperforming it still did its job right; to introduce newbies to Starcraft, and also to show them how ridiculously strong zealots are. ;) It is still a decent piece of work, considering it was written a very long time ago when the strategy was nowhere near as refined as today.

But it still did things that are pretty much unique to itself to this very day. Although most custom scripts today outclass the default AI in build orders, unit choice, and general macro, the Blizz AI had a certain flavor to it that the newer scripts seemed to be lacking. It would make use of practically every unit and ability. In some senses it wasn't even trying to win, just more of a showcase to the beginner. Although said beginner is probaly hiding behind 30 cannons and too busy building more to notice. But one would notice the craziness of how the AI would get off loads of spells at once. It was like the only thing it ever did right. This script, while not really having any of the original Blizzard one anymore, will try to capture the spirit of using spellcasters to add more variety to the game.

Thanks to everyone who helped out with this script. Without it, this script would be stuck building 12 marines and halting, but now we had a strong competitor in the Bwai War III contest. ;)

The nightmare of every zerg

And more coming...


In this game, facing inevitable defeat vs Unleaded protoss, T pulls this stuff off. If only it did it more. It didn't win the game (mined out, and almost no units) but it managed to live to the end of the ai vs ai rep. ;)



The AI's strats and other notes:[spoiler]For each matchup there is a core build:
TvT- Tanks/goliaths/battlecruiser/valk
TvZ- M+M/vessel/tank
TvP Tank/goliath/vulture/ghost

All scripts will build turrets, transports and comsat eventually, the enemyowns_jump sometimes doesn't work that great. Even though a comsat isn't necessary if they are no cloaked/burrowed units, having a comsat just looks better .

All the different builds will converge into the core build in the endgame. The only exception is the TvZ metal strat, which pretty much plays it like a TvP.

BBS- Rarely done, only meant as a surprise gimmick. Gets 2 barracks and attacks with a couple marines very early.
TvT
Regular Build- it goes 2 factory tanks and pushes once it has a couple of tanks; taking an expansion along the way. Then it gets an armory and goliaths. After a certain point it will be begin mass expanding to start a bc pump. Sadly, yamato will not be used, due to the comp's horrific usage of it.
Fast expand- The same as the first, but takes an expansion early on with only 1 factory producing tanks to defend. Much less commonly executed, but pushes with a larger force later on.
2 port wraith- Pretty basic, and rarely done due to the AI's weak micro. Just sends a few cloaked wraiths to annoy you. Additional wraiths are used with tanks for defense. This build is used to exploit the tendency of many people who elect to build only tanks

Reactive Scripts:
Defends against wraith rush

TvZ
Regular Build-It goes 2 rax and expands once it has some marines. If the enemy hasn't built an early pool, 1 rax expo may be used for a much faster expansion. Moves out once it has a large amount of M+m and some tanks. It'll try to quickly get vessels next for support. Will proceed to mass vessels like no tomorrow if left unhindered, so some scourge and spore colonies are recommended. Otherwise expect to get irradiated a lot and face a number defensively matrixed tanks.
Fast Academy Rush. Starts out the same as the regular build but instead of fast expanding, it instead rushes out with a small group of mmf to attack the unwary, then proceeds to expand. Exploits zerg's tendency to power too much
Metal- Fast goliaths and vultures with mines, and later siege tanks. A few Valkyries are built to help the goliaths against air threats. Does not move out until it has a very large metal force of tanks, goliaths, and vultures at which point it will aggressively take expansions. This build uses a couple of vessels for support. Exploits beginners' tendencies to overbuild sunken colonies and lurkers. This strat will crush that.

Reactive scripts:
Gets early rax/bunker in response to a ling rush.
Gets turrets, academy, and comsat upon detecting a lair
Techs to vessels if a hive is detected.

TvP
Siege Expo- Expands off tanks from 1 factory. It'll then attack and try to secure an expansion, opting for more mech. Later on, it adds ghosts to lockdown units and science vessels to EMP and d matrix.

M+M rush- Pretty self explanatory. It rushes with a small group of infantry. This is the default strategy against a zealot rush.

M+M Expand Same as above, but the AI may elect to not attack and instead defends the nearest expansion; it then proceeds as usual. Exploits people's tendencies to build too much defense (cannons) when met with an m+m threat. Nobody said the comp had to suicide into you!
Siege Expo switch-- Same as siege expo except it switches back to infantry instead of using vultures. It attack a bit sooner than the regular mech build.

Reactive Scripts:
Gets detection in response to a citadel of adun
Gets wraiths and ghosts in response to a fleet beacon
Expands faster vs a 14 nexus, or pressures with a few marines.[/spoiler]



[size=0] Unleaded Zerg, aka Storm Zerg[/size]



The zerg script was originally created to provide a opponent for the terran. It originally started as a ling pressure script that would often work on the Terran due to its weak defense. However, as time passed the ling attacks were getting less and less effective, and eventually its weak economy means any other enemy would easily shrug off the weak attacks, and not even Blizzard scripts would be phased. In general, this worked ok against a number of AIs, but rather poorly against people.

So as of 3.0, the Zerg was written to be more like the other Unleaded AIs, though it is more of a single mindset as opposed to variant gameplay because I can't really think of anything. :lol: It still possesses traces of its original aggressive nature in random 5 pools and ling attacks. But those are now just subsets of its strategies. The original concept of the script can be seen in BWAI war IV. Due to difficulties with me and scripting zerg, the Zerg will probably not be improved very much anymore.
Strategy
[spoiler]ZvT:
Only 2 openings, 12 hatch and 5 pool.
It gets sunkens early, and tries to get lurkers.
Due to the AI's slowness in getting lurkers, it gets evo chambers pretty fast.
It may decide to stay on lurk tech and make lots of lurkers, or tech to hive faster to get defilers.
May get guardians late game.

It may occasionally rush with 3 hatch zergling

Vs a very early factory, it goes mutalisks and hydralisks instead.


ZvP:
Normally the opening is the same as ZvT, It gets hydralisks, and then muta/ling for support. Later on it tries to get ultras. It may randomly rush an enemy that has not built enough zealots.

Gets overpool or 9 pool vs very early gateways.

Vs a fast expand Protoss , the zerg may pick from quite a few strats:
It may overpool or 12 hatch; either opening

Double expand and mass hydralisks. (5 hatch hydra)
Expand once and get Mutalisks
3 hatch zerglings
3 hatch hydra

Will rush Protoss that have not built enough defense

The main focus of ZvP is Hydralisks.

ZvZ:
It may go 5 pool, overpool, 9 pool, or 12 hatch.
Techs to mutas ASAP, but may randomly decide to mass some early lings and attacks first
Pressures very early lair tech
Mostly masses mutas, scourges and lings. Late game may see devourers and defilers.

General reactive behavior:
Goes 9 pool against very early rushes
Gets spores and scourge against air[/spoiler]


[size=0]Unleaded Protoss [/size]
Anyhow Unleaded Protoss is just a modified version of the Blizzard default script, so it's quite the mess in some places. Some stuff has been trimmed. (9 cannons in main wtf?) Other things have been revamped such as the the classic Blizz rush. I haven't really written anything matchup specific except in a few obvious cases, so it probably won't be too strong against terran. I may add some stuff if people are interested enough. I also made a few simple modifications to the air script so it should be a bit stronger.

Strats:
[spoiler]You should be familiar with most of them already:
3 gate zealot rush: (PvP/PvZ) The classic zealot rush, but with speed and against zerg, +1 attack. Pretty nasty when playing 1v2. For some reason the attack sometimes gets triggered early so it gets sorta unpredictible.
dt rush: (PvT/PvP, duh!) sends a dt and hopes you are unprepared. Builds more dts to secure an expansion. This is a subset of the goon tech strat, so it'll be harder to tell apart.
Corsair Rush (PvZ): Tries to harass overlords with a corsair, and will send more if there is no antiair. This may be mixed with any of the builds.
[s]Bisu[/s] Blizzard build: Yes folks, the default AI fast expanded long before Bisu even picked up Starcraft. ;) (Note: Contrary to what people think, fast expand is NOT the Bisu build) Yes, sometimes the comp sometimes screws up totally on building placement T_T Still better than just sitting around and doing nothing for 15 minutes. (which is what the default one does) ;)

Goon tech (PvT/PvP): Techs to goons, and expands off 1 or 2 gateways May hold back expanding for a bit if the enemy has substantial forces.
9/10 gate: Randomly done, and also done in reaction to early pools. Tries to pressure with a few early zeals before playing normal.
Proxy gate: same as 9/10 but buildings are built in a random expansion. Sometimes the comp will place it in really kooky places. Sometimes it'll place it so badly on certain maps it'll give you an autowin. In other cases, it may be building gateways very close to your doorstep. It's unpredictible and unreliable, but may catch the unwary off guard. Very rarely done.

All builds converge on the final attack loops, which consists of mass zeal/goon/templar. Carriers and arbiters may be built as resources allow. Sometimes it will build random scouts, sairs, reavers, and Dark archons to confuse you. ;)[/spoiler]


Besides the normal "build tons of units" routine, Unleaded P may do a few things to spice things up. Like its terran counter part, it will sometimes vary its strategy by quite a bit, and make use of most abilities and units. Take this game of Unleaded t vs p

Oh nos!

Dts mop it up
</div></div></div>
Blizz AI, trying to win with a jumble of random units and abilities since 1998.

Change log:
[spoiler]0.1 Script started with tvt

0.2 Now with TVZ, and some edits made to the tvt one.
0.2.1 Wraith rush added, only in tvt. TvZ to be added later
0.2.2 Fixed loop and stop errors thanks to Bajadulce
0.2.3: tvz main script completely remodeled
0.2.4: Cleanup, and most scv production has been moved to a multirun thread for a smoother build.
0.2.5 Better tvz BO for spending its money quicker earlier game, now builds transports to attack and take islands.
0.2.6 curtailed building of unnecessary dropships and wraiths.
0.2.7 Now resorts to bcs in tvt , faster expansions. Reduced clutter in tvz thanks to Xerxes. Random tvz mech build. TvT wraith rush reinstated, tvz one deleted

0.3 Plays TvP
0.3.1. Fixed TvP early build order, expands a little faster, and uses emp and lockdown
0.3.2 Improved turret timing, tvp more aggressive

0.4 Unleaded will sometimes pick more aggressive builds for some more variety. TvP aggression increased, and sometimes will do a biomech instead of pure mech attack. This is inspired by watching the EasyChat and Baja T's scripts. And some minor improvements. Better scouting is recommended

RC1 Major softlock issue involving upgrades is fixed. All matchups and builds should work better now. Now fully utilizes ghosts, and will build them to counter protoss air as well as general late game usage.
RC2 Expansion slowness addressed. Scripts should run faster

1.0 Some final cleanup and some bug squashing.
1.0a Added a defense vs wraith in tvt
1.0b Fixed a few more typos. Only builds bunker in tvz when enemy has a pool.

1.1 More streamlined blocks for faster working scripts
1.1a Fixed softlock issues involving the AI not being able to see a greater spire as a spire, and incorrect creep colony usage. The Terran now uses 9 depot/11 rax in tvz but will adapt to a rush. Random crashes nixed as well.

1.2 Fixed loop that caused the zerg to stall during late game. Will start massive defenses if resources allow. Forced expansion if AI has not expanded in a while. Terran now builds nukes
1.2a Nixed the excessive building at expansion, causing too many slowdowns. Fixed defense protocols. Storm Zerg now uses clear_combatdata to take advantage of mobility. Rush command used in Unleaded TvZ to take an expansion faster.

2.0 Unleaded Protoss added. Terran and protoss support islands.
2.0.1. Fixed crash and stability issues
2.0.2 Fixed a bug that cripped the terran AI's detection loops
2.05 Increased resource requirement before teching to carriers. PvT/TvP improved a bit. Introduced deep 6 strat in tvp.
2.06, made some zvz specific things for storm zerg, and slowed down the tech a bit more for toss. Also, fixed the fast expo strat quite a bit.
2.08 Fixed a crash involving building too many units. A few lurkers added to zvt/zvp

2.1 Wraith rush adjusted and randomized attacks

2.2 Added a random "pressure" rush in tvz. It may or may not attack given the situation, but it will advance aggressively towards the enemy base. Protoss builds nexus before cannons if it fast expands and early pool not detected
2.21 Fixed defense protocols
2.22 Corsair rush in pvz, zerg AI fixed, a host of crashing issues dealt with.
2.22a Fixed oddities with large amounts of units.

2.3 4/7 Newest version, with more random attacks. Build orders adjusted and changed the likelihood of various strats. Timing of tech improved all around.
2.32 Reduced idle time, 12 hatch build for zerg
2.33/a Fixed Terran defense

2.34 Better carrier defense, and improved tvp in general, fixed some of the Protoss's other strats. Development complete! ;)
2.35 Improved timing of mech builds, increased delay to Protoss's attacks, and reduced zerg's tendency to 6 pool
2.38 Zerg builds more drones. Protoss techs slower, early build order fixed, more random expansion possbility. Dark archons may be used, and arbiter usage tweaked. Wraith rush fixed.
2.4 - TvZ- Should get that factory up and attack more consistently. PvZ- Changed unit composition
2.41- Fixed fast expansion build order slowness for Toss and Zerg, improved reactive timing
2.5: New attack structures for more of the builds. TvZ late game mines. Zerg uses a few lurkers again. Protoss less crash prone
2.6: Modified zerg expand, new ling all in, Protoss and Terran stall less, Fixed TvP unit composition, Fixed Protoss FE
2.7:
2.7a:
2.8:
2.81-- Crash fix, sorry
2.82 Infinite loop bug fixed.
This script is open source. Anyone can modify it to suit their needs or make their own script, as long as it is properly credited. The scripts can be found in their entirety in the zip files as txt format
2.83 Fixed odd random terran stall
2.84
2.85
2.86
2.87 A little cleanup for Entropy III
3.0 Change Storm Zerg to Unleaded Zerg, with matchup specific behavior and becomes a full AI.

3.11 [/spoiler]
User avatar
Archon_Wing
Posts: 903
Joined: Wed Jul 25, 2007 11:22 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Postby Archon_Wing » Sat Jan 31, 2009 9:53 pm

Shouldn't be a problem then. Oh yea, I changed the pic, because that pic was actually from a bug report of the AI screwing up lol. I can't seem to delete it from the first post though.
User avatar
Archon_Wing
Posts: 903
Joined: Wed Jul 25, 2007 11:22 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Postby Archon_Wing » Wed Feb 18, 2009 1:17 am

Ah, found yet another bug while playing it (Why does this always happen) It screwes up because of a inconsistency between the total amount of creep colonies and spores. (5 creeps= comp can't make 4 sunks and 2 spores) I'll correct this when uploads are enabled again, and both AIs will receive a few more early build order tweaks. ;)
User avatar
Archon_Wing
Posts: 903
Joined: Wed Jul 25, 2007 11:22 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Postby Archon_Wing » Sun Feb 22, 2009 10:51 am

Ah, so much for last version. 1.2 fixes a number of bugs, involving loops that go nowhere and prevented Storm Zerg from showing some late game goodness. Like this:

A time_jump was implemented to force it to expand by a certain time. Sometimes, it'd just overspend and burn itself out without even taking its natural. It'll also defend its expansions more heavily if resources allow.

Unleaded T gains a new trick as well, in some rare cases. Self Explanatory. ;)


[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Return to “StarCraft Modding”

Who is online

Users browsing this forum: No registered users and 11 guests