TaranokAI v1.71 (P) Updated: 1/6/13

Help - Resources - AI Scripting - Grafting - Plugins - Modding Projects
User avatar
Taranok
Posts: 256
Joined: Tue Sep 07, 2010 9:41 pm

Postby Taranok » Sat Jan 28, 2012 9:57 am

hmmm.... I think the AI i'm watching is different from the one you were playing. The AI you played was the one on the first post, correct?

Because when I look at the replay using the txt file from the top post it has you losing at 15 mins, which doesnt make sense.

My AI rewrite is going pretty good, should be way better than previous 1.04. Maybe release in next week or so?

EDIT: Been way more busy, tired, than I thought I would be...:o

EDIT 2: ALMOST THERE!!!
User avatar
Taranok
Posts: 256
Joined: Tue Sep 07, 2010 9:41 pm

Postby Taranok » Mon Feb 13, 2012 3:32 am

YAYAYAYAYAYAY v1.1 is here!!!!!!!!

uploaded to main post!!!

much better than previous versions.
User avatar
Archon_Wing
Posts: 903
Joined: Wed Jul 25, 2007 11:22 pm

Postby Archon_Wing » Mon Feb 13, 2012 12:48 pm

Watched a few Ai vs AI reps and noticed its expansion was idle for a very long time. The expo probes need a higher priority

Code: Select all

   get_oldpeons(7)
   build(8, Protoss Probe, 1)
   wait_force(2, Protoss Dragoon)
   wait_build(8, Protoss Probe)
   build(1, Protoss Assimilator, 20)
   build(9, Protoss Probe, 1)
   wait_build(9, Protoss Probe)
   build(10, Protoss Probe, 1)
   wait_build(10, Protoss Probe)
   build(11, Protoss Probe, 1)
User avatar
JH24
Posts: 323
Joined: Sat Mar 14, 2009 6:25 pm

Postby JH24 » Mon Feb 13, 2012 3:32 pm

Awesome! I've downloaded it, hopefully I'll get a chance to play tonight. Looking forward to it. :)
User avatar
Taranok
Posts: 256
Joined: Tue Sep 07, 2010 9:41 pm

Postby Taranok » Fri Feb 17, 2012 11:54 pm

v1.11 up!

I increased the priority of workers, but I don't know if it made any effect.

2nd attack now arrives earlier. This is obviously good for the reason its earlier, but also helps to put pressure on zerg going into its 3rd base.

My record on Scout vs Muta is 1:31 with 6 scouts left. /rolleyes.gif' class='bbc_emoticon' alt=':rolleyes:' />
User avatar
JH24
Posts: 323
Joined: Sat Mar 14, 2009 6:25 pm

Postby JH24 » Sun Feb 19, 2012 1:52 pm

I'm sorry for my late reply, the last week has been a bit hectic for me.


I've uploaded two replays for you, I'll add more replays in the coming days. They are (for now) 1vs1. I 've really tried but I wasn't able to beat your AI 1vs2. It's really strong and the variety of (early) attacks really keep you on your toes. I like how it keeps up the pressure so well. Good job. :)


One thing I noticed is that the AI doesn't seem to make use of the High Templar's Psionic Storm. It could be more deadly if the AI could use it, in order to thin out the Zerg forces.

The other thing I noticed is that the AI doesn't seem to group its forces. It sends them to the opponent in a single line, this could make them more vulnerable to for example Lurkers.


[attachment=3006:ByzantiumTaranok1.11.rep]

[attachment=3007:SilverwingTaranok1.11.rep]
User avatar
Taranok
Posts: 256
Joined: Tue Sep 07, 2010 9:41 pm

Postby Taranok » Mon Feb 20, 2012 1:32 am

Thanks for reps.

I really don't know what to think of Psionic Storm. In the first v1.0, it actually used it significantly in attacks, but the version I have with the later attacks, it doesn't storm at all. Actually I have not seen a storm being utilized at all... Maybe it's not getting researched at all? I put the command in but maybe the priority is too low? I'll check.

I'm still trying to get its 2nd attack earlier.

It sends units in through a line because I couldn't get attack_do() to work the first time I tried it and I was kind of lazy to figure out. I'll try it again.

I need to figure out better expansion defense...
User avatar
Archon_Wing
Posts: 903
Joined: Wed Jul 25, 2007 11:22 pm

Postby Archon_Wing » Mon Feb 20, 2012 3:08 am

Pretty good early pressure though you probaly want attack prepare/attack do for later attacks

Also the expo code is held up by all this; that's why it can't proceed.

--expand--
start_town()
build(1, Protoss Nexus, 80)
build(1, Protoss Pylon, 60)
wait_build(1, Protoss Pylon)
guard_all()
place_guard(Protoss Observer, 0)
defenseuse_gg(99, Protoss Dragoon)
defenseuse_ga(99, Protoss Dragoon)
defenseuse_gg(99, Protoss Zealot)
place_guard(Protoss High Templar, 0)
player_need(1, Protoss Forge)
build(1, Protoss Photon Cannon, 20)
wait_buildstart(1, Protoss Photon Cannon)
build(2, Protoss Photon Cannon, 20)

wait_build(1, Protoss Nexus)
get_oldpeons(7)
build(8, Protoss Probe, 1)
wait_force(2, Protoss Dragoon)
wait_build(8, Protoss Probe)
build(1, Protoss Assimilator, 20)
build(9, Protoss Probe, 12)
wait_build(9, Protoss Probe)
build(10, Protoss Probe, 12)
wait_build(10, Protoss Probe)
build(11, Protoss Probe, 12)
wait_build(11, Protoss Probe)
build(12, Protoss Probe, 12)
wait_build(12, Protoss Probe)
build(13, Protoss Probe, 12)
wait_build(13, Protoss Probe)
build(14, Protoss Probe, 12)
wait_build(14, Protoss Probe)
build(15, Protoss Probe, 12)
stop()

Instead it should be...

Code: Select all

   --expand--
   start_town()
   build(1, Protoss Nexus, 80)
   build(1, Protoss Pylon, 60)
   wait_buildstart(1, Protoss Nexus)
   multirun(expo structures)
   wait_build(1, Protoss Nexus)
   get_oldpeons(7)
   build(8, Protoss Probe, 80)
   wait_build(8, Protoss Probe)
   build(1, Protoss Assimilator, 20)
   build(9, Protoss Probe, 70)
   wait_build(9, Protoss Probe)
   build(10, Protoss Probe, 70)
   wait_build(10, Protoss Probe)
   build(11, Protoss Probe, 70)
   wait_build(11, Protoss Probe)
   build(12, Protoss Probe, 70)
   wait_build(12, Protoss Probe)
   build(13, Protoss Probe, 70)
   wait_build(13, Protoss Probe)
   build(14, Protoss Probe, 12)
   wait_build(14, Protoss Probe)
   build(15, Protoss Probe, 12)
   stop()   
   --expo structures--
   wait_build(1, Protoss Pylon)
   guard_all()
   defenseuse_gg(99, Protoss Dragoon)
   defenseuse_ga(99, Protoss Dragoon)
   defenseuse_gg(99, Protoss Zealot)
   player_need(1, Protoss Forge)
   build(1, Protoss Photon Cannon, 20)
   wait_buildstart(1, Protoss Photon Cannon)
   build(2, Protoss Photon Cannon, 20)
   wait_train(1, Protoss Observer)
   place_guard(Protoss Observer, 0)
   wait_train(1, Protoss High Templar, 0)
   place_guard(Protoss High Templar, 0)
   stop()
User avatar
JH24
Posts: 323
Joined: Sat Mar 14, 2009 6:25 pm

Postby JH24 » Mon Feb 20, 2012 6:32 pm

@ Taranok


I've uploaded a new replay. (1vs1) It was a very fun game with some very strong attacks from your AI.

[attachment=3009:TauCrossTaranok1.11.rep]


I still can't beat two of your AI's at the same time so far. I can now survive the first attack wave, but I don't have enough units yet to defend from the second one shortly after. :)

===

In response to your last post, as far as I can see the AI doesn't research Psi Storm. Usually once it has it will automatically use it without any additional commands.


Yeah, for Protoss (as well as Terran) it's better to first prepare and group their units before attacking, mainly because they'll be more effective that way. A disadvantage is that the AI will stop producing units while attacking, leaving the AI a bit behind when the attack fails.

A good combo would be the using attack_add while at the same letting it run loops in the background so it will continue producing and be able to launch the next attack earlier.

If you want attack_do() to work, you'll have to use attack_add() to tell the AI which units it needs to use in an upcoming attack. If only train commands are used, the AI will probably won't attack as effectively.


This is how my Protoss AI handles attacks. It's far from perfect, but it does help the AI producing stuff with less interruptions. The AI also adds some other stuff like Archons or Arbiters, but those I've kept out of the main loop to keep it simple. Zealots/Dragoons/Observers should be the core of your main attack loop. Other units can be added from another part of the script based on the situation. (For example Dark Templar with Terran or High Templar for Zerg)



--PMCx 0045--
wait(1)

notowns_jump(gateway, PMCx 0046)
wait(1)

multirun(PMCx 0047)
multirun(PMCx 0048)
multirun(PMCx 0050)
wait(1)

random_jump(96, attack larger force)

train(10, dragoon)
wait_train(5, zealot)
wait(24)

attack_prepare()
wait(480)

target_expansion()
wait(24)

attack_do()
attack_clear()
clear_combatdata()
wait(24)

goto(PMCx 0045)

--attack larger force--

wait(24)

train(11, dragoon)
wait_train(6, zealot)
wait(1)

attack_prepare()
wait(480)

target_expansion()
wait(24)

attack_do()
attack_clear()
clear_combatdata()
wait(24)

goto(PMCx 0045)


--PMCx 0046--
wait(240)

goto(PMCx 0045)



--PMCx 0047--
wait(1)

player_need(1, gateway)
wait(1)

attack_add(1, zealot)
train(1, zealot)
attack_add(1, zealot)
train(2, zealot)
attack_add(1, zealot)
train(3, zealot)
attack_add(1, zealot)
train(4, zealot)
attack_add(1, zealot)
train(5, zealot)
attack_add(1, zealot)
train(6, zealot)
attack_add(1, zealot)
train(7, zealot)
attack_add(1, zealot)
train(8, zealot)
attack_add(1, zealot)
train(9, zealot)
attack_add(1, zealot)
train(10, zealot)
attack_add(1, zealot)
train(11, zealot)
attack_add(1, zealot)
train(12, zealot)
attack_add(1, zealot)
train(13, zealot)
attack_add(1, zealot)
train(14, zealot)
attack_add(1, zealot)
train(15, zealot)
attack_add(1, zealot)
train(16, zealot)
attack_add(1, zealot)
train(17, zealot)
attack_add(1, zealot)
train(18, zealot)
attack_add(1, zealot)
train(19, zealot)
attack_add(1, zealot)
train(20, zealot)
attack_add(1, zealot)
train(21, zealot)
attack_add(1, zealot)
train(22, zealot)
attack_add(1, zealot)
train(23, zealot)
attack_add(1, zealot)
train(24, zealot)
attack_add(1, zealot)
train(25, zealot)
attack_add(1, zealot)
train(26, zealot)
attack_add(1, zealot)
train(27, zealot)
attack_add(1, zealot)
train(28, zealot)
attack_add(1, zealot)
train(29, zealot)
attack_add(1, zealot)
train(30, zealot)
attack_add(1, zealot)
train(31, zealot)
attack_add(1, zealot)
train(32, zealot)
stop()


--PMCx 0048--
wait(1)

player_need(1, cybernetics_core)
wait(1)

notowns_jump(cybernetics_core, PMCx 0052)
race_jump(PMCx 0053, PMCx 0053, PMCx 0053)


--PMCx 0053--

wait(1)
attack_add(1, dragoon)
train(1, dragoon)
attack_add(1, dragoon)
train(2, dragoon)
attack_add(1, dragoon)
train(3, dragoon)
attack_add(1, dragoon)
train(4, dragoon)
attack_add(1, dragoon)
train(5, dragoon)
attack_add(1, dragoon)
train(6, dragoon)
attack_add(1, dragoon)
train(7, dragoon)
attack_add(1, dragoon)
train(8, dragoon)
attack_add(1, dragoon)
train(9, dragoon)
attack_add(1, dragoon)
train(10, dragoon)
attack_add(1, dragoon)
train(11, dragoon)
attack_add(1, dragoon)
train(12, dragoon)
attack_add(1, dragoon)
train(13, dragoon)
attack_add(1, dragoon)
train(14, dragoon)
attack_add(1, dragoon)
train(15, dragoon)
attack_add(1, dragoon)
train(16, dragoon)
attack_add(1, dragoon)
train(17, dragoon)
attack_add(1, dragoon)
train(18, dragoon)
attack_add(1, dragoon)
train(19, dragoon)
attack_add(1, dragoon)
train(20, dragoon)
attack_add(1, dragoon)
train(21, dragoon)
attack_add(1, dragoon)
train(22, dragoon)
attack_add(1, dragoon)
train(23, dragoon)
attack_add(1, dragoon)
train(24, dragoon)
attack_add(1, dragoon)
train(25, dragoon)
attack_add(1, dragoon)
train(26, dragoon)
attack_add(1, dragoon)
train(27, dragoon)
attack_add(1, dragoon)
train(28, dragoon)
attack_add(1, dragoon)
train(29, dragoon)
attack_add(1, dragoon)
train(30, dragoon)
attack_add(1, dragoon)
train(31, dragoon)
attack_add(1, dragoon)
train(32, dragoon)
stop()


--PMCx 0050--
wait(1)

notowns_jump(observatory, PMCx 0052)
notowns_jump(robotics_facility, PMCx 0052)
attack_add(1, observer)
train(1, observer)
attack_add(1, observer)
train(2, observer)
attack_add(1, observer)
train(3, observer)
attack_add(1, observer)
train(4, observer)
stop()


--PMCx 0052--
wait(10)

stop()
User avatar
Taranok
Posts: 256
Joined: Tue Sep 07, 2010 9:41 pm

Postby Taranok » Mon Feb 20, 2012 11:33 pm

Yeah, I know how attack_do() works, but I think when I tried the first time I left something out so it didn't work.

I guess I'll have to up the priority on psionic storm.
EDIT: turns out I never put it back in after I took it out awhile ago.

Hopefully IF I have time I'll upload one by Thursday or something./rolleyes.gif' class='bbc_emoticon' alt=':rolleyes:' />

Thanks for support.

Return to “StarCraft Modding”

Who is online

Users browsing this forum: No registered users and 1 guest