← все статьи

Titancraft, день девятнадцатый: СУО — метки целей, перехват наводки и новые приборы

Девятнадцатый день Titancraft. Сделали для танков в игре настоящую СУО — систему управления огнём: дальномер, баллистический вычислитель, сопровождение цели, несколько целей в памяти и перехват наводки у автоматики. Эта запись — о том, как она устроена: как сетка становится выстрелом, как держать несколько целей и как пересилить автоматику, не потеряв цель.

Как сетка становится выстрелом

Наводчик ставит сетку, остальное делает СУО. Дальномер меряет дальность, вычислитель поднимает ствол под снаряд и выносит точку на упреждение, башня доворачивает, сервер стреляет.

Глаз наводчика сидит сбоку от пушки, в 0,95 м от её оси. Вблизи это заметно: на 40 м башня, параллельная прицелу, смотрела бы мимо на 1,4°. Поэтому башня доворачивает не по лучу прицела, а на точку выстрела от оси пушки.

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

Три режима

Режим переключается клавишей V по кругу и помнится после выхода из прицела.

В ручном режиме слева от центра сетки появляется шкала дальностей от 500 до 4000 м, своя для каждого снаряда. Риску нужной дальности наводят на цель — и ствол оказывается поднят на нужный угол.

Выбитый основной прицел уносит с собой дальномер и вычислитель. Режим становится ручным, кратность — не выше ×4, разброс шире в 4 раза, по стеклу идут трещины.

Дальномер и упреждение

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

Упреждение — скорость цели, умноженная на время полёта. Скорость цели СУО берёт из того, как двигался её крест, со сглаживанием 0,35 с. Время полёта считает по скорости снаряда:

Несколько целей

Раньше СУО держала одну цель. Теперь можно пометить до 8, одна из них — текущая, её СУО и сопровождает.


Прицел своего танка: четыре помеченных танка на 900 метрах, цель номер 2 в голубых уголках, справа список целей, сверху компас с метками
Четыре метки на 900 м: цель 2 обведена, остальные — ромбы с номером, все четыре в списке справа и на компасе

  • N на танке под сеткой ставит метку и делает его целью. На помеченном — снимает метку. На пустом месте — снимает сопровождение, метки остаются.
  • Tab и Q листают метки вперёд и назад. Сетка доворачивает на новую цель плавно, за 0,45 с.
  • Backspace снимает все метки.

Листание идёт по курсу слева направо, а не по порядку пометки: так на экране понятно, куда прыгнет сетка. Номер метки — порядок пометки, он одинаков у ромба, в списке и на компасе.

Уничтоженная цель держится ещё 1,5 с — чтобы увидеть попадание. Потом её метка снимается, и сопровождение переходит на ближнюю к сетке живую метку.

tools/shot.sh tc_marks.png --flat
── Проверка меток
волна: 4 танка на 900 м, стоят строем
✓ помечено 4, цель — последняя помеченная
✓ слева направо [2, 0, 1, 3]; Tab по кругу: [0, 1, 3, 2, 0]
✓ сетка на цели: 0,00°
✓ Q — назад: цель 2 (ждали 2)
── Перехват
✓ через 128 точек: сопровождения нет, цель 2, меток 4
✓ R: сопровождение есть, сетка на цели 0,00°
── Снять
✓ N на цели: меток 3, цели нет
✓ сброс: меток 0
Проверочный прогон: волна из четырёх танков, пометить, листать, перехватить, вернуть

Перехват наводки

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

Но иногда автоматике надо сказать «стоп». Если упереться мышью в предел и вести дальше ещё на 90 точек экрана, СУО отпускает цель. Цель остаётся выбранной и в метках, на щитке загорается «ПЕРЕХВАТ», а сетку дальше водит наводчик.


Прицел после перехвата: цель 2 по-прежнему в голубых уголках с подписью «цель», сетка отведена вправо, на щитке оранжевым «АВТОМАТ · ПЕРЕХВАТ»
Перехват: сетка ушла с цели, цель и метки на месте, на щитке — «ПЕРЕХВАТ»

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

Если цель погибла во время перехвата, следующая выбирается, но сетку у наводчика не отнимают.

В своём танке

В танке СУО наводит башню. Сетка ставится сразу, башня догоняет со скоростью 0,7 рад/с, а в прицеле кружок показывает, куда пушка смотрит сейчас.


Свой танк со стороны, сзади: впереди на горизонте четыре танка, над ними ромбы меток и голубые уголки цели, слева щиток, сверху компас
Вид со стороны: метки висят над танками на горизонте, компас показывает их курс

  • Пока пушка не доведена до 1° по курсу, выстрела нет — на щитке «башня догоняет».
  • Автомат заряжания изделия 51М заряжает за 7 с. Ствол уходит на угол заряжания 3° и возвращается на линию прицела, а прицел всё это время остаётся на цели.
  • У изделия 41 заряжает человек: 6 с из ниши башни, 11 с из корпуса, 16 с, если заряжающего выбило и заряжает командир.
  • 4 — спаренный пулемёт по той же сетке, 5 — зенитный на крыше, сетка до 70° вверх.
  • O — режим СПО, G — залп из 4 дымовых гранат туда, откуда светили лазером.

Новые приборы

Старый HUD рос с каждой новой системой: сводка строками, строка подсказок уходила за край экрана, камера сбоку наползала на схему повреждений, а миникарта героя сообщала «руин поблизости нет».

Было: сводка строками, подсказки за краем экрана, миникарта героя
Было: сводка строками, подсказки за краем экрана, миникарта героя
Стало: щиток, компас, список целей, у каждого угла своё дело
Стало: щиток, компас, список целей, у каждого угла своё дело

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

Клавиши больше не висят строкой: их нужно выучить один раз, а не читать каждый кадр. Все они — в карточке по H.


Карточка клавиш наводчика поверх прицела: два столбца, клавиша в рамке и что она делает
Карточка клавиш по H: всё, что умеет наводчик, на одном экране

Что осталось в игре

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

Нужна игра, где механика — не декорация?
Начните с брифа: четыре вопроса и честный ответ, подходим ли мы друг другу.
Пройти бриф