- User Since
- Jun 2 2013, 6:38 PM (496 w, 4 d)
May 10 2016
Update: The June 3 update added new help to the command line. I can now successfully build in this way:
AddonBuilder.exe P:\Input P:\Output -project=P:
If -project is not specified, I have the same prefix Exception.
Any relation between this ticket and the changes pushed to dev branch on 5-6-2014?
Improved: AI's losing sight of target
I've just run through my repro cases on the latest dev build and I am still seeing the reported behavior. I cannot observe any change (and I'm not sure what has been changed?)
This may also have relation to whatever internal bug was fixed with the note:
- AI will not shoot you through bushes, if he did not see you before - fixed in OA and merged
from RiE 23.07.2013, 10:39, http://forums.bistudio.com/showthread.php?159711-Development-Branch-Captain-s-AI-Log
I have updated my original report to remove any speculative insight into the role of knowsAbout and to be simpler to read.
I want to stress that I am reporting the issue with engaging distant targets accurately through near concealment for a brief window after losing line of sight. I am not reporting about the info sharing of the AI. That is very relevant here and closely related, but it is not the bug I am reporting.
Thanks for the additional repro. You're spot on in arguing that they AI should use predictive aim to fire at targets moving briefly behind bushes near the target. That's definitely desirable behavior and is well-implemented now. This bug with close bushes seems to be an unintended side effect of that behavior when combined with that ticks of perfect info obtained from a spotter (explained below).
You are correct in that the AI is partly using its predictive tracking to follow the target. I was incorrect in saying that it does not. You are wrong that it does not have precise information about the target's location when knowsAbout = 4. It is only predicting the target's position until it gets a new 'tick' from the engine giving it the target's exact location. These accurizing ticks do not happen except when knowsAbout = 4. The AI will indeed fail to track a moving target through a bush if his knowsAbout is 3.98.
You have not proven this.
Let me prove it to you then.
I have prepared a new repro case, AITest-TeamSpotPositionTicks.Altis, which shows some additional aspects of this bug.
- When the AI feels that they are viewblocked, they will not fire on a 100m target through the viewblock even with knowsAbout = 4. This is correct behavior and shows that the LOS checks are working as intended.
- When an AI has a teammate observing the target (i.e., when knowsAbout = 4 and at least one team member has direct Line Of Sight to the target), the AI will receive a periodic 'tick' from the engine giving them the exact position and velocity of the target at that time. They will then use that information to apply their predictive tracking for a short window between ticks.
- Even with this info, they will not shoot through the bush. However, because of the ticks of info, as soon as they could possibly engage the target through the edges of the bush (they still cannot actually see the target from the perspective of the camera) they will. And they'll kill it in 2-3 shots. Other bushes (such as the brush shown in my video that the AI shoots through the hard branches) they will shoot through in places other than edges.
Please reference this video and AITest-TeamSpotPositionTicks.Altis:
a) There is a drawIcon3d blue circle (hard to see on YouTube, sorry, please run the repro) showing the exact position of the target.
b) A teammate is observing the zigzagging target.
c) Observe that the AI periodically receives exact target pos/velocity information and jerks over to perfect aim, then updates his predictive tracking to match even after the enemy has made a direction change. Consequently he is already perfectly aimed when the target leaves the viewblock and he shoots and kills it nearly instantly. Note that in the camera we watch, it is impossible to see the target at any time.
Devs, please also reference kju's report from Arma 2 on Dev-Heaven:
#42413 Improve AI info share system and AI weapon use on non visible targets system
This includes separate A2 reproduction cases and is the same issue.
You haven't demonstrated that there is unfair knowledge about prior movement of targets hidden by bushes.
That is not the bug I am reporting. In fact I specifically state that the test file AITest-TeamSpotting shows that the issue is NOT the foliage ViewLOD.
I kill people through foliage all the time.
Have you ever killed an enemy by blind firing through a bush at a moving target you spotted for fewer than 0.5s at more than 100m range, after a stance change (which unquestionably disrupts your exact reference to the enemy's position), in 2-3 shots? In my reproduction scenarios, I show these results with extreme consistency on only Regular difficulty. One can increase the AI skill to see more extreme cases.
I encourage you to try it by taking control of the AI yourself. As soon as you see the enemy and he disappears behind the bush in front of you, go prone and try to shoot him. You get 3 shots. Best of luck.
Furthermore, AI NEED to be able to shoot through bushes and trees at perceived positions and area suppression targets.
The issue is not about the AI firing through bushes. It has to do with them retaining a full '4' knowsAbout value for targets they cannot see, and using that information to make precision shots. They are not 'remembering' where their target is. They know exactly where it is even after losing line of sight to the target.
Furthermore, the AI knowing that an unseen enemy has died is an issue that deserves its own ticket.
No, it does not, because the cause is exactly the same and it is the same bug. Because the AI has knowsAbout = 4 for the target even after proning behind the bush, they know that it is dead. knowsAbout = 4 means that they have total information about the target -- position, movement, life state, class, weapons.
And also, does anyone remember that 'AI should not fire on units observed only b group members' ticket? Maybe this isn't actually fixed.
Reproduction case AITest-TeamSpotting shows that it is not fixed when linked with this issue.
I recommend that you try the reproduction cases rather than the video, which simply shows the issue, not the cause. In the missions I have included a tracker that shows the knowsAbout value of each AI regarding the other. While firing through the bush it remains at 4, the maximum, which means that the AI has perfect knowledge of the position of the target -- even if it is moving. They are not using predictive tracking because there's no need for it.
Increasing enemy inaccuracy is not a solution. Dispersion increases amount to a hack. It is far better for the AI to properly assess where they think the enemy might be and engage that location with aimed fire. The problem occurs when, as I clearly show, they do not 'assess' where the enemy might be. They know, at maximum value.
Lastly, error is introduced in your videos by the bushes and grass. We don't know exactly what the viewblock models look like. We need to find ourselves someone who can put a LoS script in the mission.
I could easily add such a check to my repro cases but there is no reason, because the issue has nothing to do with the viewblock models of the bushes, as I stated clearly in my report's reproduction case notes. I have also repeated this test with the grass turned off -- you can see me turn it off in video -- and it persists. If you put the AI behind the bush from the start, they will never spot the enemy. The issue occurs only when the AI spots a target, goes prone to engage it, and THEN the target is obscured by the bush's viewlod as result of the proning. The AI then ignores the bush and engages through it for a few seconds before the engine reassess whether or not the AI has knowledge of its target. (Or that's my guess about the engine behavior.) If they don't kill the target in the first few shots, they'll stop firing and just lay there.