Attack Management

Is it possible to attack a whole stack of units in the beta or will it still only attack one target from the stack. If this isnt in the beta yet then i'd like to recommend it as a feature which should be implimented as it will cut down micromanagement of fleets. Even better if they could implement a targeting priority mode which you can use to set certain fleets to prioritise certain targets that would be even better. Maybe this could be done by holding down alt and selecting a ship and then the fleet will attack every ship in the gravity well of that type before it reverts back to normal behaviour.

10,603 views 29 replies
Reply #1 Top

Very nice idea. There would be a place for that button in tactics menu.

Also, I would love to see a "spread fire" button. It would be a multi option button that would circle between the following states:
- standard - ships attack as they do now.
- focus - ships will try to focus on a single target. If a player orders a cap ship in the fleet to attack an enemy cap, all ships with 'focus' set will shoot that player's choice.
- 50:50 - ships will try to divide their barrage roughly in half and select two different targets (if their targeting priority algorythm would suggest they should kill ship type X now, half of them will target one X-type ship, and the other will try to shoot another X-type around). One would select this option if they had 30 Heavy Cruisers and fighting zounds of light frigates. 15 cruisers will one-shot a light frigate just as 30 would do, so the killing pace would be double. Also, if a player ordered one cruiser to attack a specific enemy ship, half of the rest of the cruisers would target it too (like Focus mode above, but only half of them listening)
- 3 targets - as above, but fire spread over 3 targets. Good when you have 40 bomber squadrons against light frigates...
- 5 targets - you get the idea. One would select this for their 120 LRM frigates when preparing to deal with 40 light frigates.

 

ok ok, I'm dreaming. But hey, don't be mad. I just had an idea I wanted to share >.>

Reply #2 Top

Actually at the moment in the current 1.05 patch units will focus fire on a single target without you needing to tell them. The only instance in which they wont do this is if you have two completly different types of unit for instance anti light scouts and anti medium long range frigates. In that instance if there is a medium armoured enemy and a lighltly armoured enemy then the respective fleets will split there fire between two different units automatically. Its a pretty good system although it does run into problems when for instance you have a massive fleet of fighters and they keep chasing down every last bomber on 25% squadron health when they should be going for the massive fleet of long range frigates about to destroy their carriers.

Reply #3 Top

I must admit, I find the idea of setting an autostance as to how much your ships concentrate fire quite clever. after all, more concentrated fire kills individual ships faster, so that if you want a specific group of ships taken out fast (for example, hoshikos or guardings). too much on the other hand gets you a lot of firepower wasted into shield mitigation, so if you fight a straight friagte fleet vs frigate fleet battle, you might want to spread if out a little, so to 4 - 5 targets at a time for some 60 enemy ships.

it could also be done totally automatic in that the ai determines when concentration is useful and when its just a waste, but I'd say that is still a kind of decision that the player can make and that is interesting to make.

and I would go for a conservative 3 stances model:

full focus: fire is concentrated on 1 target (of course only those ships that are any good fighting it)

medium: a handful of targets are attacked, limited focus to keep mitigation in check

no focus: fire is spread evenly across targets (not sure why I would want that though, maybe vs squads, bc they have weak survivability)

Reply #4 Top

Well even when squads are firing at a few targets mitigation will still be at max as it rises so quickly so it is always better to focus fire on one target than focus fire on a few targets disregarding units which excel at fighting other certain unit types. I think the only way you could keep mitigation low is have every unit in the fleet split there fire out evenly.

Reply #5 Top

The idea behind my suggestion is not the shield mitigation, but because the damage is reflected as it is - averaged every 2 seconds instead of dealt immediately at the moment of impact (like in Homeworld series for instance).
Ships live longer than they should only because the game doesn't tell them fast enough that they've been dead for the past 1,5 seconds. When you attack 50 targets one by one, this makes the fight roughly one minute longer than it should!!

Reply #6 Top

Quoting Ambro_2, reply 4
Well even when squads are firing at a few targets mitigation will still be at max as it rises so quickly so it is always better to focus fire on one target than focus fire on a few targets disregarding units which excel at fighting other certain unit types. I think the only way you could keep mitigation low is have every unit in the fleet split there fire out evenly.
End of Ambro_2's quote

I meant fire on the squads not by the squads if that makes any sense to you.

that said, you may have a point with mitigation rising even in the event of relatively mild focus fire. it's probably something that one should play around a bit, maybe the mitigation system could get a tweak.

@ nerull: ok, I was not really considering that effect. and tbh it's a technical aspect for me, I would view that more as an exploit of the game's apparently slow processing of dmg. but in a competitve setting that could well have an impact, so it's good you bring it up.

Reply #7 Top

Has anyone heard any news on whether the attacking stack function is going to be in the beta? Or even better a more avanced method of target prioritisation?

Reply #8 Top

Stardock has plenty of more important things to do than zooming through craploads of mostly idiotic ideas and suggestions that pop up on this forum. Few are really worth implementing, but there are zillions of other things they are coding right now.

Mr. Fraser may be glancing here now and then, checking out bugs that we report. However, it's not like they have nothing to do and can afford spending time on reading every single post around here. Moreover, it's not like they have days to spend on inventing new stuff for the game - I believe they always have pretty much to do and it is unknown to us how many good ideas they actually DROPPED because they had no time to code it.

So, as much as I'd like to see a good mitigation of how the damage processing slows combat down (like my spread fire button idea), I am nowhere near convinced it ever makes it to the game.

Reply #9 Top

HAH, yes that is true. Although I get the impression that stardock do listen to the community so I think it is worth giving feedback here as stardock may listen. Also i'm not an expert programmer or anything but I dont imagine it would be that difficult to set the attack function to attack the whole stack of units in the empire window instead of just one as it does at the moment.

Reply #10 Top

I throw my vote in for better attack options. As is I use the control group for Large fleet operations. The fleet group icon I use more as a squad icon to improve manuverablity. Which is a problem when things get large. They tend to overlap and its hard to pick the group I'm wanting. So it makes me zoom way in to get it. Bah. Also I end up with like 40 or 50 flt icons in my empire tree, but i think you can disable that.

Reply #11 Top

Queuing stacks of units has been long requested by our most loyal players and it was actually implemented way back in one of the earlier betas. The problem is that this makes it VERY easy to eat up a ridiculous amount of memory. I'm still trying to figure out an efficient way to do this - probably a compromise where you can only queue up to N many objects when you attack a stack. How many would be sufficient? Any other ideas?

Reply #12 Top

When does it start eating up too much memory? 

 

I'd say 10 would be a minimal to keep it useful, a max I'm guessing 30. When LRM spams happen they are in the 30's - 40's. If I could only queue 20 of them I'd be satisfied. The biggest issue isn't re-issuing commands for me, it's the frequency. I typically change throughout a battle, ie. kill 5 repair ships, then start widdling down Heavy cruisers.  There are time where I send fighters after a huge spam of LRM's, Siege Ships and it becomes very difficult to queue attack each one of them.

 

It's especially hard with faster moving ships like fighters, bombers, scouts.

Reply #13 Top

Quoting Blair, reply 11
Queuing stacks of units has been long requested by our most loyal players and it was actually implemented way back in one of the earlier betas. The problem is that this makes it VERY easy to eat up a ridiculous amount of memory. I'm still trying to figure out an efficient way to do this - probably a compromise where you can only queue up to N many objects when you attack a stack. How many would be sufficient? Any other ideas?
End of Blair's quote

Blair, instead of queuing up an entire stack of units, thus limiting you to a fixed number of targets (due to memory limitations) can you write it in this way?

Scenario A: One ship attack a stack of units:

The ship automatically chooses the nearest (or weakest) unit in the stack as its target, after that, repeat targeting loop until all targets are destroyed..

Scenario B: A group/fleet/stack/etc of units attack another stack/group/fleet/etc of units:

1. LOOP: Pair each unit with a target as per rule from Scenario A, unless the target has already been targetted by one of the previous ships

2. If there are more attackers than targets, repeat loop except that now each target may have more than one attacker, until no of attackers are exhausted..

3. If there are more targets than attackers, oh well :)

In this manner, you should be able to implement it using some simple counters + loop mechanisms, and yet allow the computer to "guess" a little how the player might want his/her fleet/group/stack/etc to attack as opposed to straight forward focus-fire. Maybe if they wish to focus fire, they should select as target a single ship (and queue attack commands manually) instead of a stack/group of ships.. I understand that sometimes, it is extremely difficult to translate what users ask for into code - good, useful, easy, working code.. This might also have a side effect of making focus-fire micro-management a "little" bit more "troublesome" thus appeasing those anti-FF guys :)

But personally (slight sidetrack), I think the most useful thing is "engage if within range even if currently under/carrying out orders to move to destination". Alternatively known as "attack an area" instead of a target. In this way, you can tell your ship(s) to egage the enemy as near as possible to location X (the specified area). If anyone (else) can remember all the way back to "Sun Tzu's Ancient Art of War" (what >15 years ago?), you could already do this I think. So for a strategy game such as SOASE which already tries to take into account things like ship speed and turning radius etc, I think this is a rather glaring ommision in tactics and strategy (both 2D and 3D).. But that's just IMHO, or have I been missing something all this while? hmm? :P

 

Reply #14 Top

But personally (slight sidetrack), I think the most useful thing is "engage if within range even if currently under/carrying out orders to move to destination". Alternatively known as "attack an area" instead of a target.
End of quote

Sorry, I just wanted to add on to my own point about this. Imagine you are under attack and are churning out new frigates while the battle is on.. The freshly minted frigate will come out - "Ready for orders!" - and then proceed to move to wherever the rally point is. After it reaches the rally point, then it will engage the enemy within whatever range is set. If I have my rally point smack in the middle of the battle area, then the poor frigate will fly all the way through the middle of the battle, taking hits left and right and only upon reaching the rally point, then "oh look, there are some enemies in range, let's target them.." This makes no sense whatsoever.

As such, I feel that the default should be to attack any/all enemies within range even if under orders to move to destination X, and instead use a special move command to ignore enemy while moving (or an explicit set range to 0)..

Reply #15 Top

Thanks very much for the answer Blair. I had a feeling that it may use a lot of memory for the attacking stacks function so thanks for clarifying that. In response to your question I think being able to que 15 or 20 ships at a time would be the least amount which would still be useful. This is so you could que at least two stacks at a time so when one stack has been destroyed the attacker will go onto the next stack automatically which gives the user a chance to que up another stack.

If that would still use up too much memory then perhaps the ability to set a unit or fleets attack priority which I mentioned above would be better. Just to reiterate this could be done by holding down a key such as alt when selecting a target which would then switch that units target priority to just attacking the type of unit selected until all those units had been destroyed in the gravity well. That way I guess it wont be using up so much memory as it is simply changing the units target priority variable.

So thats the best I can think of, not sure if it will work within the existing code but I hope my ideas may be of some use anyway. Also just a note to other posters, could we keep this thread dedicated to discussing the issue of reducing the micromanagement of target selection, otherwise it may become an assortment of unrelated ideas which would be difficult for anyone to read through. I think you have enough ideas there Patkhoo to start a few threads of your own. ;)

Reply #16 Top

Quoting Blair, reply 11
Queuing stacks of units has been long requested by our most loyal players and it was actually implemented way back in one of the earlier betas. The problem is that this makes it VERY easy to eat up a ridiculous amount of memory. I'm still trying to figure out an efficient way to do this - probably a compromise where you can only queue up to N many objects when you attack a stack. How many would be sufficient? Any other ideas?
End of Blair's quote

As was mentioned, 10 since a stack is 10 :)

Here's what isn't very clear to me - how does automatic queueing different from manual? If you right click a stack to queue the 10 units, wouldn't it use the same memory for the queue as if you manually right clicked on 10 targets? I suppose it saves memory because people don't generally bother queueing 50+ ships to attack since you have to single click, and allowing stack queues could easily get to ridiculous numbers (10 easy stack clicks on the empire tree for 100 ships).

As a compromise, maybe just allow 2-3 stacks to be queued at a time, and flash a message that the max queue has been reached or something.

Reply #17 Top

well, good to know it was not ignored, but put out and kept out for a reason. I shall leave the technicals to others.

Reply #18 Top

Quoting Annatar11, reply 16



Quoting Blair Fraser,
reply 11
Queuing stacks of units has been long requested by our most loyal players and it was actually implemented way back in one of the earlier betas. The problem is that this makes it VERY easy to eat up a ridiculous amount of memory. I'm still trying to figure out an efficient way to do this - probably a compromise where you can only queue up to N many objects when you attack a stack. How many would be sufficient? Any other ideas?


As was mentioned, 10 since a stack is 10

Here's what isn't very clear to me - how does automatic queueing different from manual? If you right click a stack to queue the 10 units, wouldn't it use the same memory for the queue as if you manually right clicked on 10 targets? I suppose it saves memory because people don't generally bother queueing 50+ ships to attack since you have to single click, and allowing stack queues could easily get to ridiculous numbers (10 easy stack clicks on the empire tree for 100 ships).

As a compromise, maybe just allow 2-3 stacks to be queued at a time, and flash a message that the max queue has been reached or something.
End of Annatar11's quote

Besides being able to queue up multiple stacks of 10, you can easily change the default stack size to suit your tastes because its not part of the deterministic code. Either way, we can't count on the limit being 10.

How does automatic queueing different from manual?. It doesn't but what does differ is how easy it is to get every ship queueing up a ton of targets. In normal play we don't expect players to do that manually so the memory usuage isn't much of a worry.

Reply #19 Top

Ahha, good point. I forgot the stack size was not hardcoded. :)

And yeah, that's what I was getting at as well, that with auto-queueing it's much easier to get to absurd number of ships queued because a single click can do many units.

But with that, what about just setting it to 30-40-50 ships maxed? Most people I think would leave the stack size at the default 10, so it'd be 3-4-5 stacks, whatever limit you think is best.

With just a straight N-ships limit to auto-queue it'd be independent from stack size. People can just right click the stacks and when the queue fills up it fills up even if not all of the last stack got queued. You could probably even stick it in the settings file along with the stack size, so crazy people can adjust the limit if they are so inclined?

Reply #20 Top

I think you have enough ideas there Patkhoo to start a few threads of your own.
End of quote

Heh, why worry about LRM spam when there are these idiot thread hijackers on the forums? :P My apologies.. :)

 

But back to topic, my suggestion is instead of looking at queuing "stacks", the code could be implemented to go lower down into queueing and matching ships to targets from one "stack/group/fleet" to another. In this way, the programmers don't have to change too much of existing code mechanisms for queuing/targeting but yet still make it more reasonable to handle many stacks..

I can appreciate the point about memory usage increasing when suddenly ppl queue 50 ships in just five clicks.I don't know how it is in code currently, so I guess Blair will have to figure it out. But if the current code (when you target a whole stack) "expands" the stack into individual ships then assigns the individual ships as queued targets, then this is what I'd call a "design" issue in code.

EG: Stack of 10 LRMs -> target/queue -> stack of 10 frigates

LRM 1 -> Frig 1, Frig 2, Frig 3, ... Frig 10

LRM 2 -> Frig 1, Frig 2, Frig 3, ... Frig 10

LRM 3 -> Frig 1, Frig 2, Frig 3, ... Frig 10

...

LRM 10 -> Frig 1, Frig 2, Frig 3, ... Frig 10

Clearly, this design will have scalability issues. That's why I suggested that the stacks be broken down ships matched individually instead of focus-fired.

LRM 1 -> Frig 1

LRM 2 -> Frig 2

LRM 3 -> Frig 3

...

LRM 10 -> Frig 10

The code change for this should not be too drastic I think. The devs need to balance the idea with how much change/complexity is needed in code. But if you can spend more dev time on a more complex solution, you can try this:

LRM 1 -> Frig Stack

LRM 2 -> Frig Stack

LRM 3 -> Frig Stack

...

LRM 10 -> Frig Stack

And then in the code where the ship LRM x chooses the target, it looks at the queue and sees "Frig Stack", at that point it goes into "Frig Stack", see what ships are in there (dynamic) and picks a target (nearest/weakest/random)..

I figure in this way, the design is more scalable especially for the "worst case" of multiple stack target/queue multiple stack.

Please accept my apologies if my understanding of the problem is wrong. And also, I note that this does not really help the situation where you use one ship and target many stacks.. Probably there must be a fundamental limit of how deep a queue is for one ship. If that is the question of this thread, then I think the devs should make that choice in their best judgment and users should just accept it. This is because it is related to memory and software stability and I think that is more important than gameplay. No point having excellent game play if the machine crawls or software crashes. (sorry, I'm a programmer, so I tend to defer to other programmers :)

 

Reply #21 Top

I have a suggestion for a way to get around this, at least for some uses.  I'd like to be able to tell my units to continuously attack units of a given type until there are no more remaining in the gravity well.  If the unit has this order and no current target, it should target a unit of that type; if there aren't any available, it should move to the next order in its queue.  This could be complemented by a toggle on the Tactics page to control whether the selected ships should focus-fire.  It might also be interesting to support this behavior for other abilities (e.g., tell your repair cruisers to focus on repairing carriers).  I don't know what the best UI is -- maybe a separate command, or maybe just holding down a modifier when you click on the target.

 

That should only take as much space as a single attack order, so won't raise any memory problems.

Reply #22 Top

Quoting lambdaman, reply 21
I have a suggestion for a way to get around this, at least for some uses.  I'd like to be able to tell my units to continuously attack units of a given type until there are no more remaining in the gravity well.  If the unit has this order and no current target, it should target a unit of that type; if there aren't any available, it should move to the next order in its queue.  This could be complemented by a toggle on the Tactics page to control whether the selected ships should focus-fire.  It might also be interesting to support this behavior for other abilities (e.g., tell your repair cruisers to focus on repairing carriers).  I don't know what the best UI is -- maybe a separate command, or maybe just holding down a modifier when you click on the target.

 

That should only take as much space as a single attack order, so won't raise any memory problems.
End of lambdaman's quote

 

 

Yup, I really like this idea!

Reply #23 Top

Quoting Tkins, reply 22



Quoting lambdaman,
reply 21
I have a suggestion for a way to get around this, at least for some uses.  I'd like to be able to tell my units to continuously attack units of a given type until there are no more remaining in the gravity well.  If the unit has this order and no current target, it should target a unit of that type; if there aren't any available, it should move to the next order in its queue.  This could be complemented by a toggle on the Tactics page to control whether the selected ships should focus-fire.  It might also be interesting to support this behavior for other abilities (e.g., tell your repair cruisers to focus on repairing carriers).  I don't know what the best UI is -- maybe a separate command, or maybe just holding down a modifier when you click on the target.

 

That should only take as much space as a single attack order, so won't raise any memory problems.


 

 

Yup, I really like this idea!
End of Tkins's quote

ummm.... isnt that the same thing which I suggested in the original post.

Quoting Ambro_2, reply 15
If that would still use up too much memory then perhaps the ability to set a unit or fleets attack priority which I mentioned above would be better. Just to reiterate this could be done by holding down a key such as alt when selecting a target which would then switch that units target priority to just attacking the type of unit selected until all those units had been destroyed in the gravity well. That way I guess it wont be using up so much memory as it is simply changing the units target priority variable.
End of Ambro_2's quote

Even better if they could implement a targeting priority mode which you can use to set certain fleets to prioritise certain targets that would be even better. Maybe this could be done by holding down alt and selecting a ship and then the fleet will attack every ship in the gravity well of that type before it reverts back to normal behaviour.
End of quote

Reply #24 Top

Quoting patkhoo, reply 20

I think you have enough ideas there Patkhoo to start a few threads of your own.

Heh, why worry about LRM spam when there are these idiot thread hijackers on the forums? My apologies.. 
 
End of patkhoo's quote

Hey thats no problem, just trying to streamline the thread so we may come up with somthing constructive for the developers. :)   I think there is one problem with the idea that you suggested though and that is your method involves splitting the fleets fire instead of focusing on a single target. Even with taking sheild mitigation into account this is still an unefficient method for destroying targets and so as a result players will still be required to micromange focus fire in order to gain the maximum efficiency.

Reply #25 Top

I don't really want to put words in Blair's mouth, but historically, the chances of getting a new command are pretty much nil unless it'd be part of one of the expansions. Memory issues aside, it would be a lot easier and cleaner for them to make right clicking stacks queue ships than adding a new UI button + supporting code. Especially considering how complicated the combat AI target selection is, trying to stick "Always attack <random target of player's choice>" is not elementary I imagine.