Как она реализована?
В данный момент радиолокация работает следующим образом:
-
У каждого класса кораблей есть единственный параметр радиуса действия сенсоров, внутри которого радар засвечивает все объекты, если между кораблём и объектом нет препятствий и не действуют модификаторы невидимости или подавления сенсоров. Кроме выбора класса корабля, на дальность действия сенсоров влияет в данный момент только один скилл, позволяющий увеличить её на четверть, причём эффект распространяется на все корабли. При полностью прокачанном умении радар фрегата видит на 3750 метров, штурмовика - на 6250, перехватчика - примерно на 8100.
-
Если между кораблём игрока и объектом возникает препятствие, или объект покидает засвеченную радаром сферу, то контакт пропадает через три секунды, если объект становится невидимым - то мгновенно.
-
Когда объект входит в сферу действия радара, контакт появляется через несколько секунд (время не проверялось).
-
Время захвата цели по-видимому (не проверялось) зависит от единственного скилла.
-
Каждый корабль транслирует все контакты остальным кораблям в своей команде. Тем же занимаются маяки (радиус неизвестен). Таким образом, радарная засветка - общая на всю команду.
-
Игрок видит, какие контакты выбраны другими игроками его команды в качестве цели.
-
Игрок видит, какие контакты выбрали его корабль в качестве цели. Если корабль противника, выбравший корабль игрока как цель, находится вне зоны действия радара, то игрок видит только, что его выбрали как цель - без каких-либо уточнений.
-
Корабль игрока “видит” ракетный пуск через препятствия и вне зоны действия радаров, но не даёт каких-либо уточнений.
-
Про интерфейс мне писать лень, вы и сами всё видели.
-
Выражаю благодарность пилоту под ником ХРОНОТРОН за помощь в экспериментах.
-
Если у вас есть уточнения по поводу работы системы радиолокации или недостающие “экспериментальные данные”, поделитесь ими - давайте добавим эту информацию в вики, пока она не устарела.
-
Если вам неинтересны общие размышления, пропустите три следующих абзаца: они скучные.
Почему она устроена именно так?
Начнём с того, что информация о том, как работает радиолокация, доступна только ушлым занудам, готовым ставить эксперименты. К чему весь этот реверс-инжиниринг? Рискну предположить: причина в том, что вместо интерактивной системы, влияющей на тактику боя и стимулирующей серое вещество игрока, в данный момент стоит “заглушка”, минимально влияющая на баланс. Очевидно желание разработчиков повысить роль перехватчика в разведке (это малозаметно игроку и никак не премируется игрой) и желание дать игроку возможность полноценно использовать укрытия (это работает, очень весело). Увы, это всё, что можно сказать по этому поводу.
Почему она устроена неправильно?
Знание “формы заглушки” не даёт игроку почти никаких преимуществ, - ни в бою, ни при подборе оборудования - поэтому игроки в этом знании не заинтересованы. Игра никак не премирует тех, кто “светит” противника - поэтому заинтересованность игроков падает ещё ниже. Незаинтересованный игрок - это плохо. А заинтересованный игрок,превративший свой интерес в знания, которые никак нельзя использовать - это ещё и обидно.
Зачем её переделывать?
Потенциально радиолокационная разведка - это целая “игра в игре”, со своими тактиками, манёврам и прокачкой, но потенциал этот слабо реализован: ведь даже в существующей “заглушке” есть несколько параметров, которые невозможно никак модифицировать - для них почему-то нет ни скилла, ни модуля. Тем, кто умеет и любит ходить в разведку, лучше забыть о своих наклонностях: принести пользу команде таким способом практически нереально, а если вдруг получится - награды не будет. Тем, кто предпочитает фланговые атаки и стелс тоже сложно позавидовать, но для них варианта целых два: невидимость и укрытия. И даже тем, кто любит жать на гашетку во встречном бою не помешало бы разнообразие тактик.
Кроме того, существующая система при ближайшем рассмотрении кажется довольно искусственной: крошечный перехватчик так же хорошо заметен радару, как здоровый фрегат, РЛС которого видит не дальше, чем я вижу невооружённым глазом, а ракеты, похоже, меняют саму структуру пространства. Хотелось бы убрать эту странную заглушку и вставить на её место какую-нибудь фичу.
Как её можно было бы реализовать?
-
Нужен ещё один параметр - радиолокационная заметность. Пусть он изменяется от 1 у НУР Т4 до 100 у имперского фрегата Т1-1. Заметность падает по мере увеличения Т кораблей и ракет, растёт по мере увеличения их размеров, может быть изменена с помощью скиллов, модулей и действий игрока во время боя; принадлежность корабля к определённой фракции также может накладывать небольшие модификаторы.
-
Фиксированная дальность радара не нужна, вместо этого нужен параметр мощности радара. Пусть он растёт по мере увеличения Т и размера кораблей и модифицируется всеми возможными способами, причём активные модули позволяют увеличивать мощность РЛС перехватчика многократно.
-
Наличие или отсутствие контакта на радаре зависит (например) от сравнения (З*М*A+B)/R, (где М - мощность радара, З - радиолокационная заметность контакта, A, B - модификаторы (описаны ниже), R - расстояние до контакта) и случайного числа от нуля до единицы. Больше - контакт есть, меньше - контакта нет.
-
Проверка производится один раз в секунду. На самом деле, это может выглядеть так: два широких веера радарного луча пробегают полный круг за какое-то время, покрывая таким образом всё пространство вокруг корабля. Реализовать это сложнее, чем просто ежесекундную проверку, зато у таких радаров могут быть области лучшего и худшего покрытия, и даже “мёртвые зоны”.
-
Управляемые ракеты обладают собственной РЛС, действующей по общим правилам. Если РЛС ракеты теряет цель, то ракета некоторое время летит по инерции, а затем самоуничтожается, если не находит её вновь.
-
Корабли и ракеты, которые выбрали корабль игрока целью, будут засвечены с большей вероятностью. Дополнительная проверка производится сразу после того, как противник наведётся на корабль игрока.
-
Контакт, выбранный как цель, засвечивается с большей вероятностью, но проверка всё равно производится. Если проверка не пройдена, захват цели теряется.
-
Корабли в состоянии невидимости засвечиваются со значительно меньшей вероятностью, причём эффект нарастает со временем, если цель остаётся невидимой.
-
Корабли за препятствиями засвечиваются со значительно меньшей вероятностью, причём эффект нарастает со временем, если цель остаётся закрытой.
-
Все контакты, выбранные партнёрами игрока по команде в качестве целей, засвечиваются радаром. Остальная информация кораблями не транслируется, если нет специальных модулей и скиллов.
-
Маяк засвечивает все контакты, которые прошли проверку его РЛС. РЛС маяка довольно мощная.
-
Игроки, подсвечивавшие цель в момент её уничтожения, получают 10 очков эффективности. Или игрок, подсветивший уничтоженную цель первым и державший подсветку цели до её уничтожения, получает 50 очков.
-
Ракеты, которые замечены радаром, показываются на HUD’е. Таже демонстрируется дистанция между кораблём игрока и ракетой.
-
ПРО не обрабатывает ракеты, которые не видны радару.
-
В зависимости от того, насколько “уверенно” пройдена проверка (чем больше разница между rnd(1) и (З*М*A+B)/R), по контакту даётся более или менее полная и достоверная информация: о цели, обнаружение которой находится на пределе возможностей радара, известно только то, где та находится относительно корабля, даже тип цели и её уровень “здоровья” должны становиться видимыми только при более или менее стабильном контакте.
-
Можно прокачивать модулями и скиллами: снижение заметности и увеличение мощности радара своего корабля, снижешие мощности радара кораблей противника в определённом радиусе снижение заметности дружественных кораблей в определённом радиусе, уменьшение вражеских модификаторов невидимости и укрытий, или полная их отмена в небольшом радиусе, увеличение своих модификаторов невидимости и укрытий, увеличение способности корабля к трансляции радарной информации (цель+N ближайших контактов), ограничение способности кораблей и маяков противника в определённом радиусе передавать радарную информацию, незаметные ракеты и ракеты с более мощной РЛС, “невидимый” захват цели.
Таким образом, в игре будет доступен почти настоящий стелс и почти настоящая радио-электронная борьба, а роль разведки значительно возрастёт, что будет стимулировать игроков к получению и передаче как можно более полной информации о расположении противника на поле боя. Кроме того, устранятся все нелепости, присущие имеющейся модели радиолокации. С другой стороны, влияние такой системы на игровой процесс будет весьма значительным: чтобы сбалансировать её и ввести в строй может понадобится очень много времени, даже если забыть о тысячах дополнительных строк кода. Поэтому пришлось придумать вариант попроще.
Как её можно реализовать, не вводя всяких параметров и проверок?
-
Перебалансировать дальность работы сенсоров. Разница между кораблями разных классов одного Т не должна быть больше 15-20%, причём наиболее мощным радаром должны обладать фрегаты. Максимальная дальность радара без прокачки и модулей не должна превышать 6000.
-
Возможно, ввести зависимость дальности работы сенсоров от Т кораблей и фракции.
-
Возможно, добавить скиллы, влияющие на дальность работы сенсоров кораблей определённого класса, чтобы при полной прокачке перехватчик был всё же более дальнозорким, чем фрегат.
-
Добавить в игру пассивные модули, увеличивающие дальность работы сенсоров на N% и активные модули, увеличивающие дальность до определённого предела.
-
Добавить в игру активные модули фрегата, на определённое время скрывающие от радара все дружественные корабли в небольшом радиусе, кроме самого фрегата.
-
Добавть в игру активные модули на Т3 и выше, полностью отключающие сенсоры (союзные и вражеские) в определённом радиусе.
-
Добавить в игру пассивные модули, продлевающие время появления корабля игрока на радаре противника после того, как корабль игрока входит в зону его действия, покидает укрытие или отключает невидимость.
-
Добавить в игру пассивные модули, уменьшающие время появления корабля противника на радаре игрока после того, как корабль противника входит в зону его действия, покидает укрытие или отключает невидимость.
-
Добавить в игру активные модули, способные обнаруживать цель через препятствия и невидимость в небольшом (до 500 м) радиусе ценой большого расхода энергии. (Я уже и название придумал: нейтринный детектор)
-
Ограничить видимость ракетного пуска для игрока и ПРО зоной действия сенсоров. ПРО не должна стрелять через астероиды.
-
Добавить в игру пассивные модули, ускоряющие захват цели радаром и замедляющие захват корабля игрока радаром противника.
-
Возможно, ввести зависимость скорости захвата цели радаром от класса, фракции и/или Т корабля.
-
Добавить небольшой (не более 5%) модификатор повреждения за каждого союзника, выбравшего ту же цель, если цель находится внутри зоны покрытия его радара. Премировать каждого игрока, сопровождавшего цель таким образом в момент её уничтожения.
-
Возможно, ограничить дистанцию, на которой радар может заметить перехватчики и штурмовики противника, шестью и восемью километрами соответственно. Это, конечно, новый параметр, но он не предполагает почти никаких дополнительных вычислений.
-
Возможно, добавить модули и умения, влияющие на это ограничение.
-
Что-то ещё?
Хотя такая система не имеет ничего общего с “настоящим стелсом”, она даёт любому игроку возможность прокачивать свой корабль как в сторону меньшей заметности, так и в сторому больших разведывательных способностей, не вводя этих параметров в явном виде, и при этом оставаясь открытой для нехитрых вычислений игрока. Кроме того, открываются возможности для множества новых тактик и приёмов противодействия уже имеющимся тактикам: от пуска ракет “из-за угла” по скрывшейся за астероидом цели, до переброски небольшого флота за “линию фронта”. Роль оперативной разведки при этом умеренно возрастает, а игроки, занимающиеся ей - премируются игрой в соответствии с их ролью в бою.
Спасибо за внимание.