Копипаст отсюда
Меня вот что интересует, вычисление пути для мобов/петов.
Когда пет/моб находиться у лока все нормально, но когда набираешь дистанцию, о
эта штука немного странно начинает работать и мобы бегают зигзагами если ты перемещаешся.
Это легко проверить сев на маунта, тогда будет легче убегать со старого места и моб будет бежать в то место где ты находился ~3 сек назад, потом обновит вычисление пути и только тогда побежит к тебе.
Особенно это заметно когда между игроком и мобом большое расстояние, видимо расчет пути занимает время когда расстояния очень большие то доходит до 5-7 сек.
Можно лы оптимизировать данную функцию? Например делать проверку на лос и наличие между вами обрыва.
То есть если вы находитесь на открытой местности вычисление пути отключать, тогда пет будет приследовать суммонера как на пве, без всяких зигзагов. А когда между петом и его целью уступ(цель в лосе) либо обрыв включать вычисление пути.
Поидее это должно снизить нагрузку на сервер. Как бы какой смысл расчитывать там, где рассчитывать ничего не нужно, так как пет может бежать по прямой?
Ето кстати к "экономике мира" тоже отношение имеет ведь из-за этих зигзагов можно спокойно убивать боса/элиту просто разводя моба очерчивая круги на открытой местности.
Хотя поидее если реализовать подобную проверку на лос, то на открытой местности мобы начнут пробегать сквозь холмы, либо пролетать над углублениями местности.
Может быть стоит просто повысить частоту вычисления, или это сильно понизит производительность?
Вообще будут какие нибудь оптимизации данного кода?
- - - Updated - - -
Дело в том что существуют не только мобы еще петы, спутники. Для них всех вычисляется путь, почему бы это вычисление не отключать в случаях когда местность открытая и нету объектов создающих лос или резких углублений.
Вот пример, когда моб близко к магу, то все выглядит нормально, но когда моб далеко, то он реагирует с запозданием.
https://www.youtube.com/watch?v=bZzMlP1izsU
Если в данном случае стояла подобная проверка, и отключалось вычисление пути по горизонтали, то моб не чертил бы крюки, а самое главное это избавило бы от лишних вычислений пути. То есть если ничего не мешает бежать на прямик, вычисление пути сразу бы выключалось и моб бежал бы по прямой, но стоило бы появиться препядствию, как вычисление бы включалось и пет оббегал бы овраги, столбы и другоие объекты.
Ведь проверка поидее требует меньше ресурсов чем вычисление.
- - - Updated - - -
То есть не полное отключение вычисление пути, а замена более сложных формул на простые, такие же как стоят на пве, когда пет бегает всегда на прямик.