11 летний баг с наведением турелей и его решение придуманное за минуту

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


Вот как должно быть:

Алгоритм решения проблемы придуманный за одну минуту:

  1. Ищем ближайшую цель к линии визирования.
    LOS (line of sight) - нормализованный вектор линии визирования.
    target - вектор на цель.
    trg.Proj(LOS) - векторная проекция target на LOS.
    Проходимся по списку целей (противников), делаем скалярную проекцию target на LOS. Если результат > 0 (значит мы смотрим на цель) и результат < 3 км. (для оптимизации). то умножаем результат на LOS (получаем trg.Proj(LOS)). Затем вычитаем проекцию из target получая reject вектора и узнаем его квадратную длину (чтобы избежать извлечения квадратного корня). Сравниваем ее с длиной до предыдущей цели и если новая длина меньше прошлой сохраняем ее и trg.Proj(LOS).
  2. Если цель была найдена, задаем в качестве точки сведения турелей trg.Proj(LOS) сложив ее с текущей позицией игрока для перевода в глобальные координаты.
  3. Применяем алгоритм ко всем самолетам с турелями в игре.

Самолеты в которых проблема наиболее заметна:

  1. BV-238 при стрельбе назад.
  2. B-29 при стрельбе в сторону.
  3. Ту-4 при стрельбе в сторону.
  4. Р.108 (все варианты) при стрельбе назад.
  5. H8K2 при стрельбе назад и в сторону или при стрельбе в сторону и немного вперед.
  6. H6K4 при стрельбе назад и в сторону или при стрельбе в сторону и немного вперед.
  7. Линкольн при стрельбе назад и в сторону или при стрельбе вперед и в сторону.
  8. «Ланкастер» (все варианты) при стрельбе назад и в сторону или при стрельбе вперед и в сторону.
  9. «Стирлинг» (все варианты) при стрельбе назад и в сторону или при стрельбе вперед и в сторону.
  10. «Галифакс» при стрельбе назад и в сторону.
  11. Веллингтон (все варианты) при стрельбе вбок.
  12. Сандерленд (все варианты) при стрельбе назад и в сторону или при стрельбе вперед и в сторону.
  13. Ме 410 (все варианты) при стрельбе прямо назад. Действует скорее как увеличение горизонтального разброса на расстоянии.
  14. He 177 при стрельбе в сторону.
  15. Б-17 (все варианты) при стрельбе в сторону.
  16. B-25 (все варианты, включая PBJ) при стрельбе в сторону.
  17. Каталина (все варианты) при стрельбе в сторону и немного вперед.

Ссылка на репорт 5 летней давности откуда взята большая часть информации

6 лайков

Это сложно, можно еще пару моделек шерманов у индусов заказать.

10 лайков

у меня глупый вопрос - я правильно понимаю, что по факту это будет означать, что стрелки будут всегда знать расстояние до самолета?

и 2е - а почему не проще сделать регулируемое сведение и всё? эта механика уже есть и к ней надо тупо добавить возможность “крутить” в + и -
всё
так вроде и честно и проблема решена

Да, предположим сейчас стрелки сводятся на 800 (я не знаю реальное число), цель летит на 1500, все сбитие практически невозможно. С написанным алгоритмом они будут сводится на 1500 (на дистанцию до цели), но это не значит что они будут сами наводится на цель, на цель должен свестись игрок, кстати для реализма можно добавить разброс ± 0-150 метров и привязать его к расстоянию = чем больше расстояние тем больше разброс, хотя это немного ухудшить производительность так как каждая турель должна будет получить уникальную позицию цели.

5 лайков

Текущая механика сведения не распространяется на точку сведения нескольких турелей. Она изменяет только точку сведения стволов турели.
Для сведения стволов орудий на точку такое решение подходит так как оно используется и в реальной жизни. Турели же на цель в реальной жизни сводили стрелки в них сидящие. Поэтому я считаю что автоматический подбор дистанции выглядит более реалистично.
Также добавление механики ручного регулирования точки сведения потребует изменений в стартовом UI для всех самолетов с турелями и добавления раздела в настройках для привязки к кнопкам (а лучше к колесику мыши).
В целом я был бы рад и такой реализации это лучше чем нечего за 11 лет.

1 лайк

В игре есть бобры??? А это те летающие фраги. Интересное предложение. Наверное оно станет актуально когда разрабы введут большие эвенты с ботами или крупные игровые квесты /режимы с бобро волнами и норм наградами.

А еще штурмовики с турелями на которые данный баг тоже распространяется.

Пфф, ну это ты норм игроков не встречал. Не хочу хвастаться, я вот про игрок на бобрах и у меня у/с 1 к 4, вот я бы дал тебе прикурить. Секрет столь высокой статки в том что я часто делаю 2 и больше килов за бой. Я бы кинул тебе реплеи в виде пруфоф но искать долго. Да и разрабам не хочу палить кантору а то еще бобров понерфят.

А почему нет? Это там два стрелка, а не 1 стрелок с парой орудий в разных частях самолета

Оформить предложение можете тут - Новые предложения (премодерация) - War Thunder — официальный форум

Закрыто.