Jump to content
mvi

Mission AI Research

Recommended Posts

I will search for my old AI files with custom building behaviour...you can research them.

Share this post


Link to post
Share on other sites

I have a question about using the mission editor. (.mis files).

 

There is an event called "Unkown6" with 2 options. Unkown 61 and 62.

I guess the 62 refers to the house index, but I don't know nothing about the 61. There is any information about this in this topic or another that I can not find or I'm missing something?  (I don't have any idea about hexeditors)

Share this post


Link to post
Share on other sites

I have a question about using the mission editor. (.mis files).

 

There is an event called "Unkown6" with 2 options. Unkown 61 and 62.

I guess the 62 refers to the house index, but I don't know nothing about the 61. There is any information about this in this topic or another that I can not find or I'm missing something?  (I don't have any idea about hexeditors)

The "Unknown" Triggers were intentionally written like that by MVI because the community simply does not exactly know what they do. I also tried researching what they do, but no luck yet.

Share this post


Link to post
Share on other sites

The "Unknown" Triggers were intentionally written like that by MVI because the community simply does not exactly know what they do. I also tried researching what they do, but no luck yet.

 

For now I know that the unknow6 increase the speed of the buiding rate of the IA until he had 2000 credits or so. The 62 means the House (index) which will have this increase, about 61 no clue.

Seems like other specifications like the time the IA waits until a new attack doesn't change.

Share this post


Link to post
Share on other sites

here is the list of possible [AI] settings in the .mis file, if someone needs to change one of these value then let me know .. i can tell where it is saved in the .mis file :D

 

I will keep updating this post everytime someone asks me to look up a value, make sure you come back and read it again

 

[AI]
FirstAttackBuildingDelay
TimeBetweenBuildingAttacks
FirstAttackUnitDelay
TimeBetweenUnitAttacks
AttackUnitStrength
AttackBuildingStrength
ProtectStrength
DefendStrength
SpeedWeight
HPWeight
FirePowerWeight
CashStash
Morale
AttackSidePriority
UnitBuildPriority
UnitRepairValue
ProtectUnit
BuildingRepairValue
DefendBuildingPriority
AttackBuildingPriority
MinBaseStrength
MaxBaseStrength
BaseDefenceRadius
HarvestersPerRefinery ; BYTE,        7428,         "Unknown - 7428"
CarryallsPerRefinery
RecogniseThreat
MoraleModifier
MaxMorale
MinMorale
AirliftPercentage
UseIdealStrength
UnitBuildRate ; DWORD,        7468,         "Unknown - 7468"
RepairUnits
RepairGuardingUnits
BuildingRepairTicks
UnitRepairTicks
ProtectTicks
DefendTicks
AirliftAndAttack
BuildBuildingRate
RebuildBuildings
TimeBeforeRebuilding
AttackBuildingRandomPercentage
BuildUnitRandomPercentage
TimingRandomPercentage
GroupSizeRandomPercentage
GuardBuildings
SquishInfantry
SquishRange
MaxAttackUnitGroups
MaxAttackBuildingGroups
MaxProtectGroups
MaxDefendGroups
MaxGuardGroups
BuildRatio
MaxBuildings
DefendArea
DefendAreaTimeout
EnablePractice
BuyUnits
UpgradeBuildings
DefaultBuildingRepairValue
DefaultUnitRepairValue
IR
GuardGroupSize
DontSell
FreePercentage
EmergencyBuildRate
SpecialWeaponDelay ; DWORD,        7448,         "Unknown - 7448"
  • Upvote 1

Share this post


Link to post
Share on other sites

Here are all the useful entries me and funky found. Copy paste the text from the spoiler to Mission Editor 4.o preview's SegmentDataList.txt

 

WORD, 7458, "Unknown - 7458"
DWORD, 7468, "UnitBuildRate - 7468"
DWORD, 7464, "Unknown - 7464"
BYTE, 7455, "Unknown - 7455"
DWORD, 3856, "Unknown - 3856"
DWORD, 3860, "TimeBetweenBuildingAttacks - 3860"
DWORD, 3868, "Unknown - 3868"
DWORD, 3872, "Unknown - 3872"
DWORD, 7436, "Unknown - 7436"
DWORD, 7440, "Unknown - 7440"
DWORD, 16, "Unknown - 16"
DWORD, 7476, "Unknown - 7476"
DWORD, 7480, "Unknown - 7480"
DWORD, 3920, "Unknown - 3920"
DWORD, 3936, "Unknown - 3936"
DWORD, 3940, "Unknown - 3940"
BYTE, 7493, "Rebuild Buildings"
BYTE, 7492, "Unknown - 7492"
BYTE, 7444, "Can Repair Units"
BYTE, 7445, "Unknown - 7445"
BYTE, 7432, "Unknown - 7432"
DWORD, 4216, "Unknown - 4216"
DWORD, 4220, "Unknown - 4220"
DWORD, 4224, "Unknown - 4224"
DWORD, 4228, "Unknown - 4228"
WORD, 4232, "Unknown - 4232"
BYTE, 4234, "Unknown - 4234"
BYTE, 3902, "ProtectStrenght - 3902"
BYTE, 3903, "DefendStrenght - 3903"
BYTE, 3904, "Unknown - 3904"
BYTE, 3901, "Unknown - 3901"
BYTE, 3900, "Unknown - 3900"
BYTE, 3907, "Unknown - 3907"
BYTE, 3908, "Unknown - 3908"
BYTE, 3909, "Unknown - 3909"
BYTE, 3906, "MaxAttackBuildingGroups - 3906"
BYTE, 3905, "MaxAttackUnitGroups - 3905"
DWORD, 7448, "SpecialWeaponDelay - 7448"
BYTE, 7452, "Unknown - 7452"
BYTE, 7454, "Unknown - 7454"
BYTE, 3926, "Do Attack Approachers"
BYTE, 3924, "Unknown - 3924"
BYTE, 3925, "Unknown - 3925"
BYTE, 7428, "HarvestersPerRefinery - 7428"
BYTE, 7429, "CarryallsPerRefinery - 7429"
BYTE, 3948, "AttackBuildingRandomPercentage - 3948"
BYTE, 3949, "BuildUnitRandomPercentage - 3949"
BYTE, 3950, "TimingRandomPercentage - 3950"
BYTE, 3910, "Unknown - 3910"
BYTE, 3911, "Unknown - 3911"
BYTE, 3951, "GroupSizeRandomPercentage - 3951"
BYTE, 7505, "Unknown - 7505"
BYTE, 7497, "Unknown - 7497"
BYTE, 2, "Unknown - 2"
DWORD, 24, "Unknown - 24"
BYTE, 30, "Unknown - 30"
BYTE, 3, "SkirmishAIbuilding - 3"
BYTE, 4, "Buy Units from Starport"
BYTE, 5, "Upgrade Buildings"
BYTE, 31, "Unknown - 31"
BYTE, 29, "Unknown - 29"
DWORD, 40, "Unknown - 40"
DWORD, 36, "Unknown - 36"
BYTE, 28, "Unknown - 28"
DWORD, 20, "Unknown - 20"
DWORD, 3932, "Unknown - 3932"
DWORD, 12, "Unknown - 12"
BYTE, 6, "Unknown - 6"
BYTE, 10, "Unknown - 10"
BYTE, 11, "Unknown - 11"
BYTE, 7, "Unknown - 7"
BYTE, 3853, "Unknown - 3853"
BYTE, 6636, "Unknown - 6636"
BYTE, 7431, "Unknown - 7431"
BYTE, 7485, "Unknown - 7485"
DWORD, 3880, "EmergencyBuildRate - 3880"
BYTE, 7453, "Unknown - 7453"
 
 
  • Upvote 1

Share this post


Link to post
Share on other sites

Awesome work. I was wondering on some of the values and what they actually mean. The Emergencybuildrate for example, what does that actually pertain to?

Share this post


Link to post
Share on other sites

Awesome work. I was wondering on some of the values and what they actually mean. The Emergencybuildrate for example, what does that actually pertain to?

The build rate AI uses when in danger (i.e. under heavy attacks).

Share this post


Link to post
Share on other sites

Oh ok, makes sense. It looks like if its just a value of 0=dont build when under attack, or 1=build while being attacked.

Another one I was looking at was protectstrength and defendstrength, Im guess protect is for the harvesters under attack and defend is for units defending base?

Share this post


Link to post
Share on other sites

Not sure about those.

Build rates can take any value, the lower it is, the faster he builds. Setting it to 1 or 0 is max build speed

Share this post


Link to post
Share on other sites

DWORD, 7436, "Unknown - 7436" - maybe this is how many turrets AI building. Testing results:

= 8 then comp building 4 rocket turrets and 4 gun turrets
if = "4" or > "8" then   - the comp builds only 4 rocket turrets and gun turrets not build at all

very strange ))

Share this post


Link to post
Share on other sites

Thanks, I using this program for AI - very helpful.  There are some unknown bytes there. Need manual for some oter, if it is. For example, what for: "MaxBaseStrength", "SquishInfantry", "HPWeight" (many), "SpeedWeight" (many)?

Share this post


Link to post
Share on other sites
On 11-9-2015 at 5:15 AM, FunkyFr3sh said:

All AI values were identified meanwhile, you can edit them using the last Map and Mission Editor found here: http://d2kplus.com/MapandMissionEditor.php

Yes but half do not work "AttacksidePriority" does not seem to change anything. AttackBuldingpriority only seems to influence the AI minimally and many others i can't even seem to confirm

I might be doing something wrong though

 

I tried 0/1 100,000, 255 and 20000

Share this post


Link to post
Share on other sites

AttackBuildingPriority does work, for example that's why sometimes in the original campaigns the AI would rush your ConYard with a few trikes and quads before retaliating and attacking your army/defences.

 

I tried the AttackSidePriority myself and I wasn't lucky with it either, as I couldn't see any difference. I don't know if we're just not using the right value or if they really don't work, but that AttackSidePriority function could be extremely useful.

Share this post


Link to post
Share on other sites
20 hours ago, FedaYkin said:

AttackBuildingPriority does work, for example that's why sometimes in the original campaigns the AI would rush your ConYard with a few trikes and quads before retaliating and attacking your army/defences.

 

I tried the AttackSidePriority myself and I wasn't lucky with it either, as I couldn't see any difference. I don't know if we're just not using the right value or if they really don't work, but that AttackSidePriority function could be extremely useful.

AttackBuildingPriorit does work, but i only observe behavior change for when an AI has chosen which side to attack. for instance setting AttackBuildingPrioritBaracks(A) to 20,000 and AttackBuildingPrioritBaracks(H) to 10,000 does not make the AI attack the Atreides instead of the Harkonnen it only decides which building to attack when they are actually attacking a Faction's Base also setting it to 0,000 does not stop them from attacking the building when they are near it. on the Other hand if you set all buildings to 0,000 for the side the AI is inclined to attack first it does nothing or it ignores it(depending on unit type e.g stealth fremen behave oddly( observed berserk behavior or nothing)) even if all Other building belonging to different Factions/Houses have normal values 1,000-100,000

So Something is not right, i'm inclined to say AttackSide Priority is the Master setting(which doesn't seem to work) the only other explanation is the AI will always attack the closest enemy Base which means it's a rather dumb AI

Edited by Satoru

Share this post


Link to post
Share on other sites

Indeed it doesn't seem to do anything, I tried with 1, 11, 99, 99999 and nothing changed. I don't know if we're doing something wrong or it just does not work at all.

 

If u think dune AI is dumb, just check Tiberian Sun's AI for example. They would always choose the closest enemy (or the player who annoyed them very early IIRC) and target that one player until he is dead (with all attacks and all superweapons). You can literally just walk near an enemy AI who is on the attack, and if he has someone else as their hated enemy those units will ignore you and move towards that player's base (unless you attack them, in this case they retaliate). In Dune I noticed it chooses an enemy building or unit (the enemy is not the closest, sometimes they tend to choose the human even if it's very far away) and gooes blindly towards that building/unit. However after more than likely a specified-in-the-AI-functions time it "rescans" the target and instead of rushing towards that building, it goes hunt mode, meaning that's when they literally just go for the closest enemy unit or building from their position. This is more efficient AI than the TS AI, as it won't simply run across your base ignoring you.

Share this post


Link to post
Share on other sites
2 hours ago, Satoru said:

AttackBuildingPriorit does work, but i only observe behavior change for when an AI has chosen which side to attack. for instance setting AttackBuildingPrioritBaracks(A) to 20,000 and AttackBuildingPrioritBaracks(H) to 10,000 does not make the AI attack the Atreides instead of the Harkonnen it only decides which building to attack when they are actually attacking a Faction's Base also setting it to 0,000 does not stop them from attacking the building when they are near it. on the Other hand if you set all buildings to 0,000 for the side the AI is inclined to attack first it does nothing or it ignores it(depending on unit type e.g stealth fremen behave oddly( observed berserk behavior or nothing)) even if all Other building belonging to different Factions/Houses have normal values 1,000-100,000

So Something is not right, i'm inclined to say AttackSide Priority is the Master setting(which doesn't seem to work) the only other explanation is the AI will always attack the closest enemy Base which means it's a rather dumb AI

I found some odd behaviour with the IA and the AttackBuildingPriority.

I have a map from a campaign where I have 2 small bases. One with a High-tech and two windtraps and the other with a Starport, an outpost and another two windtraps.

The enemy have several small bases with a only 1-2 different type of units (One base builds only tanks, another base builds only light infantry and troops, etc...).

The "Ordos side" have a priority to 35 against to the starport and 1 to any other building (including the high-tech). Is true that most the time this Ordos goes against the starport, maybe 3 for every 4 attacks or so.
But sometimes, for some reason, the IA goes against both bases at the same time. Is not a norm, but is something curious.

At least the "0" to the building priority seem to work. Sometimes I forgot to set to 0 the walls and then I see the enemy attacking walls like mad.

Also, this:
Fremen map.JPG

In this image some Fremen are spawned from that Sietch. Although they have a priority to my imperial palace to 50, sometimes that group go against my main base (the rest of buildings are set to 1).
 

Edited by Cm_blast

Share this post


Link to post
Share on other sites

I hope this topic isnt closed, so...

in a few of my maps, the AI has a base ( no construction yard) and can produce units, i set him to produce mostly weaker ones, but sometimes the AI is not producing infantry at the same rate lets say trikes.

also in another map where you have to depend on an ally AI to win, the AI there doesnt seem to attack at all, i set his FirstAttackBuilding to 8000, thats about 5min and delay 5000 -3min and nothing happens, it just buys units and patrols around, sometimes he makes his 1st attack with a single unit after like 25min and if that unit dies he proceeds with his normal attack

and sometimes the AI just doesnt order anything from the starport, and if he does its way later than specified.

SO any way to change some of this behavior? or do i have to edit in some reinforcements to get things going?

Share this post


Link to post
Share on other sites
Posted (edited)
3 hours ago, zidane2 said:

I hope this topic isnt closed, so...

in a few of my maps, the AI has a base ( no construction yard) and can produce units, i set him to produce mostly weaker ones, but sometimes the AI is not producing infantry at the same rate lets say trikes.

The AI has a proportion of units that will produce. By default it's 1:1 - this means that the AI will build 1 infantry, 1 trooper, 1 trike, 1 quad, 1 combat tank... for every "loop"

Let's say you have a barrack and light factory enemy base; then on the editor you add 3 quads, 4 troopers and 2 light infantry placed on several spots around the base or near the CY of whatever.

The AI still count this units, so to the AI his proportions are this way:
Infantry = 2
Trooper = 4
Quad = 3
Trike = 0

When you start the game, the AI will build using this order:
Trike (1), Trike (2), Infantry (3), Trike (3), Infantry (4), trike (4), Quad (4), Infantry (5), Trooper (5), Trike (5), Quad (5)...

So at least on the early going trikes and infantry are going to be produced first. To make the AI producing an specific unit early you can either preplace units (spawn units count too), or change the proportion on the AI Tab "Unit Build priority".

2 on Quads and 1 on trikes will make the AI to produce 2 quads, then 1 trike, then 2 quads, then 1 trike and go on.

3 hours ago, zidane2 said:

also in another map where you have to depend on an ally AI to win, the AI there doesnt seem to attack at all, i set his FirstAttackBuilding to 8000, thats about 5min and delay 5000 -3min and nothing happens, it just buys units and patrols around, sometimes he makes his 1st attack with a single unit after like 25min and if that unit dies he proceeds with his normal attack

Ok, you say "it just buys units and patrols around"; So Let's explain how the AI works.

First; the AI has a first job: creating units to defend his base. The amount of units it's controlled by a line in the tab section called "Guard Group Size". The bigger this numbre it's, the more units the AI will use to patrol his base.

Only when the AI has filled this value, new units produced will be used to attack. Because of this doesn't matter if you place a first attack on 8000, because by that time the AI it's still building his own defenses.

Probably your AI it's taking like 20-25 minutes to fill the "Guard group Size" value, and only then he start producing units into attack.

You have two possible solutions to make your AI to attack much more early:
-Reduce the Guard Group Size to a very low value, so the AI only build a few units to defend and then he will focus on attacks.
-Use the "Unit Spawn" event with a timer of =1 and give him some tanks, quads, troopers, etc... units spawned that way will be used to patrol the base, thus the AI don't waste time on building tons of units to protect.

3 hours ago, zidane2 said:

and sometimes the AI just doesnt order anything from the starport, and if he does its way later than specified.

This is something random for the AI. Sometimes the AI order as soon as he can, but there are times where he waits lots of times; not too much you can do here.

If you really need a more stable AI (for example, if that AI doesn't order anything before the first 5 minutes, he will destroyed) you can just disable the orders for the AI (or not) and create some deliveries event for him.

For example, 2 combat tanks and 1 missile tank at =6000 ticks, so that AI can survive on the early going. Or like the original game giving to him a few units every 5000 ticks and more/stronger units every 12000 ticks. Things like that.

Edited by Cm_blast

Share this post


Link to post
Share on other sites

I managed to break the Starport on S08V1 and S09V2 by having the friendly AI build Barracks before placing their first Wind Traps since I modded the game. Maybe that has something to do with the build order? I rectified the issue with allied reinforcements through the Starport on a loop, which isn't unfair on those maps.

The AI will build the lower-ratio units first. If you have an Engineer set to 0.010 and other stuff at round numbers, the Engineer gets trained first as long as the Engineer can be trained. The AI will build Light Infantry until the Barracks is upgraded.

If you want the AI to build more often, zidane, you should adjust the build ratios until they can steadily pump out the same amount of units from their three different factories on the same loop. I like to put the total ratio for infantry units at around 18-20, light vehicles around 6-8, and heavy vehicles around 5-7.

Share this post


Link to post
Share on other sites

Both of you thanks, i will keep that in mind when i'll edit my maps,

if everything goes well, it will be released soon, hint: its a co-op campaign.

Share this post


Link to post
Share on other sites

I managed to break the Starport on S08V1 and S09V2 by having the friendly AI build Barracks before placing their first Wind Traps since I modded the game. Maybe that has something to do with the build order? I rectified the issue with allied reinforcements through the Starport on a loop, which isn't unfair on those maps.

Overall the AI do weird things withs the Starport. Sometimes I take control of the AI and he does an order instatly, but not always; there are games where the AI waits more than 20.000 ticks before doing his first order and things like that.

1 hour ago, zidane2 said:

if everything goes well, it will be released soon, hint: its a co-op campaign.

Good to read.

By Co-op campaign you mean a two human-only campaign or a AI being ally with the player during all the campaign?

Share this post


Link to post
Share on other sites
5 hours ago, zidane2 said:

if everything goes well, it will be released soon, hint: its a co-op campaign.

A co-op campaign? Sweet! Release a WIP thread, whydoncha. We can help you test.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×