Исправьте 11 летний баг с неправильным сведением турелей

  • За
  • Против
0 проголосовавших

Описание:

Турели на всех самолетах сводятся на случайное расстояние на линии визирования которое нельзя изменить вместо того чтобы сводится на расстояние до ближайшего к линии визирования врага. Это делает невозможным убийство врага ближе и дальше этой точки, хотя враг спокойно убивает тебя с 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 летней давности откуда взята большая часть информации

9 лайков

Что то непонятное, но звучит хорошо, за

1 лайк

Спасибо, посмотри на картинку, турели у всех самолетов в игре сейчас сводятся на случайную точку которую нельзя изменить. Это тоже самое что стволы орудий всех самолетов будут сводится скажем на 500 метров и это нельзя будет поменять, только тут ситуация в разы хуже из-за того что между турелями расстояние в разы больше чем расстояние между орудиями у самолета.

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

Браво. Идея весьма здравая.

У турелей в принципе не должно быть сведения, каждую наводит стрелок. Прожал за, но это костыль.

Спасибо, согласен, поэтому я и предложил автоматический алгоритм. Дальше все зависит от улиток.

Эта тема была автоматически закрыта спустя 7 дней. В ней больше нельзя отвечать.