CfgSurfaces grassCover and aiAvoidStance properties need configuration
Closed, ResolvedPublic

Description

Comparing the values of these properties to the counterparts in Livonia and Altis there are some serious issues that needs to be corrected from a gameplay perspective, and possibly also a bit of discussion to be had as it will have major impact.

grassCover

the grassCover property affects how easy it is for AI to spot you depending on the surface you're on, reducing the simulated visibleSize. On most terrains, this value hovers around 0.05 which lines up with Altis, which is suitable for the more arid terrains such as Takistan, however comparing Chernarus to Livonia there are extreme discrepancies. The normal tall grass on Livonia generally hovers between 0.5-.95(!) whereas the Chernarus counterparts generally stays around the same 0.05 as mentioned before.
What this means is that from an AI perspective, on CUP terrains the surface type you try to hide on has nearly no effect (past the modifier applied by stance), whereas on Livonia you'd be near invisible depending on the surface.

AIAvoidStance

Does really what it says on the tin. Has three values:

  • 0: The default, what we have now
  • 1: Avoid going prone unless under fire or in stealth
  • 2: Avoid going prone at all costs

This parameter was introduced with Apex, and in my opinion may be useful to solve the common complaint that grass only affects players, and not AI. By simply having them avoid going prone where they realisitically wouldn't be able to fire if they did would even the playing field significantly. This is default behaviour on Tanoa and Livonia, where it is generally set on surfaces with tall grass.

Code used to check values in editor:

sqf
[]spawn{
	while {true} do 
	{
		sleep 1;
		waitUntil {!isNil {(get3DENSelected 'object') # 0}};
		_surface = [(surfaceType getPos ((get3DENSelected 'object') # 0)), 1] call BIS_fnc_trimString;
		systemChat str
		[
			_surface,
			getNumber (configFile >> "CfgSurfaces" >> _surface >> "AIAvoidStance"),
			getNumber (configFile >> "CfgSurfaces" >> _surface >> "grassCover")
		]
	}
}

Completed terrains

  • Bukovina
  • Bystrica
  • Chernarus (Autumn)
  • Chernarus (Summer)
  • Chernarus (Winter)
  • Desert
  • Porto
  • Proving Grounds
  • Rahmadi
  • Sahrani
  • Shapur
  • Southern Sahrani
  • Takistan
  • Takistan Mountains
  • United Sahrani
  • Utes
  • Zargabad

Links

https://community.bistudio.com/wiki/Detection
https://community.bistudio.com/wiki/Arma_3_CfgSurfaces_Config_Reference#grassCover
https://community.bistudio.com/wiki/Arma_3_CfgSurfaces_Config_Reference#AIAvoidStance
https://github.com/pennyworth12345/clutter_testing#conclusions

Details

Affected classnames
Most of CfgSurfaces
Branch
Development
Reproducable without other mods?
Yes
Freddo3000 claimed this task.
Freddo3000 triaged this task as High priority.
Bear added a subscriber: Bear.Sun, Oct 27, 2:33 PM
Freddo3000 changed the task status from Needs Review to In Progress.Sun, Oct 27, 5:57 PM
kju added a subscriber: kju.Sun, Oct 27, 6:34 PM

So from moving about a few terrains, these are some of the values I came across, ignoring concrete and bare soil.

+---------+--------------+----------+------------+
| Terrain | Surface type | AIStance | grassCover |
+---------+--------------+----------+------------+
| Livonia | Farm field   |        2 | 0.6        |
| Livonia | Short grass  |        0 | 0.4        |
| Livonia | Tall grass   |        2 | 0.95       |
| Livonia | Forest       |        2 | 0.5        |
| Tanoa   | Tall grass   |        2 | 0.35       |
| Tanoa   | Short grass  |        1 | 0.15       |
| Tanoa   | Forest       |        0 | 0.1        |
| Tanoa   | Rock         |        0 | 0          |
| Malden  | Stony        |        0 | 0          |
| Altis   | All surfaces |        0 | 0.03 - .15 |
+---------+--------------+----------+------------+
Malden, Stratis and Altis are interchangable

I'll try to roughly follow the standard set by Livonia, as it is most applicable. I'll try to replicate Altis when it comes to more arid terrains.

Freddo3000 updated the task description. (Show Details)Sun, Oct 27, 8:21 PM
Freddo3000 updated the task description. (Show Details)Sun, Oct 27, 8:50 PM
Freddo3000 updated the task description. (Show Details)
Freddo3000 updated the task description. (Show Details)Mon, Oct 28, 8:30 AM
Freddo3000 closed this task as Resolved.Mon, Oct 28, 8:32 AM

https://dev.cup-arma3.org/rTERRAINSMAPSSVN13

All of CUP maps should now be configured, I will not be editing CWA though if someone wants to do that then feel free.

If anyone can do some proper testing when it comes to the difference in AI visibility, it would be much appreciated as there isn't any solid info on the grassCover property.