fa icon indicating copy to clipboard operation
fa copied to clipboard

Sync strike

Open clyfordv opened this issue 1 year ago • 24 comments

Select a group of TML, hold ctrl, and click to give a launch order. Only launchers with no other orders queued will be included. TMLs between different factions don't work great when they're grouped together.

clyfordv avatar Aug 31 '23 21:08 clyfordv

My first impression is that it all seems fine. Thank you for writing the pull request. We'll take this with the 4th developers iteration.

I'll give it a test once the release of the third developers iteration is done.

Garanas avatar Sep 01 '23 09:09 Garanas

@clyfordv is this ready for testing?

Garanas avatar Sep 25 '23 12:09 Garanas

  1. There are some additional features I've planned on adding, but the base architecture for doing so is there and not expected to change.
  2. The flight time values haven't been updated since the tactical missile componentization, but don't differ significantly.

To test right now, select multiple launchers, hold ctrl, and give a launch command.

clyfordv avatar Sep 25 '23 17:09 clyfordv

Let's first try to merge the current feature set before we extend on it

Garanas avatar Sep 25 '23 17:09 Garanas

Would you mind if I make some edits / add annotations as I see fit?

Garanas avatar Sep 25 '23 17:09 Garanas

Would you mind introducing an MIT license to the top of the code? As an example:

  • https://github.com/FAForever/fa/blob/deploy/fafdevelop/lua/sim/NavGenerator.lua#L1-L21

But then with a name of your choosing, of course

Garanas avatar Sep 25 '23 18:09 Garanas

@clyfordv how would this work with the new tactical missile trajectory?

Garanas avatar Oct 11 '23 18:10 Garanas

Load/launch times should stay the same. Initial testing suggests trajectories have a very similar flight time, so the as is implementation should be fine. However, now that the TML trajectories are deterministic, it would be best to just to rework it so the values are calculated automatically (once) instead of a using a lookup table.

Edit: Timing is good, just tested it.

clyfordv avatar Oct 11 '23 19:10 clyfordv

Interesting addition that I think is a fine addition after refinement.

The TMLs get stuck if a sync strike is ordered out of range. They won't be able to fire at all.

Rarely the TMLs wouldn't fire, even with loaded missiles.

When targeting close, the sync strike isn't well synced. Firing without sync fire has the missiles impact within smaller time duration.

Ordering the launch of a sync strike when 0 missiles are loaded also makes TMLs stuck.

Pokute avatar Oct 20 '23 15:10 Pokute

@clyfordv I'd love to include this; what is the status quo at the moment?

Garanas avatar Oct 23 '23 18:10 Garanas

Still need to incorporate some of Pokute's feedback and put the finishing touches on the UI (which is pretty slick if I may say so).

Primary roadblock is that some of the recent tactical missile changes have jacked up the missile trajectories (see comment here: https://github.com/FAForever/fa/pull/5525) and I can't do the flight time data until that's settled.

clyfordv avatar Oct 23 '23 19:10 clyfordv

the missile changes are settled in if you ask me. At best we may increase their fire rate and reduce the damage at this point.

Garanas avatar Oct 24 '23 05:10 Garanas

The short range trajectories feel unfinished, where (at least for UEF, haven't looked at the others too much) the missiles tend to overshoot (the old short range trajectories were not great, pretty jerky, but we should strive to improve on them).

I feel like there's also some balance implications for, say, the flapjack effectively having its minimum range (against mobile targets) increased, along with the effectiveness of TML against close-in experimentals.

I'm happy to take a crack at some short range corrections if you'd like.

clyfordv avatar Oct 24 '23 15:10 clyfordv

The minimum range increase was discussed with and accepted by the balance team. You're free to adjust some of the trajectories to make them work better up close 😃 . Ideally the arc on long range targets remains roughly the same

Garanas avatar Oct 24 '23 17:10 Garanas

Will do. See new UI/UX for sync strikes:

  1. Launch command + hold CTRL to initialize sync strike
  2. Launch command + hold CTRL + click existing sync strike to add launchers
  3. Click sync strike order icon to release strike

clyfordv avatar Oct 24 '23 18:10 clyfordv

Is this the final behavior*? Once we go to the release branch there's no going back

Garanas avatar Oct 24 '23 20:10 Garanas

Can't confidently say that, no. There's a lot of new UI and backend machinery that needs a shakedown before I can say yes.

clyfordv avatar Oct 24 '23 21:10 clyfordv

It certainly does look fancy 😃

https://github.com/FAForever/fa/assets/15778155/817065ec-aff7-47c4-8a62-8af3a4d87961

Garanas avatar Oct 25 '23 06:10 Garanas

It certainly does look fancy 😃

sync-strike.mp4

TML stips just got a UI helping hand

MrRowey avatar Oct 25 '23 17:10 MrRowey

what was the hold up on this one ?

MrRowey avatar Apr 09 '24 13:04 MrRowey

  1. Feature ready but needs testing/shakedown before being unleashed
  2. Firing data tables are out of date

clyfordv avatar Apr 09 '24 22:04 clyfordv

I'm also not entirely sure whether we should introduce this. The feature is nice, but it's not exactly maintainer friendly. If we edit the trajectories (which happened a lot the past year) then we also need to re-evaluate the timing tables. Which is easily forgotten 😃

Garanas avatar Apr 10 '24 07:04 Garanas

How difficult would it be to generate the timing tables at runtime?

Hdt80bro avatar Apr 11 '24 07:04 Hdt80bro

You'd need to:

  • (1) Launch a missile on an interval over the range of the missile launcher.
  • (2) Launch multiple missiles per step of the interval.
  • (3) Compute the average number of ticks that it takes to reach a target at a given step of the interval.

And then update the values in the UI, as all of this logic is in the UI at the moment 😃 !

Garanas avatar Apr 11 '24 11:04 Garanas