Posted: Sat Sep 17, 2005 1:21 pm Post subject:
AI Tutorial
I wrote a "little" AI Rules Tutorial. I also posted it to ModEnc. It descripts most Rulesmd.ini AI tags and I'll propably update it soon.
Sorry for mispelling, I'm not very good in English. Here it is:
CloseEnough=If your big taskforces get stuck, increase this.
Stray= ;If you want to use bigger TaskForces, increase this. ;Recommended:4-5.
RelaxedStray= ;Increasing this prevens big TaskForces to get stuck at regroup and gather command. ;Recommended:5-7.
GuardModeStray= ;Again, if you want to use bigger TaskForces, increase this. ;Recommended:3-4.
TeamDelays= ;This number says how often the AI checks for creating a TeamType in frames. Decreasing it is maybe the best thing you can ever do for the AI. Brutal, Medium, Easy. Recommended: Under 100. (I use 1,1,1 )
AIHateDelays= ;Delay in frames before AI chooses an enemy. Keep it low.
MultiplayerAICM= ;Percent of addition money for AI. If you want your AI to have plenty of money, increase, but have more dogs guarding AI bases becouse if player's spy gets into an AI refinery, he gets a LOT of money. Brutal, Medium, Easy.
AIVirtualPurifiers= Same as above. 1 gives 25% bonus to money. Brutal, Medium, Easy.
AISlaveMinerNumber= Can be changed, but I recommend to leave it as it is.
HarvestersPerRefinery= Do not edit this. Only one AI will build additional harvesters and others will get stuck.
AIExtraRefineries= Same as above, but decreasing this can give AI more free space in base, and AI can replace a refinery fast. (but it also has less harvesters then, and less money) If you have big TaskForces and need space in base, decrease to 0,0,0 and increase AICM or VirtualPurifiers.
Probably can be increased on 2 player maps safely.
MinimumAIDefensiveTeams= Minimum number of IsBaseDefense=yes TeamTypes AI will build. If it is higher than max number of IsBaseDefense=yes TeamTypes AI can build, it will get stuck causing Soviet (But if high enough, also Allied and Yuri) dead AI issue. To prevent this, just make more IsBaseDefense=yes Teamtypes or increase their Max=. Recommended:3-5.
MaximumAIDefensiveTeams= Maximum number of IsBaseDefense=yes TeamTypes AI will build. Should be higher than minimum.
Recomennded:5-7.
TotalAITeamCap= Maximum of teams used by AI. Good idea to increase, but not too much if you haven't done something to give the AI more free space.
AIIonCannonxxxValue= Absolute ordering of targets when AI fires Weather Storm or Nuke.
Descripion:
AIIonCannonConYardValue= Value of buildings with ConstructionYard=yes
AIIonCannonWarFactoryValue= Value of buildings with WeaponsFactory=yes
AIIonCannonPowerValue= Value of buildings with Power= above 0
AIIonCannonTechCenterValue= Value of BattleLabs
AIIonCannonEngineerValue= Value of Engineers
AIIonCannonThiefValue= Value of Thiefs (Logic still present in RA2)
AIIonCannonHarvesterValue= Value of Harvesters
AIIonCannonMCVValue= Value of MCVs
AIIonCannonAPCValue= Value of Transporters
AIIonCannonBaseDefenseValue=Value of buildings with IsBaseDefense=yes
AIIonCannonPlugValue= Value of buildings with IsPlug=yes-if you give IsPlug=Yes to for example, SWs,this is their value. Of course, you must delete the comment first, or you get an IE.
AIIonCannonHelipadValue= Value of buildings with HoverPad=yes. Deleting the comment fixes HoverPad SW targeting IE.
AIIonCannonTempleValue= Value of buildings with IsTemple=yes. Same as with Plug. Tip- use for SWs,refineries or with Purifiers/Vats/Plants.
AISafeDistance= Distance from enemy/own base at which AI will execute the gather/regroup command. If your AI builds large bases, increase.
AIMinorSuperReadyPercent= If Iron Cortain or ChronoSphere is this charged, AI will start preparing teams which make use of it. Decrease if you have long-building Chrono or Curtain teams.
AlliedBaseDefenseCounts=
SovietBaseDefenseCounts=
ThirdBaseDefenseCounts=
Brutal, Medium, Easy. Number of defense builddings the AI will build for each side. If too high, AI just builds defenses and somehow forgets other buildings, also it then builds defense "chains". If you get total control of what AI builds when, then set defenses to be build later, increase this number to a very high number like 100, and you have nice ring of defenses around the AI base. If you want AI to have many defenses, but it always builds those chains, you can simply disable defenses and use tons of cloned buildings, that allows you to control when AI builds each building including defenses and things like sending SHK to all TESLA thanks to different building IDs.
AISuperDefenseProbability= Propability that AI will use ForceShield when attacked by major
SWs. Recommended:99
AISuperDefenseFrames= If ForceShield is not ready when AI is attacked by major SWs, it can wait maximally this long or it will not fire. Set to as high as is the shortest delay before nuke hits, storm starts etc.
NodRegularPower=
GDIPowerPlant=
ThirdPowerPlant=
Power plants that is built by the AI when it needs more power All powerplants AI builds are this, except first one) It is a good idea to set this to the powerplant with highest Power= your mod has for that side, even for the Soviets (having NANRCT is risky, but it saves much space) If you want AI to have more space, make high output powerplant for every side and set this to it.
A note to [BuildingTypes]:
As jkraska discovered, AI goes down trough the building type list building buildings as they are listed here. If it can't build next building, it starts again checking for its Prerequisites=. This means, that if you have GAWEAT higher in list than GACSPH, like:
17=GAWEAT
...
22=GACSPH
,it will build Weather Conrol first and Chronosphere later. Of course it builds only buildings with AIBuildThis=yes. Trough playing with building clones, changing positions of buildings in this list, and Prerequisites, you can get pretty good control of what AI builds when, but you will mess up ScriptTypes and have to fix them.
BuildXXX:All of these read only 1 building per side including ConcreteWalls.
BuildConst= ;Have all your Construction Yards here.
BuildPower= ;This is the first powerplant AI builds. You can have NANRCT here if you want,
but it will look strange. Also, this reads only one power plant per side so having here both NAPOWR and NANRCT just builds NAPOWR.
BuildRefinery= ;Have all your refineries here, even if they use Slave Miner logic.
BuildBarracks= ;Have all your barracks here.
BuildTech= ;Have all your Battle Labs here.
BuildWeapons= ;Have all your War Factories here
BuildRadar= ;Have all your Radars here
ConcreteWalls= ;Have all your walls here. These will be built around ProtectWithWall buildings, so if you replace GAWALL by GAPILL, it will build pillboxes around those buildings (And AI will be slower than ever before)
BuildNavalYard=;Have all your Naval Yards here.
BuildDefense= ;Used for standard defenses, but obsolete in YR
BuildPDefense= ;Used for power consuming defenses, obsolete in YR
BuildAA= ;Used for AA defenses, obsolete in YR
AlliedBaseDefenses=
SovietBaseDefenses=
ThirdBaseDefenses=
Have your defense buildings here. This can take unlimited number of these buildings, buildings listed here ignore BuildLimit and if you set it for country specific buildings like GTGCAN, it will build them for the whole side, that is why some modders prefer to clone Grand Cannon. Maximum of these buildings built is specified by XXXBaseDefenseCounts=, numbers of specific buildings built change with AIForcePredictionFudge and their AntiXXXValue.
AIForcePredictionFudge= AI chooses its defenses by analyzing units of player it chose as its enemy, and make weighted distribution of defense based on their AntiXXXValue. It is good to try to experiment with this value, sometimes lower can be better than higher, and combine this with extreme changes in defenses AntiXXXValues.
MaximumBaseDefenseValue= Comments in Rulesmd say it is obsolete, but changing this to very high values (like 4000) can have interesting results, but it will make AI concentrate on building defenses only and so you need again more control of what AI builds when.
CreditReserve= ;AI will repair building only if it has more than this credits.
PowerSurplus= ;AI will build power plants until it has this surplus.
BaseSizeAdd= ;Increasing this to very high numbers can make AI build huge bases, but only increases number of power plants and defenses as it cannot build more factories or refineries. You should increase it if you increased XXXBaseDefenseCounts=.
PowerEmergency= ;AI will sell buildings if it has less than this percent of power.
AIBaseSpacing= ;This is average space AI will leave between its buildings. Increase only if you have only few buildings or replaced maps with some that have more space for bases,or in map files.
[AIGenerals] ;This section was supposed for TS, but never finished. To make use of it, you must get AI.TLB file from TS and if you are modding YR, rename it to AIMD.TLB . You must place it into RA2 directory and then you can uncomment it with no IE. This section are actoally 5 Generals, different behaviours AI can have, something like bots. You need to use TriggerType (I'm not talking about TeamType here) BaseDefense and then you will find a new problem. Allies are attacking Soviets and vice versa, but Allies vs Allies is one really boring match, as they are doing almost nothing. To fix this bug, you must write MANY triggers attacking specific sides (not Attack Factories, but Attack Enemy NACNST for Soviets etc.) an if you do this, you can have better and more unpredictable AI, but Yuri is unchanged, as this was meant for GDI and Nod. This section could maybe also have something with unknown part of TriggerTypes, where Deeyire says, that it could specify which General uses this Trigger. Anyway, this section is a really hard work and you need to be really sure you want to do this. Still, if you thik you are an AI expert, you can try. I think Deezire used it in his mod, but I'm not sure.
AI Tips: By increasing RepairPercent= and lowering RepairRate= you'll get faster but more costly structure repair, with cost that is propably still no harm for AI and it makes AI much more annoying as it repairs everything under attack if it has enough money.
AI(MD).INI TIPS:
1:AI wont deploy Siege Chopper.
If you want to make AI use it, you must make it fire from air and use normal attacking script.
2:If you have a transport in your TaskForce, you can have ONLY 1 with transporting scripts.
If you have more, the AI will get stuck with it. Also, other units must exactly fit to the transport, so:
0 = 1 , HTK
1 = 4 , IVAN -or 6
doesnt work.
but 5 does as IVAN has Size=1 and HTK has Passengers=5
You can have max of 2 transport by using TeamType 2 in the trigger.
3:If you use both teamtypes 1+2 to double your TaskForce, check Max= of them if AI builds only one.
_________________ Time will tell...
Sooner or later...
Time will tell... Last edited by Kiith-Sa on Mon Feb 13, 2006 1:03 pm; edited 4 times in total QUICK_EDIT
AI Generals for Yuri ai probably wouldn't work for yuri as it was programmed for two factions or it could have nasty side effects. _________________ QUICK_EDIT
Well, it didnt make any strange things when I tried it.
Right now Im trying to make about 1000 triggers per side to try AIGenerals and for me still mysterious Y (see deezire AI Guide,Triggers)
Also, Im thinking about updating this with AI.INI stuff.
All my teams are Autocreate=no and almost all triggers call for Teamtypes 2, but I see no support teams in game. So AutoCreate=no team cannot called as support team? Does support team "recruit" already built teams? BTW, sorry for posting this here, but I didnt want to start another topic. _________________ Time will tell...
Sooner or later...
Time will tell... QUICK_EDIT
Also, other units must exactly fit to the transport, so:
0 = 1 , HTK
1 = 4 , IVAN -or 6
doesnt work.
but 5 does as IVAN has Size=1 and HTK has Passengers=5
Don't use "Wait until fully loaded" then QUICK_EDIT
Wont AI then send only the first unit?
Also, AI still cant use another transports, can it? _________________ Time will tell...
Sooner or later...
Time will tell... QUICK_EDIT
Repeat the "Load into transport" command as many times as there are passengers. Both solutions barf when someone kills one of the passengers enroute to the transport, though. QUICK_EDIT
Sorry for bumping old topic like this but i was woundering if someone could send me a link to Deezire's AI Guide. I looked on Deezire.net and couldnt find it. QUICK_EDIT
Sorry for bumping old topic like this but i was woundering if someone could send me a link to Deezire's AI Guide. I looked on Deezire.net and couldnt find it.
DeeZire.net > Downloads > RA2 > INI Editing Guide. You need to register first. The AI guide is in that download, labeled AI.doc.
Or, alternatively, my AI Editor V2 includes that same guide (HTML version). QUICK_EDIT
..um would this simply be the result of the AI having build 3 conyards (did not use a mvc mind you)..I know It's pointless to have 3 GAWEAT...but damn..I made a good AI =)..need more defense teams though.
Heres a Comp Base in a previous game..with it's 2 bases
no it isn't its just a simple "clone wars" bug which has been mentioned numerous times before.
If the ai has more then one factory it gets a free unit or structure ignoring build limits so 3 barracks for ai would mean 3 boris, 5 con yards, 5 weather control etc ... _________________ QUICK_EDIT
What's the point of having those useless buildings then, taking up valuable build space? Remember that the AI does not have the freedom of choice that humans do while placing buildings, and if it fails to find space for a building, it will lag the game to no end.
This problem exists in the unmodded game already, just try playing on Yuri's Plot or Breakaway against a hard AI with Superweapons on and let it build up instead of rushing it, and see. QUICK_EDIT
Modify map. Make AI use no walls, build less defenses, build Nuclear Reactor (so it wont fill its base with Tesla Reactors), make it not build Industrial Plant etc. _________________ Time will tell...
Sooner or later...
Time will tell... QUICK_EDIT
Slave Miners are very fucked up codingwise. Can't really do a lot about it.
Aside from that, "unused" units occasionally happen because you set the team creation time too low, and it doesnt finish building a team before the timer fires and starts creating a new team... QUICK_EDIT
Two things could be wrong if your AI builds shitloads of SMINS.
1: 100 VehicleTypes limit.
2: (more probable)-Slave Miner is HarvesterUnit. If it is, uncomment or delete SMIN from HarvesterUnit.
TeamDelays are no problem with this, I never encountered this bug becouse of it. Your AI probably builds more factories. Make some Recruiteŕ= teams then (with triggers) _________________ Time will tell...
Sooner or later...
Time will tell... QUICK_EDIT
Is just RA 2 yr some have the bug not TS RA1 or the old game so it's have be shomting here in the EXE mabye i take wrong .
I nery never get this bug i ahve got it like 1 - 4 times and no more them get this bug when u atk them and kill the constry yard then them build MCV and depploy them is only this way i got this bug no another way so :S _________________ Can you hide from me ? QUICK_EDIT
AISlaveMinerNumber=4,3,2;gs can't use harvestersperrefinery since no refineries (changed from 3,2,1 per Todd)
HarvestersPerRefinery=2,2,1;gs this used to hard coded. If it is here then design has control
AIExtraRefineries=2,1,0;gs Again, formerly hardcoded. Does not apply to SlaveMiner _________________ QUICK_EDIT
i general foudn no problems when adding to AI (very unused as is) just when trying to add a specific side unit the icbm deployed rocket to the sovs (libya ) in this case because of the chemical warhead on the icbm an their demo truck, Lybia ignores the build limit one tag in rules.ini an builds 4 or 5 of em, not just them but all sovs an allies build this weapon when its design specifically for liyba in the rules,ini an ai.ini section, never did work around it so i gave up, any pointers i will be all ears QUICK_EDIT
First, TaskForce has to have only one unit.
Second, Teamtype has to have max=1.
Third, You cannot make more TeamTypes using any TaskForce with this unit.
Or, I didnt understand your post and its 100 XXXTypes limit. _________________ Time will tell...
Sooner or later...
Time will tell... QUICK_EDIT
why not just remove all trace for slave miner and then make yuri use the axis?/allied's miners? then you wont have the messed up slave miner crap QUICK_EDIT
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum