FAForever / fa

Lua code for FAF
229 stars 234 forks source link

Improve the capture UI #6193

Open Basilisk3 opened 6 months ago

Basilisk3 commented 6 months ago

Right now I see two problems with our current system:

lL1l1 commented 6 months ago

Range rings are part of the engine, so it's rather difficult to create new ones. Build range reuses the air staging range ring, so capture I guess would have to go through a similar path but with an engine patch to add a new way to create range rings in the AI section of the blueprint. https://github.com/FAForever/FA-Binary-Patches/issues/64

Also the capture ranges are obtuse, they seem to be:

Note for testing: The build range ring displayed is 2 more than the engineer's actual build range. So a T1 engineer has 5 range but shows 7, which is why its stationary capture range is the same as its displayed range ring. An SACU has 10 range and shows 12 so its range ring will match the interrupt pathfinding capture range.

lL1l1 commented 6 months ago

We do have a UI Lua way to render a circle that looks rather similar (possible thanks to an engine patch and easy thanks to the UIRenderableCircle implementation), but it doesn't track terrain, can't be occluded, and doesn't combine circles. To me it feels incomplete and more fit for a UI mod, but if its useful enough (?) and the best we can get then it should be a game setting. Console command of an example (creates a red circle in the top left of the map):

UI_Lua 
local Circle = import('/lua/ui/game/renderable/circle.lua').UIRenderableCircle
local worldview = import('/lua/ui/game/worldview.lua').GetWorldViews()["WorldCamera"]
local newCircle = Circle(worldview, 'exampleRedCircle', 10, 0, 10, 30, 'ffff2c2c', 0.3)
ForkThread(function()
    WaitTicks(30)
    newCircle:Destroy()
end)
Pokute commented 6 months ago
  • Not really a UI problem, but capturing low buildtime units with a Tech 3 ACU is near instant. For instance, a Tech 1 PD takes bit over a second to capture, which is very hard to counter due to the 500ms delay the game has (self-destucting the unit is the counter to capturing).

I don't think capture speed is a big issue as it's about half the speed of reclaiming. t1pd reclaim and capture is fast for t3 comm, but at the stage where you can have a t3 comm, having it capturing anything is already very risky.

Additionally considering how difficult and risky capturing is, I would like to disable self-destructing once capturing is in progress so it wouldn't have a 100% counter against by someone who is attentive.

Basilisk3 commented 6 months ago

I don't think capture speed is a big issue as it's about half the speed of reclaiming. t1pd reclaim and capture is fast for t3 comm, but at the stage where you can have a t3 comm, having it capturing anything is already very risky.

Not really, capturing units with Tech 3 ACUs is very common (com drops) and not really all that risky if you do it correctly.

Additionally considering how difficult and risky capturing is, I would like to disable self-destructing once capturing is in progress so it wouldn't have a 100% counter against by someone who is attentive.

I am not a fan of this, we should not remove counterplay options and paying attention should be rewarded.

Pokute commented 6 months ago

I don't think capture speed is a big issue as it's about half the speed of reclaiming. t1pd reclaim and capture is fast for t3 comm, but at the stage where you can have a t3 comm, having it capturing anything is already very risky.

Not really, capturing units with Tech 3 ACUs is very common (com drops) and not really all that risky if you do it correctly.

I've played some and watched quite a bit of replays but I don't recall captures being a significant part of any game. What do you mean very common? One in five games?

ACUs are not the only things that can capture and T2, T3 eng suite ACUs and SCUs are the only ones where capture mechanic can significantly alter a battle with capture. Considering how much one invests in those, I think having quick capture ability is effective but the price to have that ability is quite steep anyway.

Additionally considering how difficult and risky capturing is, I would like to disable self-destructing once capturing is in progress so it wouldn't have a 100% counter against by someone who is attentive.

I am not a fan of this, we should not remove counterplay options and paying attention should be rewarded.

I think the valid counterplay option to destroy the unit before capture starts is enough. It's kinda downer if someone has gotten engineers near enemy factory to capture it and then at 80% capture it's noticed and self-destructed.

Basilisk3 commented 6 months ago

I've played some and watched quite a bit of replays but I don't recall captures being a significant part of any game. What do you mean very common? One in five games?

I said that it is very common with com drops. If there is a com drop, there is a high chance of this occurring. How often com drops occur depends on the map and the people you play with. By the way, capturing Tech 1 mexes is very common in 1 vs. 1 games.

ACUs are not the only things that can capture and T2, T3 eng suite ACUs and SCUs are the only ones where capture mechanic can significantly alter a battle with capture. Considering how much one invests in those, I think having quick capture ability is effective but the price to have that ability is quite steep anyway.

Capturing is not widely used in battles, it is a rare occurence at best. This is because the ability has a limited range and your ACU has to stand still to make use of it.

The most common use of capture is capturing Tech 1 mexes with engineers and capturing structures with Tech 3 ACUs. The rest is not common.

I think the valid counterplay option to destroy the unit before capture starts is enough.

I have never seen this in a game because it would be an extremely bad decision to ctrl+k your units before your opponent has had the chance to capture/reclaim them. You want to make use of your units before they are destroyed/captured and here you basically do the damage for your opponent. In addition to that, you do not know if your opponent even wants to capture them. Maybe he planned to reclaim them instead, to minimize the distance his ACU has to walk? In that case, this would be an even bigger misplay. This is not an option.

It's kinda downer if someone has gotten engineers near enemy factory to capture it and then at 80% capture it's noticed and self-destructed.

There are risks and rewards to capturing units. Capturing a unit is inherently more useful than reclaiming it, so balance wise, it makes sense for it to be more risky.