Jump to content


Photo

Dawn Of Skirmish SS v3.10 AI Mod is now LIVE!


80 replies to this topic

#21 thudo

thudo

    Wacko AI Guy!

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

Posted 24 December 2008 - 04:08 PM

Yer joking.. how the bloody hell does our AI mod affect the DoW campaign like this? Our mod DOES NOT change unit's HP values -- thats impossible as our code doesn't alter the units themselves. I have no clue what you're getting on to here. What might change is how often the AI builds certain units in the campaign.

Regardless, our Advanced AI was NEVER meant for the DoW campaign, period. Its near idiotic to think it makes sense to vastly increase the AI's intelligence in a static linear campaign which would drastically alter the way its meant to be played. AI is meant for dynamic multiplayer/skirmish = thats MUCH harder to code for. MUCH!
Advanced Skirmish AI Team Lead for the coolest Warhammer40k PC RTS out there:

Dawn of War Advanced AI Headquarters

Latest DoW Advanced AI Download!

#22 RobertW7928

RobertW7928
  • Members
  • 48 posts
  • Location:Australia

Posted 02 January 2009 - 03:15 AM

Well I did forget to mention that i enabled Massive Battles for the Campaign, I'm not sure if that's the problem but scaled Hp comes to mind, lol well there you go.

#23 thudo

thudo

    Wacko AI Guy!

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

Posted 02 January 2009 - 03:24 AM

We'll call it even and label it "a feature" :p
Advanced Skirmish AI Team Lead for the coolest Warhammer40k PC RTS out there:

Dawn of War Advanced AI Headquarters

Latest DoW Advanced AI Download!

#24 The_Witch-King

The_Witch-King
  • Members
  • 10 posts
  • Location:Iceland

Posted 08 April 2009 - 01:43 PM

awesome mod man
Im from Iceland

The Sky has Fallen

Posted Image

#25 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 08 April 2009 - 05:44 PM

Is there a reason why 3.1 will not build dynamic squads during harassing phase (which is a long time) in ComputeBuildProgram() ? I had to remove this part of the code for Pro as it made the AI very weak at T1.

-- Check unit count
				if (iCurrentInstances < iCount) then
				
					-- Don't build dynamic units in harassing time
					if (g_iGMT < DefendChokePointPlan.HarassingTime * 60) then
						self.m_bSpendMoney = false
					end

Edited by LarkinVB, 08 April 2009 - 05:45 PM.


#26 thudo

thudo

    Wacko AI Guy!

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

Posted 08 April 2009 - 05:48 PM

Hrrmm.. worth investigating.
Advanced Skirmish AI Team Lead for the coolest Warhammer40k PC RTS out there:

Dawn of War Advanced AI Headquarters

Latest DoW Advanced AI Download!

#27 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 10 April 2009 - 07:55 PM

AI is much better without it. At least DoWPro AI. Perhaps Arkhan can elaborate.

I'd like to to see
-- Check if Relic is required
	if (not self:HasRelic() and self:RelicRequired(sName)) then
		return
	end

added for the DynamicXYZ() functions in buildbasestrategy.ai. I did add for Pro AI but prefer not to deviate to much from skirmish mode core code.

#28 Zenoth

Zenoth

    title available

  • Members
  • 469 posts

Posted 17 April 2009 - 02:21 AM

Hey guys,

It's been a while. I've been playing lots of Soulstorm 3.10 lately in conjunction with the Bugfix Mod, and it's a blast, as always. But there's one thing that keeps getting my attention when it occurs, which I never payed attention to before (and to be honest the fact that I missed it is troubling me, but I've missed many things when testing so... meh). It concerns the Necron Lord only.

First, here are the conditions for what I am about to describe can occur:

1) Necrons must be assaulting or must be under attack.

2) Necron Lord must be active and part of the assaulting army, or part of the army under attack (obviously, since it concerns the Necron Lord specifically)

3) There must be long-range fire coming from the Necrons' enemies (I'll explain below).

In brief words (and I hope it'll be clear with this small explanation), when the Necron Lord is going on assault with a Necron army (let's say two or three, or more Necron Warrior squads, along with Necron Destroyers and Flayed Ones, that's a minimum, I'm referring to "major" assaults here, late Tiers as well), or when the Necron Lord and his army is being pushed back to the main base, and also if the enemy is using long-range weaponry, either coming from vehicles or infantry, and if the Necron Lord is around, then the following will occur:

The Necron Lord teleports itself exactly where that long-range fire comes from and immediately starts causing carnage and melee the sorry living heck out of whatever infantry and/or vehicle that had the unfortunate order to be there and firing at the Necron army from afar. In other words, if for instance I am playing as the Imperial Guard and I am defending my base from an incoming Necron army by using my Basilisks from the very end of the Basilisks' range of fire limit (that means very far from the Necron army, well "hidden" within a fog of war), then inevitably (happening 10 times out of 10 in my tests) the Necron Lord will "known" exactly where that fire comes from, and teleport there, well between two Basilisks or right in between a group of side-by-side heavy weapons infantry and will often use Solar Pulse and then punch his cold, deathly Staff of Light through the enemy. You guys cannot possibly imagine how frustrating it can be, but that's not the point, it's not because it's frustrating that I'm typing all of this, it's because it doesn't seem to make sense at first glance.

So I really have to ask if that Necron Lord behavior is actually meant/coded to be so? Because if it is then I would highly suggest revising it. You know what that behavior makes me remember? It makes me think about the quite recent problem we've had with the Dark Eldars using their soul powers within the fog of war against infantry they would normally have never been able to detect. Just in case my paragraph above wasn't clear, I'd like to repeat what that is all about. The Necron Lord teleports itself during combat (either during base defense or during assaults) right where long-range enemy fire comes from (normally well hidden within the fog of war, and normally unknown to the Necron Lord), and I do mean right where it comes from, not even a meter away from the vehicle(s) or infantry, I mean right in the middle of the very squad(s) firing at his army from afar, that means any factions capable of long-range fire (let's say Basilisks, Heavy Weapons infantry, long-range Terminators, Obliterators, most of the Tau units, and many others).

The thing is that logically the Necron Lord has (or "should have") no idea on the exact position of the source of the long-range fire against his army. There are many cases where that behavior occurs although the Necron Lord never even once penetrated into the enemy base at all. So how can he known the exact position and teleport there immediately? The problem here isn't the fact that he teleports into the fog of war, that ain't even the point. It's just that he teleports itself right where the firing comes from in the first try, he doesn't even run around to "look for" the source of fire, he just gets right there right away and disrupts everything he can, and let me tell you a Necron Lord can disrupt many things. He will then of course sometimes die there, since he teleports itself right into the enemy base, or right into the enemy's army (when the Necrons are under attack) and will simply ask for trouble even with Solar Pulse, and if he dies there, he stays there (its body I mean), and when he spawns back guess what he does? No, he doesn't stay there resuming on the carnage, he teleports away for a good two minutes or so, and then eventually does exactly the same thing again as long as the attacking or defending army is still there.

Right, so from now I think that if I resume I'll just keep repeating myself, which I've done already above. I just wanted to find different ways to explain this. In the end, all I want is to understand, to know how that behavior works and why was it chosen to work that way if that is indeed the case. If however it could be something that the coding team has over-looked then here I suggest making changes to it, to avoid having a Necron Lord which is able to "guess" where the enemy fire comes from, from within the fog of war (and only from within the fog of war, that's the point), and instead make the Necron Lord behavior... I don't know... different? Is it possible? I'd like to have a discussion about this with you guys. And, on a side note, there's a demo of DoW2 on Steam, and I tried it, and I'm glad I did, it allows me to save money, long live to DoW1!

#29 MrCJ

MrCJ
  • New Members
  • 2 posts

Posted 23 April 2009 - 01:54 PM

Hi Zenoth I feel your pain :/

Although I am nothing to do with the project, and haven't looked through the code I am pretty certain that this is not an intended feature, and is more likely to be a manifestation of a different behaviour that was not prevented against.

While it is relatively easy to make an AI stronger by cheating, the whole point is to not make it look like it is cheating, so as to perpetuate the illusion it is a player you are facing and plays like that just shatter the illusion immediately.



Anyway on to my real post, I am an AI graduate looking to break into games AI (aren't we all?) and was wondering if there was anything I could do to help contribute to the DoW Skirmish AI? I remember playing against it a long long time ago and being really impressed by the micro management of the commanders especially.

I don't know if this is the right place to post about it, or whether I should just PM the devs directly, but the AI Subforum seemed to be pretty quiet the last couple of years :/

Thanks
CJ

#30 thudo

thudo

    Wacko AI Guy!

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

Posted 23 April 2009 - 02:00 PM

Hey welcome MrCJ.. not sure what you mean "the AI Subforum seemed to be pretty quiet the last couple of years" when there has been alot of activity even in recent weeks. If anything, you understand LUA -- our primary DoW1 AI scripting language? Both Larkin and Arkhan are our prime AI devs and we're testing internally AI v3.20 (going amazing well actually).
Advanced Skirmish AI Team Lead for the coolest Warhammer40k PC RTS out there:

Dawn of War Advanced AI Headquarters

Latest DoW Advanced AI Download!

#31 ArkhanTheBlack

ArkhanTheBlack

    title available

  • Members
  • 814 posts

Posted 23 April 2009 - 03:13 PM

Actually we would need someone to test if the Eldar campaign fortress fix works => Starting with Necrons, that's two maps to play.

There's also a post in our AI thread at Relic that the campaign videos are not shown (maybe that's also a reason why the Eldar Fortress map crashes?!?). Not sure how to solve that problem.

Maybe it would be also good to copy the user profile data for the 32 installer...

Edited by ArkhanTheBlack, 23 April 2009 - 03:13 PM.


#32 MrCJ

MrCJ
  • New Members
  • 2 posts

Posted 23 April 2009 - 03:27 PM

Hey welcome MrCJ.. not sure what you mean "the AI Subforum seemed to be pretty quiet the last couple of years" when there has been alot of activity even in recent weeks. If anything, you understand LUA -- our primary DoW1 AI scripting language? Both Larkin and Arkhan are our prime AI devs and we're testing internally AI v3.20 (going amazing well actually).


Yeh the LUA syntax is pretty straight forward, I did some work in it for some World Of Warcraft addons a while back. The only problem I am having at the moment is locating a copy of Soulstorm (I went travelling shortly after the release of Dark Crusade and haven't had a chance to catch up yet).

In the mean time I'll try extracting the .ai files and getting myself up to speed on the current release :thumbsupsmiley:

-CJ


EDIT: I was initially distracted by the DoW Misc AI Bin, and missed that most of the skirmish discussions were happening here lol

Edited by MrCJ, 23 April 2009 - 03:29 PM.


#33 Zenoth

Zenoth

    title available

  • Members
  • 469 posts

Posted 24 April 2009 - 04:20 AM

Actually we would need someone to test if the Eldar campaign fortress fix works => Starting with Necrons, that's two maps to play.

There's also a post in our AI thread at Relic that the campaign videos are not shown (maybe that's also a reason why the Eldar Fortress map crashes?!?). Not sure how to solve that problem.

Maybe it would be also good to copy the user profile data for the 32 installer...


About the movies not showing, if I'm not mistaken the movie files found in the default DXP2 folder (within the Movies subfolder) must be copied and then pasted in a newly created Movies folder into the modification's installation folder for the actual movies to work while using the mod. So in the case of Dawn of Skirmish it would like like this: X:\Program Files\THQ\Dawn of War - Soulstorm\Dowai_mod\Movies

Additionally Arkhan and/or Thudo, I'd like to have your thoughts on my previous post concerning the potential issue with the Necron Lord. And finally, if you guys need a tester I'm certainly available, I'm back for some more Soulstorm action since a couple of days, and I'll still have more spare time to spend on it in the coming weeks.

Edited by Zenoth, 24 April 2009 - 04:23 AM.


#34 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 24 April 2009 - 03:53 PM

Is there a reason why 3.1 will not build dynamic squads during harassing phase (which is a long time) in ComputeBuildProgram() ? I had to remove this part of the code for Pro as it made the AI very weak at T1.

-- Check unit count
				 if (iCurrentInstances < iCount) then
				 
					 -- Don't build dynamic units in harassing time
					 if (g_iGMT < DefendChokePointPlan.HarassingTime * 60) then
						 self.m_bSpendMoney = false
					 end


Bump. I think it is a bug.

#35 ArkhanTheBlack

ArkhanTheBlack

    title available

  • Members
  • 814 posts

Posted 24 April 2009 - 06:54 PM

Bump. I think it is a bug.

It's not a bug! This code is only computed if there's a unit item in the build program during harassing time which hasn't build yet. These units build orders are considered as 'better' than the dynamic AI building pattern and therefore the AI makes sure that they have priortity and saves resources for them. This is done to avoid situations like the AI building lots of scout squads and then hasn't enough resources for a force commender any more. If the dynamic build is stronger than the programmed unit build pattern, then this raises questions about the quality of this build pattern. For such a 'programmed' build pattern it's important to know which buildings the AI has at a certain time. Therefore those programs have to be tested. If the AI can't build a unit because the building isn't available yet, then the unit build pattern is bad. If the opponent is attacking the HQ directly, the AI switches to emergency mode and also builds dynamic units.
The only weak point occurs if the AI looses buildings or can't build them for any reasons and isn't in direct danger. In this case it will try to replace the building first.

Edited by ArkhanTheBlack, 24 April 2009 - 06:55 PM.


#36 ArkhanTheBlack

ArkhanTheBlack

    title available

  • Members
  • 814 posts

Posted 24 April 2009 - 07:12 PM

Additionally Arkhan and/or Thudo, I'd like to have your thoughts on my previous post concerning the potential issue with the Necron Lord.

This is not specific to the Necron Lord. It's a general teleporters/jumpers 'behaviour'. They can jump directly to the target area and attack a weak target. Of course, it's pretty much cheating if they don't have sight, but those sight checks need CPU power so I try to avoid them. And so far nobody had complained about this issue yet.


About the movies not showing, if I'm not mistaken the movie files found in the default DXP2 folder (within the Movies subfolder) must be copied and then pasted in a newly created Movies folder into the modification's installation folder for the actual movies to work while using the mod. So in the case of Dawn of Skirmish it would like like this: X:\Program Files\THQ\Dawn of War - Soulstorm\Dowai_mod\Movies

So all movies have to be copied? Sounds like quite some copy work (How many GB?!?). I wonder if the missing movie scenes might have something to do with the Eldar fortress map crash.


And finally, if you guys need a tester I'm certainly available, I'm back for some more Soulstorm action since a couple of days, and I'll still have more spare time to spend on it in the coming weeks.

We have a beta. Not sure if Thudo did upload it yet. However, this won't be a big release. Just some slight fixes.

#37 thudo

thudo

    Wacko AI Guy!

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

Posted 24 April 2009 - 07:18 PM

So all movies have to be copied? Sounds like quite some copy work (How many GB?!?). I wonder if the missing movie scenes might have something to do with the Eldar fortress map crash.

Might be a way to re-direct the location of the movies but wait a sec.. our dowai_mod project is like other faction mod projects so they also will impact movies also. I think there is a movie playlist file that can be re-directed or re-initialized.

We have a beta. Not sure if Thudo did upload it yet. However, this won't be a big release. Just some slight fixes.

Yeah haven't sent it to anyone yet as we don't have official testers. This can change if we want to fully test the mapdb and Eldar Campaign.
Advanced Skirmish AI Team Lead for the coolest Warhammer40k PC RTS out there:

Dawn of War Advanced AI Headquarters

Latest DoW Advanced AI Download!

#38 LarkinVB

LarkinVB

    title available

  • Members
  • 1,488 posts

Posted 24 April 2009 - 08:57 PM

Bump. I think it is a bug.

It's not a bug!


??? I had to remove this code to get the AI to build units at all during harassing time which were not in the build program.

This code is only computed if there's a unit item in the build program during harassing time which hasn't build yet


Are you sure ?

BuildBaseStrategy:DoBuildUnits() will not work during harassing time. If you only have three cultists and a lord as fixed unit build orders you won't get any more units. Sorry, I don't understand this. What do I overlook ?

#39 ArkhanTheBlack

ArkhanTheBlack

    title available

  • Members
  • 814 posts

Posted 24 April 2009 - 10:58 PM

The complete code segment is...

elseif (sType == "Unit") then
		  
			  -- Check tier level, squad and support cap
			  local iUnitSquadCap, iUnitSupportCap = self:GetUnitStats(sName)
			  if (iTier == iMinTier and iSquadCapLeft >= iUnitSquadCap and iSupportCapLeft >= iUnitSupportCap and not bForceTech and bBuildUnits) then
			  
				-- Get unit ID
				iID = cpu_manager.stats:GetSquadID(sName)
				  
				-- Check how many units we have of the current type
				iCurrentInstances = self:CountSquads(sName)
				
				-- Check unit count
				if (iCurrentInstances < iCount) then
				
					-- Don't build dynamic units in harassing time
					if (g_iGMT < DefendChokePointPlan.HarassingTime * 60) then
						self.m_bSpendMoney = false
					end
					
					-- Keep building order in first 2 minutes
					if (g_iGMT < 2 * 60) then
						bBuildUnits = false
					end
				end

The code segment starts with elseif (sType == "Unit") then. Therefore it's only computed if the build controller checks a unit build item and not enough units of this type are on the field. If the build controller gets stuck because of this, then there are three possibilities:

1.) The unit can't be built because the necessary building or tech is not available or...

2.) The name of the unit is written incorrect and the build controller can't find any buildings where he can build the unit.

3.) The units are part of a rush program. In this case no other units are built until the rush is over. (If I remenber right...)

If those don't apply, it's possible that there's a completely other reason for the problem.

#40 Zenoth

Zenoth

    title available

  • Members
  • 469 posts

Posted 25 April 2009 - 04:21 AM

This is not specific to the Necron Lord. It's a general teleporters/jumpers 'behaviour'. They can jump directly to the target area and attack a weak target. Of course, it's pretty much cheating if they don't have sight, but those sight checks need CPU power so I try to avoid them. And so far nobody had complained about this issue yet.


Could those checks then be added as an option for players around with a good enough CPU? If the teleporting behavior really is something that affects all teleporting-capable units then I honestly never noticed it. I thought it was related to the Necron Lord only, but I'm quite surprised to learn of the universal nature of that behavior, I'm not trying to deny the facts though. But that behavior, in my humble opinion, is unfair.

I would perhaps "force" or simply leave that behavior as is for Harder difficulty settings, but up to High I would leave it as an option for the players to enable or disable the sight checks. And one of my reason to say this is because the once-unfair Dark Eldar Soul Powers usage within otherwise unknown areas due to the fog of war has been fixed eventually, I'm considering that both "problems" are of the same nature. But the next release as you said will include slight fixes and changes, so if doing what I ask is feasible but would require too much testing time then perhaps considering it for a future release would be the best thing to do, if of course you do want to consider such an option.



Reply to this topic



  


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users