Jump to content


Photo

request for upcoming 2.6


9 replies to this topic

#1 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 05 January 2008 - 09:13 AM

Happy new year,

1. please reduce harassing time (AI is a poor at this, loosing more than gaining)
2. during harass CC squads should dance commanders (single sluggas and cultists always charge commanders and die - what a waste of life)
3. harassing squads should not harass bases, just outer points for decap. During decap they should reinforce if necessary to finish the job under fire.
4. some races are very late with their initial commanders, guard and orks if I remember correctly.
5. AI is still teching too much and not massing enough imo. Dynamic reaseach/addon squad requirements are too low. I sometimes watch incredible small armies still researching stuff or building turrets.

#2 troubadour

troubadour
  • Members
  • 88 posts

Posted 09 January 2008 - 04:39 PM

5. AI is still teching too much and not massing enough imo. Dynamic reaseach/addon squad requirements are too low. I sometimes watch incredible small armies still researching stuff or building turrets.


Usually i decrease the Tech Speed in the AI control panel hoping to trigger more squad, agree about Turrets too even if the Turrets Spam days are gone the AI still build too many turrets they shall be capped at 2 at Tier 2 and maybe 4 and Tier 3 and 0 at Tier 1
Usually turrets are a waste of req.... No turrest shall not be built until squad cap and vehicule cap are reached, i am over reacting but you see the point

#3 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 09 January 2008 - 05:35 PM

Here is some quick and dirty code for 2. Seems to work with DCpro. I reduced harassing time for DCpro AI to 4 minutes and changed forced tech to 6 minutes. I also added fast commanders for DCpro.

-- Avoid being killed in firefight or early CC against superior enemy
 function InfantryTactic:CheckForDeath()
	 
	 -- Ranged or weak cc squads stationary, hurt and away from home base
	 local unit_strength = self:GetUnitStrength()
	 local weak_cc_unit = (unit_strength < 200 and g_iGMT < DefendChokePointPlan.HarassingTime * 60 and 
		 not self.squad_ai:IsRanged() and not self:IsCommander() and not self:CommanderAttached())
	 local squad_pos = self.squad_ai:GetPosition()
	 local bCheckAvoidDeath = ((self.squad_ai:IsRanged() or weak_cc_unit) and self.squad_ai:WasRecentlyHurt() and
							   not self.squad_ai:IsCapturing() and not self.squad_ai:IsInStateMove() and
							   not self.squad_ai:IsBroken() and distance_sqr(squad_pos, cpu_manager.start_pos) > sqr(50))
						  
	 -- Don't leave if we are in state of disengage
	 if (self.stateID ~= Tactic.StateID.AvoidDeath and not bCheckAvoidDeath) then
		 self.m_iDancing = 0
		 return false
	 end
 
	 -- Init health tolerance
	 local squadsize = self.squad_ai:GetNumTroopers()
	 local unit_max = self.squad_ai:GetMaxTroopers()
	 local healthtolerance = 1.1 - squadsize / unit_max
	 
	 -- Check if we are a commander
	 if (self:IsCommander()) then
		 healthtolerance = 0.3
	 end
	 
	 -- Check active builders
	 local building = (self.squad_ai:IsBuilding() ~= 0)
	 if (building) then
		 healthtolerance = 0.2
	 end
	 
	 -- Bonus if a commander is attached
	 if (self:CommanderAttached()) then
		 healthtolerance = healthtolerance - 0.1
	 elseif (weak_cc_unit) then
		 
		 local oEnemyUnit = cpu_manager.cpu_player:FindFirstEnemy(squad_pos, 20, 1)
		 
		 if (oEnemyUnit ~= nil and cpu_manager:GetUnitStrength(oEnemyUnit) > 300) then
			 healthtolerance = 1
		 else
			 healthtolerance = 0
		 end
	 end
	 
	 --[[local iEnemyStrength, iAlliedStrength = cpu_manager:GetArmyStrengthAtPos(squad_pos, 35)
	 local closecost = iAlliedStrength - iEnemyStrength
	 healthtolerance = healthtolerance - (closecost / 1000)
	 ]]
	 
	 -- Always run
	 if (healthtolerance > 1) then
		 healthtolerance = 1
	 -- Always stay
	 elseif (healthtolerance < 0) then
		 healthtolerance = 0
	 end
		   
	 -- Check health tolerance
	 if (healthtolerance < 1 and self.squad_ai:GetHealthPercentage() > healthtolerance) then
		 self.m_iDancing = 0
		 return false
	 end
	 
	 -- Okay, let's dance
	 local bFirstCall = (self.stateID == Tactic.StateID.NoState)
		   
	 -- Check for a safe destination
	 if (not self:MoveToDisengage()) then
	 
		 if (not bFirstCall) then
			 self.tolerance = self.tolerance + 10	
		 else
			 self.tolerance = self.tolerance_default
		 end
		 self.squad_ai:DoMoveToClosestSafePoint(self.safe_point, self.tolerance)
	 end
		 
	 -- Set state
	 local state_func, state_name = self:GetSubState()
	 if (state_func ~= self.AvoidDeath) then
		 Tactic.SetSubState( self, self.AvoidDeath, "AvoidDeath" )
		 self.squad_ai:DoSetStance( SquadAI.STANCE_StandGround )
		 self.stateID = Tactic.StateID.AvoidDeath
	 end
	 
	 -- Set avoid death state
	 self.m_eSubStateID = self.stateID
	 return true
 end

Edited by LarkinVB, 09 January 2008 - 05:42 PM.


#4 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 12 January 2008 - 07:56 PM

Excellent work, Larkin! Btw, SS demo is out but it looks like its NOT sanctioned by both Relic or IronLore.

Also, not sure ya knew but we finally figured out why the Necron Restored Monolith wasn't being built reliably. Now it gets built all the time? Why? Simple.. its stats in unitstats.ai were too low. Bump em up and presto.. all good now! :dry: Been tested extensively across the board.. Even had 2 Monoliths from the same faction in a balance mod work with this new fix and its so reliable now. Yey.
Advanced Skirmish AI Team Lead for the coolest Warhammer40k PC RTS out there:

Dawn of War Advanced AI Headquarters

Latest DoW Advanced AI Download!

#5 ArkhanTheBlack

ArkhanTheBlack

    title available

  • Members
  • 814 posts

Posted 13 January 2008 - 01:05 PM

Since SS demo is out now, I think it's best to delay anymore changes to SS. Thudo has the complete 2.6 installer since before christmas, but he obviously didn't have time to release it yet.

Besides that, I agree with some of the mentioned points, and with some not (like always). I changed harassing time from 4 mins to 5 mins a long time ago because it wasn't enough on bigger maps, so naturally I disagree with this one. After all, harassing can be switched off in the AI control panel for those who don't like it. Same goes for the teching speed which can also be adjusted in the control panel. Though the force teching time are not yet modified by that. I guess I should change that for SS.
The weak CC unit change for harassing is very dangerous. I'd gladly sacrifice my cultist squad if I can save my chaos marine squad in return. Cultists and sluggas are cheap after all.
The avoid bases thing is interesting however. Ork and IG commanders are not in the quick build list. I guess that's the reason they are not built immediately. At least for Orks this could be changed since th mek boy is build always at the start anyway.

But after all, I lost all games vs hard AI in a DowXP LAN session with a friend lately (which happened never before), and so I'm not too unsatisfied with the current state of the AI.

Edited by ArkhanTheBlack, 13 January 2008 - 01:05 PM.


#6 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 13 January 2008 - 09:54 PM

The weak CC unit change for harassing is very dangerous. I'd gladly sacrifice my cultist squad if I can save my chaos marine squad in return. Cultists and sluggas are cheap after all.


I'm talking about the early lonely harassing cultist/slugga fighting a hero. This won't save any marines/shootas, they come much later.

I started to readjust DCpro initial build queue for all races to do fast heros. That is
1. Second builder
2. Both forced to build infantry building, generator later.
3. hero

But whatever. It's just a sudden burst of coding activity which will fade again soon most likely. What I still would like to see is a better cc code. I recently watched some ork AI replays and it still hurts to see the attacking cc squads, retreating just while reaching the enemy. Btw I watch big mek with attached sluggas trying to avoid CL during initial harass contact without a fight. Is this what was desired ?

One other thing though. DCpro has an ready slugga squad at gamestart. This will not start capping for more than 15 seconds, their tactic is set but it won't kick in as a move command for a long time. I hade to dirty fix the capture code.

function CapturePlan:CapturingFlag()

-- Check if we should capture the flag directly or just walk there in attack mode
	-- Initial squad at gamestart should start immediatly
	if (g_iGMT < 10) then
		self.capturing_squad:DoDefault(self.capturing_flag:GetEntity())
	elseif ((distance_sqr(vFlagPos, vSquadPos) > sqr(35) or bIsInCombat) and bAttacker) then
	
		-- Attack move to target flag
		if (oTactic:GetState() ~= Tactic.States.Attack or distance_sqr(oTactic:GetTarget(), vFlagPos) > 1) then
			oTactic:SetState(Tactic.States.Attack)
			oTactic:SetTarget(vFlagPos, Tactic.Variant.Vector)
		end
	else
	
		-- Capture flag
		if (oTactic:GetState() ~= Tactic.States.Hold or distance_sqr(oTactic:GetTarget(), vFlagPos) > 1) then
			oTactic:SetState(Tactic.States.Hold)
			oTactic:SetTarget(vFlagPos, Tactic.Variant.Vector)
		else
			self.capturing_squad:DoDefault(self.capturing_flag:GetEntity())
		end
	end

Edited by LarkinVB, 13 January 2008 - 10:00 PM.


#7 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 14 January 2008 - 09:29 AM

Thudo has the complete 2.6 installer since before christmas, but he obviously didn't have time to release it yet.


Thudo is sooooo sloooooow .... :)

#8 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 14 January 2008 - 02:13 PM

Sorry.. It will be posted but only with Christmas fixes. :)
Advanced Skirmish AI Team Lead for the coolest Warhammer40k PC RTS out there:

Dawn of War Advanced AI Headquarters

Latest DoW Advanced AI Download!

#9 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 30 January 2008 - 09:20 AM

When ?

Btw I found the kroot shaper not attaching in dcpro. Code is (same as 2.5)

self:TryAttachSquad( false, false, 1000, 100, nil )

Shouldn't it be

self:TryAttachSquad( true, false, 1000, 100, nil )

to attach to kroots ?

Edited by LarkinVB, 30 January 2008 - 09:23 AM.


#10 makute

makute
  • New Members
  • 1 posts

Posted 31 January 2008 - 04:12 PM

Good day all!

Been lurking for a while (here and in the Relic Forums). Tested Dawn of Skirmish and the DowXP version and found that can't play the single player campaign without being smashed by the Bloodthirster in the first map.

I know it is a common question in the forum, but, there is a real way to play the SP campaign with the improved AI and keeping the general setting of the maps? I mean, number of bases, type of units used, etc.

Thanks in advance :thumbsupsmiley:



Reply to this topic



  


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users