This bug has been reported in many ways on these forums, but I figured it could use one massive post describing it in detail. Of course, this means this post is absurdly long, but I figured I'd err on being long-winded rather than being ambiguous.
I also intentionally made it read like a "form". I figured this would help people, especially the developers, navigate the post and understand the problem.
Summary
Casting a skill at a moving target that is behind the player's Demigod will cause the player's Demigod to become unresponsive until explicitly moved. Commonly known as the "click-to-move" bug.
Demigods Affected
All.
Severity
Minor bug. (Annoying bug but it has workarounds and consistent behavior. It also does not cause crashes or long-term issues)
Tested On
These specs are provided for completeness. As far as I know, this bug is not specific to a platform, map, or Demigod. Further information is happily available on request.
- Version: DG MAIN 1.00.0114 on Windows XP
- Network: N/A. Single player game.
- Map: Prison
- Demigods Used: 1 x Sedna
Custom Settings
None. The bug can be reproduced in a standard game.
Items Required
None. The bug can be reproduced without any items.
Skills Required.
How To Reproduce
This bug can be easily and consistently reproduced using only Sedna's Heal and her own allied reinforcements. For clarity, however, I will describe the steps generically in terms of the "Demigod" and the "Target":
- The Demigod is stationary. She will use one single-target skill or item, referred to as the Skill.
- The Target will be constantly moving in a straight line behind the Demigod. The Target will move in a direction that is perpendicular to the Demigod's facing direction.
To reproduce, follow these steps:
- The Demigod uses her Skill, targeting the Target. The Demigod will turn in order to face the target's location.
Expected Behavior
The Demigod's Skill should cast and subsequently fire on the Target.
Observed Behavior
The Demigod turns to face the Target, but does not use her skill. The Demigod will face the location that the target was at when the Skill was activated. The Demigod will not, however fire her Skill. She will be unresponsive. Specifically, she will be unable to cast single-target skills or items unless the target is out of range.
She will remain in this state until either:
- She is moved, implicitly or explicitly. An "explicit move" is one where the Demigod moves due to a click on the ground; an "implicit move" on the other hand is one where the Demigod is moving to get in range of a target.
- The Target re-enters the facing angle of the Demigod. We described this behavior as "breaking the plane". The "plane" is defined as a line extending outwards from the Demigod's facing angle. If the Target enters this plane from any distance, the Demigod will succesfully her skill on the Target. If the Target is out of range, the Demigod will implicitly move to use her Skill.
- Some other Demigod causes her to be stunned. Stunning would ordinarily cause a cast to be interrupted. As a result, the Demigod's "cast" is reset and her state is valid again.
Workarounds & Fixes
The most common fix is to preface every single-targeted skill or ability with a move order. This ensures that the Demigod is properly facing her target.
A third-party mod described on this post that corrects this issue has been released. It is not allowed on Impulse but will correct games played over third-party networks like Hamachi and Gameranger.
Impact & Use Cases
Using a single-target skill or item at a target that is moving behind you is a common use-case, and single-target abilities are ubitiquous in this game. Requiring a small move order prefacing every order to ensure proper facing is clearly a substandard workaround.
Comments
SVoyager's Videos[1]
Videos showing this bug are shown in this reply by SVoyager. In 4 out of 5 of these videos, the steps described above were taken, and cause this bug to occur. Specifically:
- bug1.mpg: Clear-cut case of the bug. At 0:07, Sedna attempts to cast a Heal on Torch Bearer. However, Torch Bearer is moving behind Sedna. As a result, Sedna falls victim to the bug. She tries in vain to heal Torch Bearer, but remains unresponsive until she heals a minion that is in front of her.
- bug2.mpg: Inconclusive. At 0:06, Sedna's Pounce appears to fail to cast on a dying Rook. There isn't enough information here to see if Sedna is truly broken; Sedna may have simply been adjusting her angle when Rook died. This video doesn't meet the requirements of the above bug, so my thought is that Sedna was not bugged. Again, there isn't enough information to prove one way or the other.[2]
- bug3.mpg: Inconclusive. At 0:05, Sedna's Heal appears to fail on QoT. The setup is correct, but Sedna never turns to face QoT's position at cast. Since that is an indication of the bug described above, it seems more like the player never actually clicked QoT.
- bug4.mpg: Another clear-cut case. At 0:07, Sedna's heal on Erebus fails to cast. She faces the old position of Erebus, but Erebus has since moved out of the way. As a result, Sedna is unresponsive.
- bug5.mpg: The final clear-cut case. At 0:15, Sedna's heal on Regulus fails to cast. Again, she faces the old position, but never casts.
"Spamming" is not required to reproduce this bug; latency is also not an issue
The omission of details, such as timing and distances, in the steps above was deliberate. Performing the steps once, or frantically with many redundant casts, will produce the same result.
The bug can also be reproduced in a single-player game using Sedna and her own allied reinforcements. Therefore, latency does not appear to affect this bug.
Mechanics of the bug
Single-target skills require both range and angle in order to fire. The correction of range is done through moving, and does not appear to cause any bugs. (Except, possibly, for this related bug). The correction of angle, however, is not compensated for, since changing the facing direction is not instantaneous.
As a result, the Target and the Demigod have a moment where the Demigod is simply assuming the Target will not move; she suffers from stale positioning data. This stale data causes the Demigod to face the old, potentially invalid, position. However, it appears that the original logic that forced her to turn is no longer present. She is now stuck trying to meet her prerequisite of angle, yet not actively trying to achieve them.
Related Bugs
http://forums.demigodthegame.com/353368 describes a bug that produces similar effects. I believe, however, that this is not a duplicate. This related bug appears to result from instant-cast issues, rather than the angle-based issues that are the root of this bug.
Footnotes
1. Diagnosing this bug was certainly not my doing. Much thanks to SVoyager and many others on these forums for describing this bug.
2. It's interesting to note the angle that Sedna faces in this video. It almost appears that she is facing a position that is behind Rook, relative to the camera. If these abilities are raytraced to the ground, and that position is used, instead of the Demigod's position, then that could cause separate issues, especially if this raytraced position is not consistently used. In other words, if the order given uses a raytraced position, but the check uses the Demigod's position, this could cause conflicts since part of the system would believe Sedna is in-range, whereas other parts believe she is out-of-range.