Jump to content


Photo

v1.65b3 is ready for testing!


87 replies to this topic

#41 Malkor

Malkor

    Eternity

  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 12 January 2006 - 11:52 PM

Okay. In my SC AI mod, this is how the rushes and such work.

groundmap_jump ahnground
random_jump 125 lolcroozers
goto ahnair


:ahnground

random_jump 125 goliathgod
random_jump 125 lolcroozers

....

:lolcroozers
build 1 barracks 80
build 4 supply_depot 80
build 1 engineering_bay 80
multirun towurz
build 1 factory 80
build 1 academy 80
build 4 armory 80
build 1 comsat_station 80
build 1 starport 80
upgrade 1 t_vehicle_weapon 30
upgrade 1 t_vehicle_plating 30
upgrade 1 t_ship_weapon 30
upgrade 1 t_ship_plating 30
build 1 science_facility 80
build 3 starport 80
build 3 control_tower 80
build 1 physics_lab 80
defensebuild_ga 1 battlecruiser
defenseuse_ga 1 battlecruiser
defensebuild_aa 1 battlecruiser
defenseuse_aa 1 battlecruiser
defensebuild_gg 1 battlecruiser
defenseuse_gg 1 battlecruiser
defensebuild_ag 1 battlecruiser
defenseuse_ag 1 battlecruiser
train 3 battlecruiser
attack_add 3 battlecruiser
attack_prepare
wait 500
attack_do
attack_clear


That's a nice example. Although the wait for the preparation needs to be extended considerably as I currently have the issue of the first two bc's being used in the attack and the third getting left behind. Not good!

This tech AI CAN be rushed. That's the inherit risk of teching. It happens on any map. The idea of a tech rush is to get by unnoticed. The AI doesn't do that by wasting all of it's tier1 in futile fights against a normal opponent. Even worse, after it loses the units carelessly, it keeps rebuilding them and forgets about teching. Oops! Good-bye AI.

Theta also has it right.

Look back up at my AI, specificially;

:ahnground

random_jump 125 goliathgod
random_jump 125 lolcroozers


Now, what this does is it rolls a number (I assume against 255, no one really knows) for a chance to jump to another part of the script which I have essentially set up as a second build order. This is what randomizes what the AI does. I don't have fancy things like threat detections or if attacked go here.

the lolcroozers (the Battlecruiser rush) has a rough possibility of 1/4. This is perfectly acceptible. I test it in both 1v1 and team conditions and generally by the time the opponent attacks the comp has a battlecruiser. If it doesn't, it dies. Tough luck. If it SUCCEEDS, there's an extremely good chance the comp will win right then and there, because the enemy will likely be tier1, and 3 bc's are very hard to get rid of with only marines or zerglings or zealots. If the enemy is tier2, they might win, they might not. The AI keeps moving on in assumption it doesn't work. It then expands into a standard siege tank and battlecruiser build.

defensebuild_aa 1 wraith
defenseuse_aa 1 wraith
defenseuse_ga 1 wraith
defensebuild_ag 1 wraith
defenseuse_ag 1 wraith
defenseuse_gg 1 wraith
build 3 factory 80
train 3 battlecruiser
build 3 machine_shop 80
defensebuild_gg 1 siege_tank
defenseuse_gg 1 siege_tank
train 4 dropship
upgrade 2 t_vehicle_weapon 30
upgrade 2 t_vehicle_plating 30
upgrade 2 t_ship_weapon 30
upgrade 2 t_ship_plating 30
expand 1 exp
tech yamato_gun 30
train 6 siege_tank
tech cloaking_field 30
upgrade 1 wraith_mana 30
tech siege_mode 30
attack_add 3 battlecruiser
attack_add 6 siege_tank
attack_prepare
wait 1200
attack_do
attack_clear
expand 2 exp

This is how I feel the DoW vehicle rushing AI should work, and why I also suggested Speeders and defilers and other easy to access fast-moving hard-hitting infantry sweepers. Dreadnaughts and wraithlords are good choices, too, but perhaps a suggestion is to have the AI grab a couple speeders/vypers after their first wraith or dread pops out. This will greatly increases it's dps value and further enhance their ability to fight a dynamic opponent (who might just dance away from the melee but can't outrun the faster vehicles).

However, this brings us back to attack groups. The melee needs to do the "tanking" (absorbing damage) and the little hovering shoot-em up guys are doing the main dps. Perhaps a second randomization ability is the ability to have them decide to either go pure melee or toss in some speeders. In a closer map, I highly suggest using speeders. Not only because they build outrageously fast and cost nothing, but because a good number of them will completely decimate tier1-2 infantry.

Again, if the AI faces a very heavy rush, it should attempt to divert to a more standard build. My AI CAN'T DO THIS. I want to see it done here. My AI can effectively tier3 rush with any unit. It CAN'T make logical decisions or do something intelligent. Hell, a single hydralisk can just as easily train the BC's across the map indefinitely while the player gets counters. SC AI is really stupid. I want to see the opposite, here. A smart vehicle rush is very important because it adds variety, it adds personality, and above all, it's an opponent I can relate to (I love vehicles). Watching the AI slowly tech from tier1 to eventually tier3 and scatter about the map in endless slugfests is only amusing for a short while. When I can predict the outcome of every FFA from the beginning, something needs to change.

That's where I come in! I am glad my feedback has aided your efforts, ArkhanTheBlack. I look forward to seeing a true vehicle rush in action!

#42 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 13 January 2006 - 10:02 AM

I also replaced the attackmove for gathering by a normal move, so the units don't get stuck in combats all over the world.


This may have some nasty side effects. On complicated maps you can observe that units with a move command are often slaughtered while passing enemies. I saw complete armies being annihilated on the retreat without a fight.
Gathering troops may now suffer from the same problem.

#43 ArkhanTheBlack

ArkhanTheBlack

    title available

  • Members
  • 814 posts

Posted 13 January 2006 - 11:40 AM

This may have some nasty side effects. On complicated maps you can observe that units with a move command are often slaughtered while passing enemies. I saw complete armies being annihilated on the retreat without a fight.
Gathering troops may now suffer from the same problem.


I know! It's hard to find the perfect solution for that. I've done it because spread armies can even worse consequences and because I personally accept those losses if I play and gather troops by myself. But I normally try to move on a save path and not through the enemy army. I didn't have that much problems in the test games, so I'm optimistic, but only further games will show if the descision was wise.

#44 ThetaOrion

ThetaOrion

    title available

  • Members
  • 676 posts

Posted 13 January 2006 - 11:51 AM

Can't you issue the attack while moving command so that they will fight if threatened while moving to their destination -- the A on the Keyboard plus the mouse click move command?

Trying to predict your response:
The plain vanilla AI can't do the A-Click Attack While Moving Command, only humans can do it, right?

#45 ArkhanTheBlack

ArkhanTheBlack

    title available

  • Members
  • 814 posts

Posted 13 January 2006 - 12:47 PM

Can't you issue the attack while moving command so that they will fight if threatened while moving to their destination -- the A on the Keyboard plus the mouse click move command?


This is exactly the attack move of the AI. The problem is that the unit then will stop walking and fight the enemy. If your HQ is under heavy assault, you can't afford to play around with distant enemies.

I think I'll try a compromise for gathering and retreating. If the unit is far away from the target position I'll make a normal move and when it gets close to the target area (~50 - 60), I'll initiate an attack move.

#46 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 13 January 2006 - 02:33 PM

I think I'll try a compromise for gathering and retreating. If the unit is far away from the target position I'll make a normal move and when it gets close to the target area (~50 - 60), I'll initiate an attack move.


Do you measure 50 - 60 with the terrain analyzers function ?

If yes keep in mind that the analyzers distances are not comparable with the distance function. They return much smaller values. 50 - 60 is nearly from one side to the other in Kasyr Lutien for example.

If no 50 - 60 direct distance can be much more in reality as there are maps with twisted paths.

#47 ArkhanTheBlack

ArkhanTheBlack

    title available

  • Members
  • 814 posts

Posted 13 January 2006 - 03:14 PM

I'll use direct distance. The twisted paths can occur of course, but well.. nobody is perfect :blush: . I guess it'll work okay for most of the maps.

#48 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 13 January 2006 - 04:42 PM

I guess it'll work okay for most of the maps.


True.

I justed wanted to point to the fact that the terrain analyzers distances have to be taken with a grain of salt. Up to DOW 1.1 they were comparable to direct distances but someone screwed them up afterwards.
So if you use them for anything other than compare (to get shortest distances) you should know that radius 15 (like forward capture) is quite a large area and by no means comparable to 15 direct distance.

#49 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 13 January 2006 - 05:01 PM

Actually, the hint with the gathering problem was very good. I checked it out and not all squads outside the gathering radius got the gathering move command, but instead all squads already inside the gathering radius.


Are you sure. At least according to the original code all squads get the gather command with
   else
  	tactic:SetState( Tactic.States.Hold )
  	tactic:SetTarget( self.gather_pos, Tactic.Variant.Vector )
   end


in ObtainForce() and ObtainMoreForce().

#50 ArkhanTheBlack

ArkhanTheBlack

    title available

  • Members
  • 814 posts

Posted 13 January 2006 - 05:48 PM

So if you use them for anything other than compare (to get shortest distances) you should know that radius 15 (like forward capture) is quite a large area and by no means comparable to 15 direct distance.


I know, I had t deal with that a lot while I wrote the battle field analyzer for the attack strategy.

Are you sure. At least according to the original code all squads get the gather command with in ObtainForce() and ObtainMoreForce().


There's also a gather forces function which has a seperate move command. If you've the 1.5 original it's probably correct, but I made some adjustments here and there for 1.6 and caused this problem by accident.

The gather commands by SetState(...) probably hid this problem. I started to modify the infantrytactic.ai and vehicletactic.ai about a week ago. Therefore the separate move commands in the tactics and plans are still a bit confusing for me.

#51 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 13 January 2006 - 06:17 PM

In 1.5 the code gather move comand looks like this and I guess it is fine. Or do you think different ?

   --check I'm in proximity of the target
   if dist_sqr < tolerance_sqr and 
  	not squad_ai:IsInCombat() and not squad_ai:IsInStateAttackMove() then
  	
  	cpu_manager:DoMove( squad_ai, self.gather_pos, true, "Gather" )  	
   end      

I think these moves are only for the squads to shift position at the gather position, they are not ment to move the troops to the position. This done by the tactics. Same is used in defendplan.ai.

Edited by LarkinVB, 13 January 2006 - 06:19 PM.


#52 Malkor

Malkor

    Eternity

  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 13 January 2006 - 09:44 PM

I also replaced the attackmove for gathering by a normal move, so the units don't get stuck in combats all over the world.


This may have some nasty side effects. On complicated maps you can observe that units with a move command are often slaughtered while passing enemies. I saw complete armies being annihilated on the retreat without a fight.
Gathering troops may now suffer from the same problem.

View Post



This happens anyway, actually. I see this a LOT in FFA's. Hell, I've seen the wholy army run right by another and get shot to pieces before they had a clue what was happening. It was like battle.net all over again! Oh the horror!

Edited by Malkor, 13 January 2006 - 09:44 PM.


#53 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 13 January 2006 - 10:02 PM

The AI isn't made for FFA at all.

#54 Malkor

Malkor

    Eternity

  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 13 January 2006 - 10:12 PM

Now's a good time to start changing that, eh? I play FFA more than any other gametype by far. The closest is 4v4, followed by 3v3, then 2v2, and finally 1v1. I like DoW for it's potential for massive multi-way combat that isn't soley dependant on army sizes or super weapons.

The AI actually performs decently in FFA so far. If you want, I could tell you how to make it a fair bit better, if you can make it decide how to act for certain gametypes...

#55 ThetaOrion

ThetaOrion

    title available

  • Members
  • 676 posts

Posted 13 January 2006 - 10:44 PM

Do we have our definitions right?

FFA, free for all, as I understood it is every man for himself, each AI on a different team or each person on a different team. I understood melee to be this type of situation.

4vs4, 3vs3, 2vs2 are all team play or alliance play. Is there another name for it?

1vs1 is FFA and/or Team Alliance play, a special case.

--

I used to play free for all or melee, me against everyone else and everyone else against everyone else, everyone on a different team. Then, on the larger 8 player maps, I gave myself an AI ally to take off some of the heat and make the games a tolerable length of time, 2vs1v1v1v1v1v1.

Lately, I do the Team Play or Alliance Play, 4 of me and AI Allies against 4 United AI Enemies -- 4vs4, 3vs3, 2vs2. Is there another name for it besides Team Play or Alliance Play? I find that the AI does best in Teams or Allied together, but they were satisfactory free-for-all, all fighting against each other. But, do I have my definitions wrong?

Are there better definitions or words for the different types of play or different types of team layout?

It's looking like my definitions are slightly different than Malkor's

So, what exactly are we talking about here?

#56 thudo

thudo

    Wacko AI Guy!

  • Division Leaders
  • 12,164 posts
  • Location:Lemonville North, Canada
  • Projects:DoW AI Scripting Project
  • Division:DoW
  • Job:Division Leader

Posted 13 January 2006 - 10:57 PM

FFA = 1vs1vs1 minimum
1vs1 = Just you and the other player.. pure man to man.. thats it!
Alliance/Team play = 1vs2 (skewed alliances) or 2vs2 minimum

AI can do well in all but depends on luck, risk, map, the faction played, and yours/AI's skill level.

Alot of average players can win most times on HARD 1vs1 but many cannot - depends how good you are.
Advanced Skirmish AI Team Lead for the coolest Warhammer40k PC RTS out there:

Dawn of War Advanced AI Headquarters

Latest DoW Advanced AI Download!

#57 ThetaOrion

ThetaOrion

    title available

  • Members
  • 676 posts

Posted 13 January 2006 - 11:36 PM

1vs1, I win 4/5th of the time at the HARD setting with the AI Mod.

I tend to get my losses one time out of five on the maps that I have never played before.

If I have played the map and know what is coming next, I tend to always win. But an unknown map has the tendency to do me in, the first couple of times, at least.

--

Sometimes, though, the AI enemy really does out-produce me or out-perform me, and I catch an occasional loss from that imbalance.

I, in particular, tend to lose more while playing as the IG. I think that the 1.41 plain vanilla IG have a slight inherent weakness, especially against deep striking Chaos or Space Marines. But, those games and losses are more on the big maps and not the small maps. On large maps, the deep strking really gives the SM and Chaos a noticeable end-game advantage, especially over the Imperial Guard. If I'm playing as the Imperial Guard on a medium or large map, I notice that I tend to get overrun and lose, especially if the AI is Chaos or SM. The larger the map, the worse the inherent imbalance, but I see signs of it even on a 2vs2 map.

#58 Malkor

Malkor

    Eternity

  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 14 January 2006 - 12:23 AM

I am a good player, I guess. I can almost always win FFA's against insane AI opponents. When it comes down to me vs the final comp, it's usually a battle of attrition as the AI will by then have limitless resources and continually pour EVERYTHING they have at me in a continual stream.

By FFA, I generally classify it as a large 8 player or more slugfest on a large map. (Unfortunately DOW has very few maps and most of them suck... and most of the player-made ones don't suit FFA very well.)

Everything I say unless otherwise specified is said with FFA in mind.

I always play at insane setting.

Edited by Malkor, 14 January 2006 - 12:23 AM.


#59 ThetaOrion

ThetaOrion

    title available

  • Members
  • 676 posts

Posted 14 January 2006 - 12:41 AM

I did some free-for-alls at the HARDER setting with the 1.50 AI Skirmish Mod and got some wins if the maps were right for it. I think I have gotten a bit better as a player over the past year, though, so I might now be able to pull off an INSANE FFA win once in awhile.

Unfortunately, the biggest drawback to free-for-all when it comes to betatesting is that you never get a feel for how well or how lousy your AI ally is doing.

The resource levels and thus the performance levels are different for an AI ally than they are for an AI enemy, or at least the end-game production report seems to say that it is so. An AI ally is different than an AI enemy.

You can't really know how the AI allies are doing and developing in the mod unless you play with AI allies. The AI allies are a different subset than the AI enemies.

FFA gives you no experience with or nothing to report when it comes to AI allies.

But I must admit that for the first year, until WA came out, I play only FFA and nothing else. I never did any team play, and I never played with an AI ally. I was locked in FFA for well over a year. It was my friend Aralez who taught me the 'errors' of my way and helped me to see that I was overlooking the AI ally completely by solely playing FFA. :)

Now, I only do Team Play or Alliance Play.

And, on the Desert Gauntlet Map, Castle Assault Map, and Winter Castle Map, and Winter Gauntlet map, I find myself doing a lot of those Skewed Alliances that Thudo was talking about -- 2me vs 4enemyAI, or 3 me VS 5, or 2me VS 6.

Edited by ThetaOrion, 14 January 2006 - 12:44 AM.


#60 Malkor

Malkor

    Eternity

  • Members
  • 375 posts
  • Projects:Loladins of Legend.
  •  Inanely inane inanities!

Posted 14 January 2006 - 12:52 AM

I do play 4v4 quite a bit as well, and I make note that we ALWAYS lose. It's not a matter of how good I am, because my allies just simply can't keep up. When we falter as a whole, usually when tier2 starts appearing, we lose in short succession. The specifics of which are alien to me. It's seems that just as a whole my allies can't keep up with the enemy.

As for FFA, I also OBSERVE a lot of FFA's. In fact, that's how I test the WA builds. I load up penal colony or doom chamber, kill myself, sit back and watch.

The most common things I learn is that the IG are always in tier1 for too long, orks never get the precious looted leman russ tanks, and defenses are always minimal.

That would bring me to the first part of my AI fixing for the FFA gametype. Defenses. They NEED turrets. While turrets can be wasteful in 1v1, in FFA they are game-saving. Even if all they do is kill harassment or stave off a larger enemy for a few seconds, they can be pivotal. I'm not talking about turret farms, here. Maybe 3-4 in the main base, and 2-3 at LP's. I do notice the AI do grab turrets after a while, but not soon enough (midgame especially) where they are most useful.

By the time the midgame point reaches, it's down to 3 players. It's always either SM or Chaos. Rarely orks. Eldar and IG almost always die by then, namely because they didn't tech fast enough to deal with mass dreadnaughts or defilers.

Just something to think about for the next build.

edit: actually I've yet to see the IG tech to a baneblade in any of my games for several versions. They rarely even get to tier2, let alone to the core IG midgame and lategame units.

Edited by Malkor, 14 January 2006 - 12:54 AM.




Reply to this topic



  


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users