harrified wrote:
I love you pasik, bro. But I need your help:
Code:
<parameter class="team_member_monitor_enemies_time" value="1.5" />
<parameter class="monitor_enemies_time" value="0.8" />
<parameter class="monitor_enemies_to_stab_while_peace" value="2.0" />
<parameter class="grenade_monitor_range" value="15.0" />
<parameter class="monitor_enemies_max_dot_range" value="1.8" />
1. I would assume
monitor means something like watch or remember but it's not entirely obvious in the context of
to_stab_while_peace. Is
dot_range basically just radius to the enemy here?
monitor_enemies_to_stab_while_in_peace actually refers to a time interval used to check for nearby enemies to fight against in stab range when it's peaceful aka non alert.
monitor_enemies_max_dot_range is used to control the sector of sight. It's somewhat obscure what it is because of still hardcoded offsets and multipliers that are applied on it, e.g. night time works as an additional 0.75 factor on it. Let's just say that 2.0 would result in capability to see full 360 deg sector in day time against standing / running targets. 0.0 should be the other end, having no sector of sight I believe.
Quote:
Code:
<parameter class="check_vehicles_interval" value="2.0" />
<parameter class="check_supplies_time" value="5.0" />
<parameter class="check_wounded_time" value="3.0" />
<parameter class="team_check_time" value="3.0" />
<parameter class="check_alert_time" value="1.5" />
<parameter class="check_reinforcement_need_time" value="30.0" />
<parameter class="check_need_help_time" value="1.0" />
<parameter class="cover_status_recheck_time" value="1.5" />
<parameter class="deploy_recheck_time" value="5.0" />
<parameter class="check_need_for_help_range" value="40.0" />
<parameter class="check_fellows_for_shield_use_range" value="20.0" />
<parameter class="recheck_cover_over_shootability_time" value="3.0" />
2.
Check seems pretty obvious except for
supplies and
team. I'm guessing
check_cover_status is handy for when an AI's cover is removed, and
cover_over_shootability tells the AI if it can fire
from cover (pop-up)?
Supplies check isn't much used as the grenade fill boxes don't exist anymore. Team check is used to look for a more appropriate squad to join.
In addition to cover being removed, check_cover_status also checks if someone else is occupying the cover, which can make one of the bots pick another cover spot if such is available.
cover_over_shootability, yes.
Most of the interval based parameters aren't that useful, they exist to avoid having bots check everything every AI update cycle, improving performance and removing some decision pingponging. Making the times lower can improve their reaction times tho.
Quote:
Code:
<parameter class="max_sight_range_with_muzzle" value="40.0" />
<parameter class="leader_sight_range" value="35.0" />
<parameter class="team_member_sight_range" value="30.0" />
3. Not sure what
with_muzzle means.
with_muzzle makes it possible to spot a shooting enemy from farther away than non-shooting enemies, works with enemies not using a suppressed weapon.
Quote:
Code:
<parameter class="strike_frequency_time" value="90.0" />
4. Is this for AI calling in artillery and such?
Yes. Before they were calls, they were mortar strikes. The value works as a minimum time of no calls, it's faction wide.
Quote:
Code:
<parameter class="global_separation_radius_factor" value="1.5" />
<parameter class="default_fighting_separation" value="7.0" />
<parameter class="boosted_fighting_separation" value="3.0" />
<parameter class="fighting_against_vehicle_separation" value="7.0" />
<parameter class="leaving_cover_separation" value="4.0" />
5. I'm guessing
separation is the desired radius for AI to distance itself from other squad members (bunching up/spreading out). What exactly does
leaving_cover mean? And
boosted_fighting?
Yup, separation is exactly that.
Leaving cover separation just activates when a bot is leaving cover. Leaving cover happens after a bot has first actively taken cover and reached the target spot, then after a small random time the bot will leave the cover to take a new look to decide what to do next. Seems the random time range is not exposed yet, my bad.
A bot believes to be in a boosted fighting mode when the leader has issued a command boost. Only player leaders do that, by multiclicking squad command at a single spot. The leader typically says "quickly" when the boost (re)starts.
Quote:
Code:
<parameter class="fighting_time_fire_not_open" value="2.0" />
6.
This one eludes me. :[THIS must be the combat mode timer, huh? :]
That is used as a minimum timer to stay in fighting state if a bot detects an enemy while the area is not alert. The intention of this is that the bot will open fire, and the fighting state must stay active at least for the fighting reaction time to pass for the first shot to be actually made.
Maybe that could be used as combat timer too, but I'm guessing it then works so only in a case when the bot detects an enemy non-alerted, it won't work as combat timer if it's the enemy who opens the fire.
The real combat timer is more likely to be "min_fire_open_time", but seems it's not among the exposed parameters. The current value is 8 seconds.
Quote:
Code:
<parameter class="in_trenches_fade_off_timer" value="4.0" />
7.
Is in_trenches something special or just another way of saying in combat mode?And THIS one eludes me. :[
The bots change to a different set of following parameters when they believe to be "in trenches", basically it activates anytime there are walls in way of movement, and it rechecks it & attempts to deactivate after that given time.
Quote:
Code:
<parameter class="run_limit_margin" value="2.0" />
<parameter class="run_limit" value="6.0" />
8. What does
run_limit mean?
Some parts of the AI logic make the bots change to running from walking if they are farther than a threshold value from a target, and vice versa. That value is run_limit + run_limit_margin to start running, and run_limit - run_limit_margin to start walking.