Показать сообщение отдельно
Старый 04-11-2023, 00:08   #3325
CrazyIvan
Bugcatcher
 
Аватар для CrazyIvan
 
Регистрация: Nov 2008
Адрес: Russia Kursk City
Сообщений: 1,017
Cool

Пока что, застрял на новых переменных.


В оригинале игры, выстрелом управляет движок (кроме как на АИ лодках – там стреляет из доктрины, но тоже с ограничением: таймер выстрела генерируется по формуле 300 сек + рандом из 180 секунд).
Таким образом если из доктрины не дана команда на выстрел, движок все равно сам выстрелит через это рандомизированное время выстрела.
В данный момент я эти таймеры убрал для:
Если НК обнаружил лодку, самолет, вертолет или ракету, тогда выстрел будет происходить строго из доктрины.
Если самолет или вертолет обнаружил лодку или НК – также, выстрел готовим в самой доктрине.
Это я к чему говорю – сейчас в доктринах будет строго прописан алгоритм работы с контактом.


Например, если цель обнаруживается ГПБА, тогда первым делом АИ лодка должна выполнить маневр для устранения неоднозначности контакта.
Т.е – вычислить зеркальный (ложный контакт).
Из руководства к симу мы знаем что, при изменении курса, ложный контакт начнет смещаться на дисплее только тогда, когда конец кабеля на котором находится сенсор, достигнет той точки, где лодка произвела изменение курса.
Для этого, нам нужно знать длину кабеля данного ГПБА, который установлен на данной лодке (новая переменная изи движка, позволяет это).
Далее – нам надо знать параметр WashOutSPD (скорость выше которой сенсор не сможет детектировать и удерживать контакт).
Тут надо добавить, что та скорость, что задана в Базе Данных у сенсора, она ни есть именно та скорость, на которой сигнал будет пропадать.
Потому как в движке сима, происходит более детальный расчет потери чувствительности: исходя из окружающего состояния – волнения моря, глубина дна, наличия слоя, итд итп.
Этот параметр (WashOutSPD) я смог получить – введя новую переменную, в сам код двигателя игры.
Также новые переменные были вписаны для направления конусов сонаров, их сектора охвата итд итп.
Чтобы в доктрине, прописать такой алгоритм, при котором АИ лодка будет максимально стараться не выпускать контакт из конуса сенсора, который в данный момент, удерживает этот контакт.
Да – но вернемся снова к лодкам.
Далее после того, как будет вычислен ложный контакт, начинается процедура ТМА (вычисление расстояния до цели, ее курса и скорости) .
Ну и дальше – все как у игрока, когда он выполняет стандартные процедуры для получения целевых данных для стрельбы.


Для НК – прописаны новые переменные которые позволяют в доктрине получать точное время вылета с ВПП (поскольку готовность вертушки на корабле может быть 1 час 30 мин 15 мин и 5 мин, и это если время запуска не ускорено в опциях игры. Если время запуска укорочено – то там совсем другие интервалы).
Для чего все это нужно ?
Для того, чтобы в доктринах, прописать разумную логику действия АИ платформ.
А не так – что получен контакт, враждебный, берем и сразу стреляем без разбора.
Введена новая переменная, которая позволяет лодкам и кораблям, оперировать своим ГПБА по глубине.
Чтобы периодически, сенсор ГПБА опускался под слой. ( если слой присутствует)
Или же наоборот, чтобы приподнимался, если он волочится по дну.


В общем, на данным момент, получено около 20 нужных параметров (ранее просто не доступных), которые позволят написать более совершенный алгоритм работы АИ платформ.
__________________
Only the dead have seen the end of the war.
CrazyIvan вне форума   Ответить с цитированием