Beta 7
#1
Posted 06 February 2006 - 09:47 PM
- Also fixed a serious teching bug, which is pretty much responsible why the AI's didn't tech as they should sometimes.
- Separated the rest of the race specific code Larkin mentioned.
- Improved the attack capturing code.
- Improved defense code
I've now restricted the commissars to tier 3, except the guard rush build program which is allowed to build it in tier 1 but not not in tier 2. The command squad is also restricted to tier 1 and tier 3. Let's hope the changes work well...
I had a look at the orks, but I highly doubt that I can do anything here to improve it. As soon as the SM tier 3/4 war-production has started, they're in serious trouble.
I've sent Thudo the new beta 7 for upload. It looks quiet good now. If I consider the last feedbacks, I start to think that we're really getting close to release...
#3
Posted 06 February 2006 - 11:01 PM
I had a look at the orks, but I highly doubt that I can do anything here to improve it. As soon as the SM tier 3/4 war-production has started, they're in serious trouble.
1) Just make sure that the Orks Tech and Produce to Squiggoth as quickly as possible. If the Orks were the first on the field to get their Titan, the Squiggoth, then they might have a chance of doing some damage to the Space Marines. No Squiggoth is the worst flaw in the Beta 6 where the Orks are concerned. Quick teck and production to Squiggoth would probably be the best AI improvement for the Orks. Early or quick teching and producing of Squiggoth will ALSO help keep the Squiggoth from becoming trapped or land-locked in its base.
2) If you can get the Ork AI to actually attack the Space Marines (and Eldar) in Tier 1 and Tier 2, from time to time, that also would be a helpful addition to the Ork AI. If you watch that replay I sent you, the Orks only really entered SM territory to get to the IG territory. During the latter part of the game, the Orks absolutely refused to enter Space Marine territory, and that's kind of a bug in the Ork AI. The fact that the Orks are limited to 5 Killa Kans and/or the high price of KillaKans is another unfortunate 1.41 mistake -- the AI is not being allowed to be all that it can be. The Eldar can get 10 to 12 Prisms, I don't know the exact number, but the Orks are restricted in 1.41 to a limited number of Kans. But, the KillaKan thing is the Ork thing you can't change per your self-imposed restrictions.
3) The Orks lost a contended resource point, and they just stood there and looked at it the whole game. They didn't make any effort to recap it, and thus their production was behind the SM production the whole game. So, look into making sure that the Orks will recap or reclaim empty resource points.
There are still things you can do to the Ork AI to improve it.
Edited by ThetaOrion, 06 February 2006 - 11:08 PM.
#4
Posted 06 February 2006 - 11:18 PM
I removed it from
--target ability table InfantryTactic.TargetAbilities = { --{ nil, "eldar_entanglement", -- Ability.Filters.CloseInfantryEnemyCC, 4, 0 },
and added it in DoAbilities like this
local entangle_id = cpu_manager.stats:GetAbilityID( "eldar_entanglement" ) if self.squad_ai:CanDoAbility( entangle_id ) then local range = self.squad_ai:GetAbilityRange( entangle_id ) local squad_pos = self.squad_ai:GetPosition() local target = nil melee = function( squad ) local is_cc = false if squad:GetMeleeStance() == SquadAI.MSTANCE_Assault then is_cc = true end return is_cc and squad:GetNumTroopers() >= 4 end local target = cpu_manager:FindClosestEnemy( squad_pos, range, melee ) if target ~= nil then self.squad_ai:DoSpecialAbilitySquad( entangle_id, target:GetSquad() ) end end
as Ability.Filters.CloseInfantryEnemyCC didn't work as intended.
Improving orks (and others). I added some basic code to switch ranged squads to CC if this will improve their chance to win. Shootas against spiders comes to mind. Perhaps you can use it.
It's called in function InfantryTactic:Update() like this
if self.squad_ai:IsAttached() then self:CheckForDetach() end --special moves self:CheckMeleeStance() local stance = self.squad_ai:GetMeleeStance() if self.stateID == Tactic.StateID.CloseOn and not self.squad_ai:IsInStateMove() then cpu_manager:RemoveSubState( self.squad_ai:GetID(), self.stateID ) self.stateID = Tactic.StateID.NoState dlg( "avd", "Stop Close On:"..tostring(self.squad_ai:GetID()) ) elseif stance == SquadAI.MSTANCE_Assault then self:CloseOnEnemy() elseif stance == SquadAI.MSTANCE_Ranged then self:MoveToCover() end
Note that the next code also puts cultists with full upgrades on ranged stance as I force them to only use GL in their tactics file.
function InfantryTactic:CheckMeleeStance() local squad_name = self.stats:GetSquadName() local stance = self.squad_ai:GetMeleeStance() local set_stance = false local threat = 0 --tier2 cultists with full heavy weapons set at ranged stance if squad_name == "chaos_squad_cultist" and cpu_manager:GetTierLevel() > 1 and stance == SquadAI.MSTANCE_Assault and not self.squad_ai:HasUpgradableTrooper() then self.squad_ai:DoSetMeleeStance( SquadAI.MSTANCE_Ranged ) set_stance = true end --these squads may switch from ranged to CC local melee_tbl_1 = { "chaos_marine_squad", "chaos_squad_cultists", "space_marine_squad_tactical", "ork_squad_shoota_boy" } --these are their respective CC targets local melee_tbl_2 = { {--chaos marines "eldar_squad_dark_reapers", "eldar_guardian_squad", "eldar_squad_rangers", "space_marine_squad_tactical", "space_marine_squad_scout", "ork_squad_shoota_boy" }, {--chaos cultists "eldar_squad_warp_spider", "eldar_squad_rangers", "space_marine_squad_tactical", "chaos_marine_squad", }, {--space marines "eldar_squad_dark_reapers", "eldar_guardian_squad", "eldar_squad_rangers", "space_marine_squad_scout" }, {--ork shoota "eldar_squad_warp_spider" }, } for i = 1, table.getn(melee_tbl_1) do if squad_name == melee_tbl_1[i] then local num_troopers = self.squad_ai:GetNumTroopers() if not self.squad_ai:HasSetupTime() and self.squad_ai:IsInCombat() and not self.squad_ai:IsBroken() and not self.squad_ai:IsCapturing() and not self.squad_ai:IsInStateMove() and num_troopers > 3 and not cpu_manager:InSubState( self.squad_ai:GetID() ) then local squad_pos = self.squad_ai:GetPosition() local enemy = Ability.Filters.CloseInfantryEnemy( squad_pos, 25, num_troopers - 1 ) if enemy ~= nil and not enemy:IsBroken() and not enemy:IsInStateMove() then local enemy_pos = enemy:GetPosition() threat = cpu_manager.terrain_analyzer:GetThreatAtPos( enemy_pos, 30, false ) if threat <= 250 then local stats = enemy:GetStats() local name = stats:GetSquadName() for j = 1, table.getn(melee_tbl_2[i]) do if name == melee_tbl_2[i][j] then if stance == SquadAI.MSTANCE_Ranged then self.squad_ai:DoSetMeleeStance( SquadAI.MSTANCE_Assault ) end dlg( "melee", squad_name.." melee against "..name ) set_stance = true break end end end end end --reset stance if set_stance == false and stance == SquadAI.MSTANCE_Assault then self.squad_ai:DoSetMeleeStance( SquadAI.MSTANCE_Ranged ) dlg( "melee", squad_name.." reset stance to ranged "..tostring(enemy)..":"..tostring(threat) ) end break end end end
Last but not least I added code to prevent some squads to dance from cultists. It should be added to function InfantryTactic:CheckForDance() like this
local infantry = Ability.Filters.CloseInfantryEnemy( squad_pos, enemy_dist, 3 ) if infantry ~= nil and self:DontDance( self.squad_ai, infantry ) then infantry = nil end
It looks like this
function Tactic:DontDance( defender, attacker ) local d_stats = defender:GetStats() local d_name = d_stats:GetSquadName() local d_num = defender:GetNumTroopers() local a_stats = attacker:GetStats() local a_name = a_stats:GetSquadName() local a_num = attacker:GetNumTroopers() local a_stance = attacker:GetMeleeStance() if a_stance == SquadAI.MSTANCE_Ranged or a_name == "ork_squad_grot" or (d_num > a_num * 3) or attacker:IsInStateMove() then return true end local dance_tbl = { { "chaos_marine_squad", "chaos_squad_cultist" }, { "chaos_squad_obliterator", "chaos_squad_cultist" }, { "ork_squad_shoota_boy", "chaos_squad_cultist" }, { "ork_squad_tankbusta", "chaos_squad_cultist" }, { "space_marine_squad_tactical", "chaos_squad_cultist" }, { "space_marine_squad_terminator", "chaos_squad_cultist" }, } for i = 1, table.getn(dance_tbl) do if d_name == dance_tbl[i][1] and a_name == dance_tbl[i][2] then dlg( "melee", d_name.." don't dance against "..a_name ) return true end end return false end
Perhaps some code is of interest for you.
Edited by LarkinVB, 07 February 2006 - 05:50 PM.
#5
Posted 06 February 2006 - 11:47 PM
I have been trying to think of other ways in which the Ork AI can be improved.
Come on everybody, help me out here.
But, I did think of one thing more. The Orks are supposed to be the ultimate in melee, or nearly so, which means that they are really good at taking down buildings.
Yes, the Space Marine buildings are probably the hardest for the Orks to destroy, and the Space Marine Buildings seem to get stronger and stronger as the SM tier up.
However . . . if the Ork AI was taught to hunt down SM and Eldar listening posts, destroy them, decap them, and capture them, imagine what kind of damage the Orks could do to the Space Marines and the Eldar along the way. And, if the Orks were still around and kicking, they could then go after SM power generators and tear them down. If the Orks were to do what they are supposedly the best at doing, then their AI allies might be able to get the upper hand and come to the rescue when the SM or Eldar get to Tier 4 and come knocking.
Train the Ork AI to hunt down and kill SM and Eldar listening posts and power generators, in that order.
What else are the Orks supposed to be the best at, so that Arkhan can train the Ork AI to do what it is best at?
Edited by ThetaOrion, 06 February 2006 - 11:49 PM.
#6
Posted 07 February 2006 - 12:05 AM
http://forums.relicn...ead.php?t=85737
It's map oriented, aka changing Map SCARfiles to give the Orks a chance, but maybe something there would be helpful or give Arkhan ideas.
I'm just trying to point out that I still think that there are things that Arkhan can still do to improve the Ork AI. I would hope that he wouldn't call it quits or declare it ready for release until he has tried a few of the ideas to improve the overall performance of the Orks.
#8
Posted 07 February 2006 - 01:52 AM
Simply said, the Squiggoth should be the very first unit getting out of their Da Mek Shop once the research to get it is done. And if they do not have the res for it, then they automatically and immediately save for it. And do not just waste all they have on lesser troops and doom their only hope to stand their ground against Tier 3+ Imperial Guards and especially Space Marines.
That's my only recommendation for Orks in Beta 7. If that can't make it to Beta 7, then I personally hope we'd see that in a future build at least for temporary "testing" by the community itself in a public build. And through comments, then see if we get that "automated move" out of the Orks' coding.
Oh ... and, by the way, isn't Relic supposed to be working on a new patch at the moment ? I think I read that recently, which is supposed to fix balance issues.
Edited by Zenoth, 07 February 2006 - 01:54 AM.
#9
Posted 07 February 2006 - 02:29 AM
So, I hope Thudo reads this thread and takes a look at the Orks before releasing Beta 7. And, Thudo might also want to look at and/or clean up the thing that Larkin is talking about.
We'll keep our fingers crossed that Thudo has the time. Meanwhile, I intend to patiently wait and give Thudo (and maybe Arkhan as well) additional time to pretest and perfect Beta 7.
If the Orks are working a bit better in Beta 7, we just might indeed be close to being ready for the big release, given everything else that Arkhan has done.
--
EDIT:
Oh, and here's my previous wish list for Beta 7, some of which has already been done:
http://forums.revora...ndpost&p=248021
Now, it's time for me to go away and do some more testing.
Edited by ThetaOrion, 07 February 2006 - 02:41 AM.
#10
Posted 07 February 2006 - 02:46 AM
Now we can focus on things that are more related to the game-play in terms of logistics, on how the A.I should behave and do specific things in a given order and organized manner.
According to what I see so far with Beta 6, I'm 100% confident about the great fun the community will have with 1.65/1.7 final. I also agree that it shouldn't be long before its release. Actually ... I'm sure Beta 7 will be the last Beta before it reaches a final state.
Then perhaps sometime after, Larkin/Arkhan/Thudo will proceed to some brainstorming about what to expect and focus on for a future version.
#11
Posted 07 February 2006 - 07:05 AM
I have no idea how to improve the Orks.. We'll look at that shortly however.. if IG have been improved, then Orks are the final frontier.
Dawn of War Advanced AI Headquarters
Latest DoW Advanced AI Download!
#12
Posted 07 February 2006 - 07:30 AM
I found out that the Beta 6 Chaos are still picnicking in the center of the Mountain Trails Map. I wonder if that is still floating around in Beta 7?
Beta Six Chaos AI Picnicking:
http://forums.revora...ndpost&p=248376
#13
Posted 07 February 2006 - 08:17 AM
I went in with Beta 7 on the same 'easy' 2vs2 layout that I won so easily on Beta 6 on Mountain Trails at HARD setting.
I was SM, Eldar AI ally, against 2 Chaos AI allies.
The Chaos beat the crap out of us in Beta 7 this time around. My Eldar AI ally was being overrun rather well. And, I quit when I lost my Stronghold. I don't think the Chaos AI was picnicking this time around.
When the AI is working right, I tend to lose on the Mountain Trails Map. I lost. It looks like the picnicking bug is fixed in Beta 7 where the Chaos is concerned, unless the Chaos has an AI Build Program that picnics.
I'm going to have to put two Orks on the opposing team so that I have a chance to win next time around. <grin>
Beta 7 looked really good in this first go around!!
Edited by ThetaOrion, 07 February 2006 - 08:19 AM.
#15
Posted 07 February 2006 - 07:46 PM
The chaos picnicking was because they tried to capture a critical point, but the capture command didn't work properly. I fixed this in beta 7. It shouldn't happen again.
Oh, that'd explain the orks in my previous game... and why they insisted on sitting inside a crater and letting my basilisks fill it up the brim with green bodies...
*goes to test*
#16
Posted 08 February 2006 - 12:15 AM
2vs2 HARD Setting Beta 7
I as Chaos, with Ork AI ally, vs IG and Space Marines
This time I held, maxed out, and did quite well. I even got a BloodThirster at one point. And, I even went to defend my Ork AI ally. But, my Ork AI ally was totally worthless. I kept playing for about an hour, until my Ork AI ally was completely wiped out. The Orks lost a resource point or two early in the game and they never made any attempt to recapture it. I had to take their Ork resource points in their territory away from the Space Marines.
That stupid SM LandRaider is indestructible. I couldn't figure out what would kill the thing.
I quit ten or 15 minutes after my Ork AI ally was wiped out. I was getting tired, though I did put a dent into the IG base and wiped out their IG Command Center. I never saw a BaneBlade, and obviously, I never saw a Squiggoth because the Orks never really got going. I could have won this game if the Orks weren't so worthless.
Everything is back to normal.
The IG AI ally had tanks, Ogryn, and Kasyrkin all over the place, even though I wiped out their Commander early in the game!! It looked really good.
I hope Malkor finds the IG to his liking in his tests.
And, I hope that Zenoth isn't experiencing any more crashes.
#17
Posted 08 February 2006 - 01:50 AM
Defiler ran away when faced with my one non-upgraded turret. When defiler was flanked by chaos lord and raptors, they still high-tailed it out of my base, even after they levelled my command center, because of my lonesome turret. This happened several times until I just deleted my last buildings and obsed.
I saw a strider close to the time of the defiler, but the IG were inable to survive past 10 minutes and only got up to hellhounds/basilisks. They did do some fancy targeting with the basilisk's ability.
Both chaos went pure defilers/predators and shredded it up. They also got bloodthirsters. Saw a pretty battle with 2 bloodthirsters and an avatar.
The wraith rushers only had two support gates late-game. They should get, like, 3-4, because when one of the dude's armies got wasted by the chaos, he only had 1 wraithlord waiting for them when they got up to his base. He was SAVAGELY beaten.
Saw some very nice predator dancing. Some nice hellhound dancing, too. Sometimes it's like I'm using those hellhounds. Very good job in keeping them away from melee.
A few things I'd like to see;
- The AI had 3 commisars but didn't so much as attach them. If he's going to get them, he may as well attach them.
- The eldar need more support gates. Like, twice as many. Wraithlords die VERY fast to predators and they can't rebuild nearly fast enough. He did eventually get prisms, but they were too short in coming to do any good.
- IG should immediately move to leman russ tank production if their initial vehicle rush "fails". They also need to get the baneblade MUCH faster. The baneblade is the core IG force in this matchup. Without it, they just stand no chance of survival. Leman Russ tanks are also extremely important, due to their range and hitting power. I've yet to see the IG get karyskin (Probably didn't live long enough). Seen Ogryn though. That was good.
What I liked was my turret maiming their infantry didn't slow the inevitable appearance of that first strider. It was quite something to see because at the time I only had a FC, a turret, a barracks, and a plasma generator. Inevitably, though, it was the Chaos and their defilers that ended the game.
Edited by Malkor, 08 February 2006 - 01:52 AM.
#18
Posted 08 February 2006 - 02:15 AM
2) I find the costs that Arkhan coded for getting caps (400req for squad) and (200req/400power for support) are a little high especially when yer draining his resources constantly fighting him. We can debate this cost. All factions have this or somewhat similar cost requirement to progress to higher caps.
3) Getting a BaneBlade, like getting a Squigg or Avatar is hard. How do you expect the AI to quickly tech to it if your wearing him down. Hell.. If I microing your arse to the tits draining your coin you think you could build one? You'd risk that huge wait and resource draw? Further, would about the high squad or support cap of having such a unit verses building 2-3 more squads as filler? This obsession with ubers is really NOT DoW/WA. They are "Bullet Magnets" and remember: WE CANNOT CONTROL THE AI at the Squad Level ! Not yet unless Relic steps in. We'd love to have special squad behaviours but no such AI for ANY PC RTS exists! We can only try to get the AI into certain "positions" on the front.
So remember.. AIs do not build ubers because:
1) Cost
2) Cap (ubers are high so its 50/50 you'll see it if they have the open slot for em)
3) Tier and Timing (with AI its all about timing and the build/queue code)
As for Ork.. We'll investigate that. I figured IG was far more difficult to do but Arkhan has done a saint's job with those!
Dawn of War Advanced AI Headquarters
Latest DoW Advanced AI Download!
#19
Posted 08 February 2006 - 02:52 AM
Ubers aren't just bullet magnets. Unless they're going soley against an entire army they are game-deciding units. Especially the Baneblade and the avatar/squig. The baneblade is pivotal in the IG game because it's where half of their damage and anti-infantry power is going to be coming from. Without it, they're as good as dead. I refuse to play IG on maps without relics.
For starcraft, one might consider a carrier rush very risky, but my AI pulls it off. One might consider a battlecruiser rush far fetched, but the AI pulls it off. Both are strats I personally commit in any game type. The AI does what I do. It's damn good. I can't change micro or economy, or even things like positions or pathing. If I was writing a DoW AI, it'd be exactly like my starcraft AI. By this, I mean it does the following -
- Makes up for lack of finer editing by sheer brutallity. The brutallity factor comes from speed, size, and choice of units.
- Is adept at large games and focused on 4v4 and FFA gametypes.
That isn't to say my AI lacks the capability to handle 1v1 or such situations. It does very well there, too.
What I'm getting to is this.
This AI needs to be built on it's strengths to win, not on what you hope it could one day do. It must be built around what you KNOW will grant it victory. My carrier rush AI works because it's faster than any human in the world, and it pumps out 3 carriers with 1/1/1 upgrades by the time I, it's PROGRAMMER, can get just one with no upgrades. It can't micro these carriers, choose good targets, or even be assured it's even going to get interceptors before it reaches it's target, but it HAS THE CARRIERS TO BEGIN WITH.
In DoW, I'll take a bloodthirster or a baneblade or a land raider or an avatar or whatever against any other unit group of equal cost any day. They are more powerful, more benificial, and more easier to control. The AI should STRIVE to get these powerful units because as a single unit they are more powerful in the AI's hands than a group. Being bullet magnets doesn't change the fact they also do the most damage and inspire the most fear.
When I see an Avatar coming for me and I only have a few dreadnaughts, I know who's going to come out the victor. It's this defining moment that I yearn to see every game. I want to see the insane AI outproduce me, get the bigger units faster, and DESTROY me.
In my eyes you have done all that needs to be done concerning finer details. The dance code is excellent. They cap stuff. They upgrade. They use spells well enough. Now it's time to take a look at what they'll do to use these capabilities to their fullest potential. To do that, we must look at the game in a logical, literal point of view.
An avatar is more powerful than a few squads, or a couple of vehicles. It's bonuses are also extremely benificial.
A baneblade WASTES groups of units, or multiple enemy vehicles.
A Blood Thirster can absorb an entire army's worth of fire for a VERY long time.
This is what makes these units EXTREMELY benificial to the computer. Sure, maybe a player can do more with some obliterators than what I can with a bloodthirster, but the comp doesn't have that raw logic, that learning power, the harassment and fear factor.
The Insane AI gets a resource boost. This alone should grant it an assured victory over a human player. That's why it's called "insane".
All of my build orders and strategies involve getting the toughest, biggest units. Terminators, land raiders, avatars, prisms, baneblades. I don't waste time piddling in a field that won't stay like it is for long. I get the biggest, the baddest, and the most truly terrifying weapons available to me. The AI needs to do this, too, if it expects to beat me. My Starcraft AI is built around this and, if I knew how, I'd have the DoW AI do it too. This is the kind of AI that will win. Otherwise, I'll keep destroying it, and keep yearning for something better.
I hope that gives you something to consider.
#20
Posted 08 February 2006 - 03:25 AM
DoW/WA Ubers are different.. totally.. They need cap (which AI needs an available slot for which most times it does not), they get stuck (DoW/WA's AI is totally 100% scripted to put buildings down where an Uber can fit through - Squig, LR, Avatar, and, yes, the Baneblade have this achille's heel - throw in a custom map or 4p_Biffys Peril and yer screwed).. and cost (enuff said).
I believe Larkin agrees to a point that Ubers (except Avatar due to cap bonus) are useless for the cost and cap sacrifice they are. We had this debate ages ago so kept Ubers on the backburner and let the AI build em when they saw fit. Now Arkhan has made em easier to build so they should be seen.
Again.. the reason you don't see em is cost, cap, and timing.. however, the greatest of these is cap, IMO. It just doesn't have run for the uber UNTIL other units are sacrificed OR the cost is too high at that point in Tier4 due to constant sparring with you and him.
Btw, what is your win percentage against Starcraft AI vs you? 50/50? Then tell me what your current win percentage in DoW/WA with our AI at that same skill level? Perhaps yer too much a pro-player then. A microing god. The greatest percentage of players who use our AI upon each release are always the low-to-average players. Elite to god-like players for ANY RTS game get their kicks again similarily skilled human players to which no AI for 10s of years would ever satisfy.
Dawn of War Advanced AI Headquarters
Latest DoW Advanced AI Download!
Reply to this topic
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users