Hey, I was wondering if the movement grid used to control teleporting speed is calculated incorrectly? I saw the question asked in an old thread but not answered. Specifically the grid grows equally along horizontal axes (world-aligned, not player-aligned) which allows players to teleport faster by moving diagonally. I noticed this when playing with my wife as I use sliding but she uses teleport and often varies in her speed based on our direction. When along the diagonal she was always significantly faster. I tested myself and seems to be the case.
For an example:
P.A
...
C.B
Assume the player is at P, holds teleport and waits for one second so the grid grows 2 spaces. In-game now this will allow teleporting to A, B or C as the grid will grow 2 along X and 2 along Y. Note that with points A and C, the distance is 2 units, the intended amount matching sliding speed, point B however is actually ~2.8 units away (sqrt(2x2 + 2x2)). As the grid expands in this way, diagonal movement is ~40% faster than travelling along a world axis.
The solution should be fairly simple, grow the grid as an aliased circular instead of the current square so that diagonal movements are only allowed up distances <= those in the radius, intersecting with the navigation mesh in the existing way. Though perhaps move intuitive, leave the visual grid dots for clarity but draw the actual teleport radius at the real edge and allow teleport within.
Sorry if this has been discussed before but as mentioned, I couldnt find it answered searching. Hopefully something minor to change as the inconsistency in movement between methods can be confusing and frustrating.