← Все записи

Бой2 мин чтения

Когда два маршрута пересекаются

Что происходит, когда два бойца одновременно идут в одну клетку, как появились режимы огня у каждого ствола и прицел с шансом попадания.

При ходах по очереди два бойца не могут оказаться в одной клетке: второй просто не сможет туда пойти. При одновременных ходах оба игрока планируют, не зная чужого маршрута, и столкновения неизбежны. Довольно рано (проект тогда назывался UOR) для них появилось правило.

Уступить дорогу

В клетке может стоять только один боец. Клетку занимает тот, кто вошёл в неё первым по времени раунда. Второй останавливается перед ней и каждые 0,15 секунды проверяет, не освободилась ли она. Если клетка освободилась за 0,6 секунды, он идёт дальше по маршруту. Если нет — бросает остаток маршрута и остаётся там, где остановился.

Бывает, что двое подходят к клетке в одну и ту же миллисекунду. Тогда первым идёт тот, кто стоит раньше в порядке этого раунда. Этот порядок сервер заново тасует каждый раунд, и тасовка зависит только от зерна боя. Когда приказ дошёл до сервера, на неё не влияет. Иначе преимущество получал бы тот, у кого быстрее интернет, а повтор боя мог бы разойтись с тем, что было на самом деле.

Отдельный случай — двое идут навстречу, и каждому нужна клетка другого. По общему правилу оба ждали бы друг друга и оба бросили бы маршрут. Поэтому такие бойцы просто расходятся: меняются клетками за один шаг.

Своих правило касается так же, как чужих. Два бойца одного отряда, которых игрок отправил через одну дверь, не застрянут в ней: один пройдёт, второй подождёт.

Задержка в этом случае — доля секунды, но на общей шкале времени она настоящая. Боец, который уступил, выйдет из-за угла позже, чем планировалось.

Режимы огня

Тогда же у оружия появились режимы огня. До этого выстрел был один на всё оружие. Теперь у каждого ствола свой набор: одиночный, навскидку, прицельный, очередь — в зависимости от того, что это за оружие.

Режимы отличаются временем, расходом патронов и точностью. Прицельный выстрел занимает заметную часть раунда. Выстрел навскидку быстрее обычного, но точность у него ниже. Очередь тратит больше патронов: по сути это три выстрела за время, которое уходит на один, но каждый из них менее точен. Выбор режима — это выбор между «попасть» и «успеть».

Прицел и поворот

Для планирования стрельбы появился прицел: при наведении на противника показывается шанс попадания с учётом дистанции, режима огня и укрытия. Конус обзора бойца нарисован на поле, и видно, что попадает в сектор.

Правая кнопка мыши теперь поворачивает бойца лицом к указанной клетке. Поворот — отдельное действие со своей ценой, и его часто нужно задать явно: боец, дошедший до угла, смотрит туда, куда шёл, а не туда, откуда ждут противника.

Что с этим сейчас

Позже оказалось, что 0,6 секунды для своих мало: боец бросал маршрут, хотя товарищ впереди вот-вот ушёл бы с дороги. Теперь за товарищем, который ещё будет двигаться в этом раунде, боец ждёт сколько нужно, а товарища, который остановился совсем, обходит. Из двух своих ждёт тот, кому маршрут дали позже, и планировщик показывает это ожидание заранее, на шкале раунда. Противника, как и раньше, ждут 0,6 секунды, а потом пытаются обойти.