Opened 3 years ago

Closed 6 weeks 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 3 years ago.
patch.patch (6.2 KB ) - added by wraitii 10 months ago.
test setup using a demo map and trigger & a little modding
commands.txt (30.9 KB ) - added by Feldfeld 6 weeks ago.
commands.2.txt (21.1 KB ) - added by Feldfeld 6 weeks ago.

Download all attachments as: .zip

Change History (22)

by elexis, 3 years ago

Attachment: screenshot2153.jpg added

comment:1 by elexis, 3 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, 3 years ago

Cc: Dunedan added

comment:3 by elexis, 3 years ago

Milestone: Alpha 23Backlog

meh

comment:4 by Imarok, 2 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, 2 years ago

Component: UI & SimulationSimulation

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

comment:6 by elexis, 23 months ago

Milestone: BacklogAlpha 24
Priority: Should HaveMust Have

by wraitii, 10 months ago

Attachment: patch.patch added

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

comment:7 by wraitii, 10 months 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, 9 months ago

Patch: Phab:D2767

in reply to:  7 comment:9 by Bohaska, 5 months 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 Angen, 3 months ago

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

comment:11 by wraitii, 3 months 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 months 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 months 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 months 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, 2 months 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, 7 weeks ago

Think we need D3225 and we can largely close this

comment:17 by stanislas69, 7 weeks 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, 6 weeks ago

Attachment: commands.txt added

by Feldfeld, 6 weeks ago

Attachment: commands.2.txt added

comment:18 by wraitii, 6 weeks 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

Note: See TracTickets for help on using tickets.