Thursday, April 12, 2012

[FA][IDEA] Point Defense AI Evolution

[:1]The modification for Forged Alliance described herein will hopefully be feasible without too much difficulty. If you feel that this thread is in the wrong place, or that there is already a thread or mod that deals with this idea in particular, please say as much so I can ask a mod to delete/move it.
The inspiration for this mod:

Point defense systems will always target the first unit to enter into it's range of fire, regardless of any other condition. I propose that this is an inefficient setup, as this causes all guns in a local area to focus fire on single units, one at a time, allowing mass rushes to easily defeat most moderately sized ground or anti-air defenses.
The desired effect of this mod:

I propose that when a defensive structure targets an enemy unit, it 'tags' that unit, flagging it as secondary priority to all other point defenses. The result will be that as units come into range, they will each be targeted by a separate point defense structure, hopefully providing a better defense by streamlining enemy annihilation.
There should be a split-second period where one gun will wait for another target to appear for targeting after another gun has already selected the target it was realigning to shoot at, so as to prevent artificial 'jamming' as guns may attempt to and abort targeting repeatedly otherwise.
Example in action:
__4_5_6
__1_2_3
____B
__A___C

Guns A, B and C are protecting a mass outpost in a wedge formation, when enemy units 1-6 approach in a roughly block-like formation.
Gun B targets unit 2 and flags him as low priority to the system, so when unit 2 survives the first few rounds and continues forward into the ranges of guns A and C, they do not attack unit 2, as units 1 and 3 followed unit 2 and are now also in range, prompting gun A to target unit 1 while gun C targets unit 3, as each target is relatively closer to its respective gun.
By the next moment, unit 2 has been destroyed, but units 1 and 3 are still intact, while units 4, 5 and 6 are now in the range of fire of gun B, prompting the system to randomly select one of these units as the target for gun B. Let's assume gun B targets unit 4, randomly.
Now in the next moment, both units 1 and 3 have been destroyed roughly simultaneously by guns A and C, allowing them to target a new enemy unit for destruction. Now units 4, 5 and 6 are in range of guns A, B and C, yet gun B has already targeted unit 4, flagging it as secondary priority, prompting guns A to target unit 5 while gun C targets unit 6.
Another second passes, and gun B has finished obliterating unit 4. Now both units 5 and 6 are in the range of fire of gun B, but these units have been flagged as low priority. Normally this would prevent gun B from firing on these units, but gun B has no target of its own to take first priority, and so randomly selects unit 6 as its next target, joining gun C's fun.
A half-second of mayhem moves into the past, and the combined force of guns B and C have destroyed unit 6, while unit 5 still lives, albeit only a step from death's door.
Now guns A, B and C can target unit 5, and lacking a target of their own, this leads to all three guns focusing fire onto unit 5 until it is destroyed.
Staggered Scenario:
____4
__2___3
____1
__A_B_C

Now using the same rules of behavior as established in the above wall of text, I will example a behavioral exception.
When unit 1 approaches, it comes into the range of fire of guns A, B and C. Gun B claims unit 1 as its target and flags it as low priority, but guns A and B have no priority target, and so focus fire on unit 1 along with gun B.
Now assuming unit 1 survives this assault for the next second, this brings units 2 and 3 into range of the guns while all three guns are still occupied. The solution for this situation is that gun B, having attacked it first, maintains priority on unit 1, while guns B and C deselect unit 1 and realign their targeting systems on units 2 and 3 respectively, flagging them as low priority while they pick them apart.
As the units move forward, unit 1 has been destroyed by gun B, while unit 4 has come into range of the three guns. Having their own targets already, guns A and C ignore unit 4, while gun B ignores units 2 and 3 in favor of the non-flagged unit 4.
The above rules of behavior continue as in the previous example.


Possible Alternative or Additional Rules of Behavior:

Experimental Assault:

____@
__1___2
____3
__A___B

The symbol '@' represents an experimental.
This scenario would follow the previous two examples in terms of rules of behavior, with the following exception that:
>All guns immediately disregard their own targets and target the experimental unit when it is in range.
>All guns will target the experimental unit once their current target is destroyed, disregarding any other units in range.
Multiple Scenario:
__@__@__@
__A___B___C

Guns A, B and C are all in range of the three experimental units. Exceptional behaviors could be:
>All guns focus fire on one experimental at a time.
>Each gun takes an experimental for itself.
Recognition Software Possibility:
____@_@
___3__3__3
___2__2__2
___1__1__1
___ABC_ABC

Where numbers 1, 2 and 3 represent tech 1, 2 and 3 units respectively, but only in this example.
Where letters A, B and C represent tech 1, 2, and 3 point defenses respectively, but only in this example.
The exceptional behaviors in this scenario could be as follows:
>guns A will individually target units 1 as according to normal rules of behavior, but will focus fire on units 2 and units 3.
>guns B will individually target units 1 and units 2, but will focus fire on units 3.
>guns C will individually target units 1, units 2 and units 3, but will focus fire on experimental units.

Fairy Tale Scenario, a not-so-likely/easy and not required mod addition:
Programmable Behavioral Templates
In which groups of turrets can be given a prepared and personalized template of behaviors, such as targeting artillery and missile launching units first, or focusing fire on engineers when they appear, and more.|||Sounds interesting to me! :)|||Yep to me too, very interesting, but will this see the light of day sometime ?|||Sounds interesting but I dont think this would be easy to make.|||My god, I got replies!
Myself, I think that it would be easy to make if you already understood the AI code, but would result in a lot of persistent bugs and debugging.|||Sounds like BulletMagnet's Over Kill Control...
Mike|||OrangeKnight|||I just tried searching for said mod to compare ideas, but no dice.
Could someone provide a link, please?|||Stickies, they are a wonderful thing.
Mike|||EDIT: whoops, Orangeknight had everything under control, so I'll just add a note on UOKC; there is a massive bug which prevents half the land units from firing. Read Bulletmagnet's code with this in mind.

No comments:

Post a Comment