Staredit Network > Forums > SC1 UMS Mapmaking Assistance > Topic: Help with AI on UMS?
Help with AI on UMS?
Aug 16 2021, 6:53 am
By: moletrap  

Aug 16 2021, 6:53 am moletrap Post #1



Hiii,

I'm a starcraft caster and streamer, and I'm trying to make a special UMS to show to viewers. I'm having some major snags with getting the last bit to work and I heard this place might be the place to get expert help!

So I'm trying to make a custom map which is basically a brawl between T, Z, and P AIs with prearranged unit combos. Think of it like being able to see "who would win if 5 zealots meet 10 marines and 16 lings." I have set up a map with triggers to set the 3 races to enemy and then set order attack to the same spot in the middle. (Should I post my triggers too?)

BUT.... the other 2 always target the marines first! The zerglings keep running right past zealots, sometimes even when the zealots are attacking them, and going for the marine faction. And the zealots usually walk right past the zerglings and go for the marines, too, but sometimes they start fighting both. But I know they are set as enemies because once the marines are dead they turn on each other. Here's a replay of that happening.

Someone suggested I try using Patrol instead of Attack but then the lings and zealots kill each other and ignore the marines instead. This also happens if the terrans arrive late and just get free hits, so it's still not very balanced.

Is this just something in the AI that makes them aim for ranged units first? This baffles me because when I play vs AI they seem to just attack what is in front of them without being strategic, so it feels like the "Attack" behavior is different than normal somehow. I'm new at this so this might be a dumb question, but is there a "Run AI at Location" trigger I should use instead?


Is there some way to get the 3 factions to treat each other as equal threats?

Thanks so much in advance!

-moletrap



None.

Aug 16 2021, 7:39 am Oh_Man Post #2

Find Me On Discord (Brood War UMS Community & Staredit Network)

Instead of an order action try run script at location anywhere action. Script: Junk Yard Dog.

If you just post the map here it'll be much easier for people to run their own tests on it to fix it for you rather than having to run by numerous solutions through you which may or may not work.




Aug 16 2021, 8:03 am GGmano Post #3

Mr.Pete-Tong

Theres a bunch of issues you might have here.. its hard to see when you dont show triggers.. My desert strike map is abit the same 2 masses meeting at middle so players can actually check if 16 marines win 9 zealots etc..

just for youre describtion it sounds like you have the order trigger preserved firing to many times affecting the unit ai. That said unit ai does make each specific units attack specific enemy units in a cue ladder. you might have some kind of issue with youre order or ally triggers.

you can tiggle with that cpu unit ai by making marines owned by a specific cpu then toggle the ally on and off when you want marines to be attacked and toggle ally on off when you want zealots attacked owned by another cpu for excample

Post has been edited 2 time(s), last time on Aug 16 2021, 8:26 am by GGmano.



Trust is everything

Aug 16 2021, 8:25 am moletrap Post #4



Thank you!! I will try using Junk Yard Dog. Are there other Run AI Scripts that might work to emulate a normal attack move command?

I'll attach the map to this reply.. wasn't sure how much detail to include before. Also here are my triggers: https://pastebin.com/10DdTv1P
(Kerrigan -> Beacon is what I'm using to start the fight controlled by human player 4)

Attachments:
ffa brawl map test.scx
Hits: 2 Size: 30.4kb



None.

Aug 16 2021, 8:27 am moletrap Post #5



Quote from GGmano
Theres a bunch of issues you might have here.. its hard to see when you dont show triggers.. My desert strike map is abit the same 2 masses meeting at middle so players can actually check if 16 marines win 9 zealots etc..

just for youre describtion it sounds like you have the order trigger preserved firing to many times affecting the unit ai. That said unit ai does make each specific units attack specific enemy units in a cue ladder. you might have some kind of issue with youre order or ally triggers.

Btw, I have tried both with and without preserve trigger and it seems to do the same thing in either situation.

If it's just 2 forces meeting it seems to be okay but for some reason 3 different forces has issues.



None.

Aug 16 2021, 8:28 am GGmano Post #6

Mr.Pete-Tong

i think junk yard dog will only delete any order a unit has if i remember right. but idle units does stuff aswell if thats what you want



Trust is everything

Aug 16 2021, 8:34 am GGmano Post #7

Mr.Pete-Tong

Quote from moletrap

Btw, I have tried both with and without preserve trigger and it seems to do the same thing in either situation.

If it's just 2 forces meeting it seems to be okay but for some reason 3 different forces has issues.

if you have 3 forces you can make units attack specific other units with ally triggers like force1 has zea force 2 has lings force 3 has marines

set force3 ally : force1 and force2 to enemies

set force1 ally : force 2 enemi force3 ally

set force2 ally : force 1 enemy force 3 ally

extra if condition is meet set force ally again

force 1 ally : condition all player bring 0 lings set force 3 to enemy

force2 ally condition all player bring 0 zealot set force 3 to enemy

this way zealot lings will attack each other at first and when either lings or zealots dead they will attack rines

btw when you play alone if you just tell a pack or zea to attack to another location the unit ai on zea will make the zea go for ranged units first aswell resulting in bad ai manners in some situations hence microing units is very usefull

Post has been edited 1 time(s), last time on Aug 16 2021, 8:42 am by GGmano.



Trust is everything

Aug 16 2021, 8:38 am moletrap Post #8



Yeah Junk Yard Dog seems to just make some of the units run around randomly.

@GGMano, my issue is that I want all the units to just attack whatever is closest who isn't part of their force. So I want all 3 forces to be attacking BOTH of the others at the same time rather than taking turns.



None.

Aug 16 2021, 8:52 am GGmano Post #9

Mr.Pete-Tong

Quote from moletrap
Yeah Junk Yard Dog seems to just make some of the units run around randomly.

@GGMano, my issue is that I want all the units to just attack whatever is closest who isn't part of their force. So I want all 3 forces to be attacking BOTH of the others at the same time rather than taking turns.

you have to use locations for that then.. sight(maybe 8x8square) locations than you center on the lings for excample. and a destinc attack(1x1square) location for the unit you want the lings to attack.

than you make order triggers
trigger1
always center location lings sight 8x8 on lings owned by force1 preserve

trigger 2
add death count for force 1 add 1 cantina + preserve

trigger 3
if enemies brings any unit into location lings sight + if force1 suffer 10 cantina- center location 1x1 square on unit in lings sight 8x8 + order attack lings to location 1x1 square + set deathc count force 1 cantina to 0 + preserve.

for orders not to fire to many timers you need a dc cycle to avoid orders to fire over and over especialy if you use hyper triggers you need tiggle with this death count amount to fit the time in youre map.

you can tiggle abit with that system to make it what you need. you also need such system for the zealots and the marines ofcourse. but this way you make the lings attack the closest unit etc

If you need all lings to attack each closest units you need a more complicated system with giving units to other player and forth and back and use several locations centered on each lings and several attack locations centered on the closest enemy to each ling. its really hard to copy a human doin micro with units but at some points its possible with small amount of units

btw why you wanna use 3 forces fighting in a ffa situation.. if you want to show something sc in a video you rather want it to be static usefull for players, and a ffa of 3 players will be less static like 3 out 5 the marines maybe win and 2 out of 8 zea win and 2 out of 10 lings win.. if you use 2 forces fighting it will be more static like 6 zealots always win 8 rines but 16 rines always win 12 zealots etc.

Post has been edited 5 time(s), last time on Aug 16 2021, 9:40 am by GGmano.



Trust is everything

Aug 16 2021, 3:06 pm Luigi Post #10

In God I trust.

Try using hero units instead and/or select Send All Units on Random Suicide Missions for the AI.



I'm the creator of StarCraft Adventures.
For Spanish version "Aventuras de StarCraft":
Aventuras de StarCraft (blog)

Aug 16 2021, 10:35 pm Nekron Post #11



I feel like the only way to do this with some decent accuracy is if you EUD/mod in movement speed changes to make all units move at the same pace, and write some simple AI town to manage attack waves;
The targeting debacle I would solve by having them only be hostile to some dummy target (like a pylon in the middle or something) from another player at first, in a way where ranged units kill it right as melee ones start dispersing to target it, and then unally all players once it dies




Aug 17 2021, 11:53 am GGmano Post #12

Mr.Pete-Tong

It should be pretty simple to do with orders and locations



Trust is everything

Aug 18 2021, 9:09 pm Ultraviolet Post #13

Don't stop till you get enough

Quote from Luigi
Send All Units on Random Suicide Missions for the AI.

I was thinking this might work too. I'm not sure how the 'random' selection is made for the suicide missions, but it might give you better results than order patrol or attack.




Aug 19 2021, 3:13 pm GGmano Post #14

Mr.Pete-Tong

You can center a location on each of youre units. that way you can make each single unit target another single unit in a very precise way. That definately must be the best result you can get. Tho this needs alot of locations and triggers to do depending on how much units you have. but if you can settle with less precision you can center one location on lings and make them attack whats in range of those and do same with rines and zealots, that dosent need much work to do.



Trust is everything

Aug 19 2021, 5:32 pm Luigi Post #15

In God I trust.

Quote from GGmano
You can center a location on each of youre units. that way you can make each single unit target another single unit in a very precise way. That definately must be the best result you can get. Tho this needs alot of locations and triggers to do depending on how much units you have. but if you can settle with less precision you can center one location on lings and make them attack whats in range of those and do same with rines and zealots, that dosent need much work to do.
I like your idea!
I haven't used EUD for my maps yet. But I think it's possible to assign Locations to specific units and then use Order triggers. Something gets complicated though, how to define the best targets for each attacking unit.



I'm the creator of StarCraft Adventures.
For Spanish version "Aventuras de StarCraft":
Aventuras de StarCraft (blog)

Aug 19 2021, 8:57 pm GGmano Post #16

Mr.Pete-Tong

Quote from Luigi
Quote from GGmano
You can center a location on each of youre units. that way you can make each single unit target another single unit in a very precise way. That definately must be the best result you can get. Tho this needs alot of locations and triggers to do depending on how much units you have. but if you can settle with less precision you can center one location on lings and make them attack whats in range of those and do same with rines and zealots, that dosent need much work to do.
I like your idea!
I haven't used EUD for my maps yet. But I think it's possible to assign Locations to specific units and then use Order triggers. Something gets complicated though, how to define the best targets for each attacking unit.

a defined system you do in triggers but yeah can get complicated the more units there is. but in this case he wanted the closest enemy to be target thats done with location of the unit range



Trust is everything

Aug 20 2021, 2:56 am Luigi Post #17

In God I trust.

I see. That should work pretty well.



I'm the creator of StarCraft Adventures.
For Spanish version "Aventuras de StarCraft":
Aventuras de StarCraft (blog)

Aug 20 2021, 7:04 am GGmano Post #18

Mr.Pete-Tong

In my map i have detectors following cloaked units in this situation i use 1 location for either vessel observers or overlords to be ordered to moved to with an order move trigger. than i priotize what unit to center the location on in triggers = if computer bring 1 wraith center the observer location on wraiths, if computer bring 0 wraith if computer bring 1 dt center observer location on dt etc done that with all cloaked unit in triggers. in this case its priotize so the observer will follow the wraiths before following dts. this works really observers does follow cloaked units pretty well.

but with lurkers i have special ai trigger ordering em to be idle so they will burrow thats how to make lurkers act in a good way, but with other units they could be ordered to attack a specific unit where an location is centered precise like a human would press attack on a specific unit. to do this micro system well on the cpu you need alot of locations awaliable. centering a specific location on for excample nearest unit to a zergling that would be a 2x2 square location centered on the zergling to detect if an enemy is near. the instant an enemy unit comes into this location you order the zergling to attack to a centered location on the enemy unit.



Trust is everything

Aug 22 2021, 1:52 am Luigi Post #19

In God I trust.

Quote from GGmano
but with lurkers i have special ai trigger ordering em to be idle so they will burrow thats how to make lurkers act in a good way, but with other units they could be ordered to attack a specific unit where an location is centered precise like a human would press attack on a specific unit. to do this micro system well on the cpu you need alot of locations awaliable. centering a specific location on for excample nearest unit to a zergling that would be a 2x2 square location centered on the zergling to detect if an enemy is near. the instant an enemy unit comes into this location you order the zergling to attack to a centered location on the enemy unit.
I understand what do you mean about ordering Zerglings to attack within range, it is surely effective. However square Locations become very imprecise for units with high attack range. A while ago I was testing something similar to prevent Spawn Broodling.



I'm the creator of StarCraft Adventures.
For Spanish version "Aventuras de StarCraft":
Aventuras de StarCraft (blog)

Aug 22 2021, 2:46 pm NudeRaider Post #20

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

Quote from Luigi
square Locations become very imprecise for units with high attack range.
you can improve that inaccuracy by using 2 (or even more) rectangle locations forming a "pixelated circle". Like so:





Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[07:40 am]
Ultraviolet -- :wob:
[10:31 pm]
RIVE -- :wob:
[2021-10-25. : 9:59 pm]
UndeadStar -- :wob:
[2021-10-25. : 8:39 pm]
KrayZee -- :wob:
[2021-10-25. : 5:40 pm]
lil-Inferno -- :wob:
[2021-10-25. : 9:27 am]
Moose -- :wob:
[2021-10-24. : 12:54 pm]
Ultraviolet -- :wob:
[2021-10-22. : 8:31 pm]
O)FaRTy1billion[MM] -- :wob:
[2021-10-22. : 6:07 pm]
UndeadStar -- :wob:
[2021-10-22. : 12:00 pm]
Ultraviolet -- :wob:
Please log in to shout.


Members Online: Roy, O)FaRTy1billion[MM]