Opened 6 years ago

Closed 3 years ago

Last modified 3 years ago

#5106 closed defect (fixed)

A single unit "dancing" to dodge arrows of dozens of attackers

Reported by: elexis Owned by:
Priority: Release Blocker Milestone: Alpha 24
Component: Simulation Keywords:
Cc: Dunedan Patch: Phab:D2767, Phab:D2837, Phab:D2913, Phab:D3021, Phab:D3200, Phab:D3225, Phab:D3182, Phab:D3179, Phab:D3225

Description

As well demonstrated by Hannibal Barca on the Jebel Barkal mountain, one can set a unit to patrol between two very close points to dodge 100% of dozens of attackers arrows.

The attackers shoot at the point where the enemy will be expected to be. But the enemy unit does a turnaround before he reaches that point, so none of the arrows hit it.

With patroling it is very easy, one has only to do about three clicks. So we might add a minimum distance to avoid the problem.

But the issue also exists without patroling, by manual dancing (originally done by wesono). (I'm not sure how this can be addressed, since one should be able to move units by a short distance.)

It can be a very gamebreaking problem if there is a fight of 30 to 100 ranged units where one party misses all arrows and the other party strikes every time.

At least the patroling should be disabled for this release if possible.

Attachments (4)

screenshot2153.jpg (431.6 KB ) - added by elexis 6 years ago.
patch.patch (6.2 KB ) - added by wraitii 4 years ago.
test setup using a demo map and trigger & a little modding
commands.txt (30.9 KB ) - added by Feldfeld 3 years ago.
commands.2.txt (21.1 KB ) - added by Feldfeld 3 years ago.

Download all attachments as: .zip

Change History (24)

by elexis, 6 years ago

Attachment: screenshot2153.jpg added

comment:1 by elexis, 6 years ago

Hannibal was standing / dancing there the entire game. Notice the two distinct heaps of arrows:

https://trac.wildfiregames.com/raw-attachment/ticket/5106/screenshot2153.jpg

comment:2 by Dunedan, 6 years ago

Cc: Dunedan added

comment:3 by elexis, 6 years ago

Milestone: Alpha 23Backlog

meh

comment:4 by Imarok, 5 years ago

Das noted somewhere in the forums, one solution would be implementing a concept of acceleration, so that it units won't be able to reach their final speed instantly.

comment:5 by Imarok, 5 years ago

Component: UI & SimulationSimulation

Move tickets to Simulation as UI & Simulation got some sub components.

comment:6 by elexis, 5 years ago

Milestone: BacklogAlpha 24
Priority: Should HaveMust Have

by wraitii, 4 years ago

Attachment: patch.patch added

test setup using a demo map and trigger & a little modding

comment:7 by wraitii, 4 years ago

Priority: Must HaveRelease Blocker

See the patch above for an experimental setup. I basically tested 8 versions of the same scenario: 5 Athen Marine Archers firing on 1 Cavalry auto-patrolling. Archers were 40 meters away. Times reported are "time to kill":

Experiment 1 - regular

  • svn: forever
  • svn with no spread: forever
  • svn with 2x arrow speed: 40s
  • svn with 4x arrow speed: 15s (very few misses)

Experiment #2 - In these I don't predict the target position 40% of the time and fire straight at it.

  • svn: about 1m20-30s
  • svn with no spread: 45s
  • svn with 2x arrow speed: 30s
  • svn with 4x arrow speed: 15s (unchanged)

So it seems to me we simply need to make arrows at least 3 times as fast, and it could be useful to introduce a small random component to prediction (possibly predicting between "stop", "reverse", "regular") to avoid falling into bad patterns.

This seems easy to fix and it's a bad issue, so I'm bumping to Release Blocker.

comment:8 by elexis, 4 years ago

Patch: Phab:D2767

in reply to:  7 comment:9 by Bohaska, 4 years ago

Replying to wraitii:

See the patch above for an experimental setup. I basically tested 8 versions of the same scenario: 5 Athen Marine Archers firing on 1 Cavalry auto-patrolling. Archers were 40 meters away. Times reported are "time to kill":

Experiment 1 - regular

  • svn: forever
  • svn with no spread: forever
  • svn with 2x arrow speed: 40s
  • svn with 4x arrow speed: 15s (very few misses)

Experiment #2 - In these I don't predict the target position 40% of the time and fire straight at it.

  • svn: about 1m20-30s
  • svn with no spread: 45s
  • svn with 2x arrow speed: 30s
  • svn with 4x arrow speed: 15s (unchanged)

So it seems to me we simply need to make arrows at least 3 times as fast, and it could be useful to introduce a small random component to prediction (possibly predicting between "stop", "reverse", "regular") to avoid falling into bad patterns.

This seems easy to fix and it's a bad issue, so I'm bumping to Release Blocker.

Did you change the amount of damage dealt proportionately? (eg. 2x arrows but each arrow does 0.5x damage)

comment:10 by Silier, 3 years ago

Patch: Phab:D2767Phab:D2767, Phab:D2837, Phab:D2913, Phab:D3021

comment:11 by wraitii, 3 years ago

In 24360:

Make units wait a few seconds at waypoints during Patrol.

This makes 'dancing' impossible with patrol, for both single units and formations.
It further makes the formation and regular patrol code more similar.

The diff harcodes an integer wait time as it relies on timer calls instead of range queries, as that was much simpler to implement.
Animations for the waypoint-waiting is also unimplemented.

Reviewed By: Freagarach

Refs #5106

Differential Revision: https://code.wildfiregames.com/D2913

comment:12 by bb, 3 years ago

In 24415:

Let units take time actual time for turning while moving. This limits the possibility of "dancing" (making short moves to avoid being hit by arrows) beyond only patrolling.

Reviewed By: wraitii
Gameplay Tests By: FeldFeld
Comments By: Freagarach, Angen

Differential Revision: D2837
refs: #5106

comment:13 by bb, 3 years ago

Patch: Phab:D2767, Phab:D2837, Phab:D2913, Phab:D3021Phab:D2767, Phab:D2837, Phab:D2913, Phab:D3021,Phab:D3200, Phab:D3225,Phab:D3182,Phab:D3179

comment:14 by bb, 3 years ago

Patch: Phab:D2767, Phab:D2837, Phab:D2913, Phab:D3021,Phab:D3200, Phab:D3225,Phab:D3182,Phab:D3179Phab:D2767, Phab:D2837, Phab:D2913, Phab:D3021, Phab:D3200, Phab:D3225, Phab:D3182, Phab:D3179

comment:15 by wraitii, 3 years ago

In 24458:

Increase projectile speed slightly across the board.

This bumps arrows from 75 to 100, slingers to 90 and javelins from 62.5 to 70. It's both slightly more realistic and helps with dancing, since the problem is the ratio of unit speed vs projectile speed.

Further increases would reduce dancing, but also make it harder to see projectiles which isn't desirable.

Refs #5106

Differential Revision: https://code.wildfiregames.com/D3179

comment:16 by wraitii, 3 years ago

Think we need D3225 and we can largely close this

comment:17 by Stan, 3 years ago

Patch: Phab:D2767, Phab:D2837, Phab:D2913, Phab:D3021, Phab:D3200, Phab:D3225, Phab:D3182, Phab:D3179Phab:D2767, Phab:D2837, Phab:D2913, Phab:D3021, Phab:D3200, Phab:D3225, Phab:D3182, Phab:D3179, Phab:D3225

by Feldfeld, 3 years ago

Attachment: commands.txt added

by Feldfeld, 3 years ago

Attachment: commands.2.txt added

comment:18 by wraitii, 3 years ago

Resolution: fixed
Status: newclosed

Thanks FeldFeld for those replays, I think if anything they demonstrate that the problem is largely corrected. Your cav still takes a fair amount of damage, and any slip-up will lead to a lot of damage. And yeah since heroes can't really be used so easily as tanks because of permadeath, it's probably a further nerf to dancing.


Therefore, closing this - I believe the combination of r24360 / r24415 / r24701 makes dancing difficult enough, and less rewarding, that we should not see so much of it for A24. The ticket may be reopened if this assessment proves wrong.


This seems easy to fix

Man sometimes I'm just so wrong :P

comment:19 by wraitii, 3 years ago

In 25626:

Speed up citizen rotation & differentiate ranged infantry unit move speed

Refs rP24415, rP24533, refs #5106

The introduction of "turn time" in A24 has been pointed out as a gameplay change that made rushing less viable, and made the game more turtley overall. Combined with other changes in the same direction, this was seen by several top MP players as a step back.
Increasing turn times to 14 for infantry makes them somewhat irrelevant, and a value of 10 for cavalry makes them noticeably more reactive while keeping a little speed debuff.

Champions have a lower value, and heroes keep their lower values still to prevent a reintroduction of 'dancing'.

Patch by: Valihrant

Reviewed By: wraitii

Differential Revision: https://code.wildfiregames.com/D3971

comment:20 by bb, 3 years ago

In 25953:

Add accelerations in unit movement.
This helps preventing arrow dodging.

Differential Revision: D3200
Reviewed By: Freagarach
Comments By: wraitii, vladislav, Palaxin, Stan
refs: #5106

Note: See TracTickets for help on using tickets.