Стандартные линии дымов — самый экономичный актив тренировок, но после обновлений точки падения смещаются. В статье разбирается физика траекторий гранат, причины чувствительности к параметрам и даётся метод проверки необходимости перерисовки линий.
Введение
Стандартные линии дымов — это самый экономичный актив тренировок команды: дым, отработанный три тысячи раз, теоретически не должен давать отклонений. Но на практике при одной и той же позиции и точке прицеливания после смены версии граната падает на полкорпуса в сторону, не перекрывает окно или после отскока застревает на краю стены. Это не вопрос ощущений — траектория гранаты сама по себе является динамической системой, чувствительной к параметрам.
1. Траектория — не парабола, а интеграл с затуханием
Движение гранаты в CS2 можно разложить на три составляющие: вектор начальной скорости, ускорение свободного падения и затухание скорости с направлением отскока при каждом столкновении. Многие воспринимают это как школьную физику — наклонный бросок, смотрят только на начальную скорость и угол, но реальную точку падения определяет последовательность столкновений.
От броска до приземления дым в среднем испытывает от 1 до 3 столкновений. Первое столкновение умножает скорость на коэффициент восстановления меньше 1 и отражает её по нормали к поверхности. Проблема в том, что геометрия карты не является идеальной плоскостью: у краёв ящиков есть фаски, на стенах — декоративные выступы, у невидимых стен есть толщина. Эти геометрические детали чаще всего случайно меняются при обновлениях, поскольку они являются побочным продуктом «визуальной оптимизации» и не попадают в патчноуты.
В результате: ваша точка прицеливания не изменилась, но направление нормали при первом столкновении сместилось на 2 градуса, и после второго отскока боковое смещение увеличивается на десяток юнитов. Те полкорпуса отклонения стандартной линии дыма чаще всего берутся именно отсюда.
2. «Нелинейная зона» затухания отскока
Коэффициент восстановления не постоянен. Кривые затухания при столкновении на низкой и высокой скорости различаются; на низких скоростях движок добавляет дополнительное демпфирование, чтобы граната не скользила по земле бесконечно. Это означает, что для одного и того же дыма, брошенного с силой и брошенного легко, чувствительность точки падения к ошибке прицеливания совершенно разная.
У дыма, брошенного с силой, время полёта больше, столкновений меньше, точка падения в основном определяется начальной скоростью; небольшое отклонение прицеливания даёт линейное отклонение падения. У дыма, брошенного легко, столкновений много, каждый отскок усиливает ошибку, и зависимость точки падения от прицеливания нелинейна. Вот почему стандартные линии «лёгкий бросок у стены» наиболее уязвимы к версиям: они зависят от точной последовательности столкновений, и любая геометрическая правка разрывает всю цепочку.
При переучивании стандартных линий команды в первую очередь переучивают именно дымы с «низкой начальной скоростью и множеством столкновений», а не силовые броски через точку. Первые — зона чувствительности к версии, вторые — зона стабильности.
3. Стандартные линии — это «карта консенсуса», а не личный навык
Ценность стандартных линий дымов не в точности, а в синхронизации. Когда пять игроков в одном раунде бросают по одним и тем же точкам прицеливания, дымовая стена складывается в полную линию блокировки. Как только какая-то линия смещается из-за дрейфа версии, команда не просто меняет точку прицеливания одного игрока, а перерисовывает всю линию, потому что синхронизацию восстановить сложнее, чем точность.
Вот почему в тренировочных матчах профессиональных команд в начале каждого сезона всегда есть период «работы по стене». Они не ищут новые точки прицеливания, а заново калибруют тот самый консенсус: какая линия ещё работает, какую нужно сменить позицию, а какую проще забросить и заменить мгновенным дымом.
4. Как определить, нужно ли переучивать линию
Мой метод состоит из трёх шагов: сначала зафиксировать позицию и бросить десять раз в одну и ту же точку прицеливания, посмотреть разброс падения; затем сдвинуть позицию на один корпус вперёд-назад и проверить, смещается ли точка падения линейно; наконец, перепроверить в среде с другим тиком сервера. Если разброс велик, смещение нелинейно и результаты в разных средах не совпадают, эту линию нужно внести в список на переучивание.
Обновление версии не сообщает, какая линия дыма сломалась, — оно просто тихо меняет толщину одной стены. Поддержание стандартных линий по сути является регулярным аудитом командой своей «карты консенсуса».