Типичные ошибки вэйпоинтинга
Большинство сломанных графов ломается по одним и тем же причинам. Пройдитесь по списку прежде чем делиться работой - а механику сначала проверьте командами yb graph check и yb graph fix, они ловят такое автоматически.
Ошибки узлов
Заголовок раздела «Ошибки узлов»Непокрытые зоны
Заголовок раздела «Непокрытые зоны»Боты в основном держатся узлов, но в бою переходят на свободное движение: погоня, отступление, падение с уступа. Когда бой заканчивается в зоне без узлов рядом, бот застревает в поисках дороги назад. Покрывайте всю играбельную карту - каждую комнату, балкон и угол, куда может зайти игрок. Единственное допустимое исключение - место, куда боты физически не попадут (тогда не ставьте там узлы вообще, включая дорогу туда).
Лишние узлы
Заголовок раздела «Лишние узлы»Больше узлов - не лучше. Прямому дверному проёму нужны ровно два узла (по одному с каждой стороны) плюс соединение - цепочка из пяти узлов подряд ничего не даёт, а боты будут мешать друг другу, считая что идут «разными» путями. Если соединение уже перекрывает весь проход, промежуточные узлы - мёртвый груз: удалите их или уменьшите дистанцию автопути, чтобы редактор рисовал меньше длинных связей.
Узлы слишком близко друг к другу
Заголовок раздела «Узлы слишком близко друг к другу»Бот считает узел достигнутым в небольшом вшитом радиусе вокруг него. Поставьте два узла ближе этого радиуса - и бот «достигнет» оба в одном кадре, не сдвинувшись, точное движение развалится, а два бота, посланные на эти узлы, столкнутся вместо того чтобы разойтись. Ориентир: держите обычные узлы минимум в ширину тела друг от друга.
Рваные присед-цепочки
Заголовок раздела «Рваные присед-цепочки»Боты приседают при подходе к узлу-приседу и встают, когда следующий узел - стоячий. Одинокий узел-присед в двери означает, что бот встанет прямо в дверном проёме. Всегда завершайте проход приседом ещё одним узлом-приседом с дальней стороны, а соединения через двери рисуйте вручную - автосвязь «стоячий-к-стоячему» через дверь обходит вашу присед-цепочку стороной.
Плохо расставленные важные узлы
Заголовок раздела «Плохо расставленные важные узлы»- Одного важного узла на зону достаточно; их скопление в одной комнате ничего не даёт.
- Не ставьте важные узлы обеих команд рядом - обе команды будут нестись в одну точку и тактика превратится в дефматч.
- Не ставьте их поверх цели карты (заложники, зона спасения, точки закладки). Боты туда и так придут; важный узел там только искажает остальные их решения.
Ошибки соединений
Заголовок раздела «Ошибки соединений»Потерянные связи на лестницах и ступенях
Заголовок раздела «Потерянные связи на лестницах и ступенях»Классика: боты спускаются по лестнице, а подняться назад не могут. Нижний узел редактор обычно соединяет сам, а верхнему лестничному узлу нужно вручную добавить исходящую связь на верхний этаж - проверяйте оба направления. То же со ступенями: узлы над краями ступеней часто получают одностороннюю связь вниз и ничего вверх. Пройдите ступени в обе стороны и смотрите на цвета связей.
Левые автосвязи
Заголовок раздела «Левые автосвязи»Автоматика не понимает стен: после расстановки прыжковых узлов редактор может добавить обычные пешие связи от старта/финиша прыжка к соседним узлам - боты будут вечно идти в стену. Перед рисованием прыжковых соединений выключайте автопути (0 в меню автопути или yb graph off auto), потом осмотрите окрестности на предмет жёлтых линий, которых там быть не должно. Та же история с узкими уступами: сначала полностью разметьте землю под уступом с щедрым автопутем, затем уменьшите его так, чтобы связь через разрыв стала технически невозможна, и размечайте сам уступ.
Небрежные связи через двери и за углами
Заголовок раздела «Небрежные связи через двери и за углами»Самая частая ошибка вообще. Если связь срезает угол или жмётся к дверному косяку, боты будут биться о геометрию каждый раз. Проверяйте ногами: пройдите ровно по линии связи - если задеваете, связь плохая. Через двери ставьте узлы строго по центру с каждой стороны, чтобы связь пересекала проём под 90 градусов; за углами оставляйте видимый зазор между связью и стеной.
Перекрывающиеся соединения
Заголовок раздела «Перекрывающиеся соединения»Цепочка узлов, где каждый связан со всеми (типично для вентиляции), загоняет ботов на «разные» маршруты, которые физически совпадают, - они блокируют друг друга. Связывайте цепочкой (1-2, 2-3, 3-4), длинные перекрывающиеся связи удаляйте. Уменьшение дистанции автопути предотвращает большинство таких случаев.
Нет прыжковых связей там, где надо
Заголовок раздела «Нет прыжковых связей там, где надо»По обычной двусторонней связи боты смогут вскарабкаться на ящики - утыкаясь в препятствие и прыгая вслепую: медленно, неуклюже, иногда падая обратно. Везде, где бот должен оторваться от земли (ящики, бочки, разрывы), используйте настоящие прыжковые соединения (9. Прыговой в меню типов узлов или yb g path_create_jump).
Ошибки радиуса
Заголовок раздела «Ошибки радиуса»Радиус редактор вычисляет по высоким препятствиям рядом, с потолком 128 - и ничего не знает про ямы. Узлы у пропастей, шахт и краёв мостов получают огромные радиусы, и боты бодро шагают за край, считая всё это проходимым полом. Уменьшайте такие радиусы вручную, в худших местах - до нуля. То же у узких дверей и проломов: даже «маленький» авторадиус там обычно слишком щедрый, ставьте ноль, чтобы боты шли ровно по нитке.
Ошибки флагов
Заголовок раздела «Ошибки флагов»Нет флагов NoHostage (карты cs_)
Заголовок раздела «Нет флагов NoHostage (карты cs_)»На картах с заложниками помечайте каждый маршрут, где заложники не пройдут: лестницы, вентиляции, окна, прыжки - и желательно кемперские точки, чтобы бот с заложниками не ушёл отсиживаться в угол пока тикает время. Сомневаетесь, пройдут ли заложники, - пройдите маршрут сами, ведя их, без ботов.
NoHostage на путях к цели
Заголовок раздела «NoHostage на путях к цели»Обратная ошибка: блокировка единственного нормального пути к зоне спасения загоняет бота с заложниками в абсурдный объезд. Флагуйте места, где заложники не проходят, а не весь район.