nyxstef wrote:I studied Software Engineering, and yes I do know what I'm saying.
Simpler method is that all fired missiles still in flight will automatically target nearby enemies if the original target is destroyed.
If you've studied software engineering, then you can come up with solutions to your arguments just as easily as I can. You're producing vague, scary "oh it's too complex!! It's not modular!!" arguments, rather than thinking about the issue properly.
1. There's nothing non-modular about this. Fundamentally, the game works on HP and damage. This system is based on HP and damage.
2. I've already said (and you should know yourself) that the calculations involved are less than 1% of 3D world stuff like pathfinding or collision detection. So you keep saying "huge CPU demand" without any basis at all. Whenever the players click a new movement order and the game has to run new pathfinding for a group of units, there will be a thousand times more calculations involved than the algorithm I stated.
Not to mention, the only time the algorithm calculates anything is:
- When a new projectile is fired (adds to Doom meter)
- When a projectile is destroyed (subtracts from Doom meter)
- When a unit wants to fire its weapon, seeking a target.
These things occur less often than once a frame, so in video game time they hardly happen at all. And these are things that are happening already without any performance hits. Just adding and removing a number during these processes is completely trivial. The algorithm will cause units to seek new targets more often (due to their current target being overkilled already), but you can duplicate that ingame right now just by repeating manually targeting and then using the stop command. (all the units will then seek a new target.) You can see ingame that there is zero performance impact from this.
3. I already said that AOE and autocannon damage is optional. But it's possible if you want. We're already including an overkill margin of error, so it's not like the system needs to be exactly precise. So an estimate or average of AOE damage is sufficient.
4. In the case of AOE, (which again, is optional), you don't need to calculate the projectiles path. You already know where it will land - the target area. So when the projectile is launched, all targets within the AOE can be marked with an average of damage. When the projectile impacts the ground, the Doom value is removed from those units. This will produce edge cases where units move into or out of the AOE zone before the projectile lands. But it's rare and the effects are minor in the overall scheme of things. (Your units will refuse to fire at some targets coming from the blast zone, until the arty shell lands. Or you will overkill some units that enter into the blast zone. Not a big deal, you probably wont even notice it happening.)
5. You say, "infinite loop", but that's not an infinite loop. An infinite loop is when the program gets stuck in a loop and causes a freeze.
In your example, it's just a normal repeating behaviour. In the current game, let's say you have some more pantsirs. Your 3 javelins will simply fire forever at that Puma, and all the missiles will get shot down. It's already a common situation for the AI to sit there stupidly wasting its missiles.
A. If we dont have overkill prevention, then you need to micro in order for units to spread their fire around multiple targets.
B. If we have overkill prevention, then you need to micro in order to focus fire to beat CIWS.
Situation A happens far more than B. And also, it's far quicker to focus fire (B) than it is to spread fire around in just the right proportions (A).
So it's completely wrong to say it causes "extra unneeded micro", since the amount of micro will be reduced overall.
TL;DR: Actually I don't even care about this issue, I called this option "Magical" with the expectation that people wouldn't like it, because it's "unrealistic" for units to know exactly how many missiles are needed to kill a target. I posed the other options in the OP, with the expectation that people wouldn't like it because it introduces a delay to attacking. In a way I was arguing against overkill prevention, by example.
But now it's become an intellectual exercise lol.
( Retargeting missiles is also ok. But it doesn't work for non-missile projectiles. And it also doesn't work if the targets are in completely different directions. )