2.6) Система боя.

2.6) Система боя.

UBEv3
СН использует собственную боевую систему UBEv3. Все расчеты, касающиеся обработки боя, унифицированы. Т.е. обычный бой, симулятор, удержание и уничтожение луны - все они используют один и тот же алгоритм расчета. В RR использовались три разных движка для разных расчетов

Особенности UBEv3
1.Своя система расчета повреждений
2.Свой собственный вариант "скорострела" (НЕ ТАКОЙ, КАК НА ОФФЕ!)
3.Свой алгоритм расчета добычи с планет
4.Полностью рабочие САБы
5.Работает удержание на лунах при задании "Уничтожить"

В UBEv3 НЕТ понятия "скорострела". Вместо него используется понятие "залповый огонь". По функционалу "залповый огонь" и "скорострел" - понятия одного ряда.
Но алгоритмы расчета у них РАЗНЫЕ.

Боевая система работает следующим образом. Предполагается, что оба флота (в случае боя один на один) летят в формации "диск". Что, в целом, логично - надо максимизировать возможность каждого корабля дать залп. Залп флота распределяется между классами кораблей противника в зависимости от брони (ака - тоннажа, ака размера). Тоже логично - в большую цель легче попасть. Щиты принципиально отличаются от брони тем, что щиты считаются целиком по типу корабля, а броня - индивидуально для каждого корабля. Т.е. что бы повредить один корабль, сначала надо пробить щиты по типу кораблей.

При выстреле атакующего в противника, против которого у аттакера есть залповый огонь, урон модифицируется согласно внутренним таблицам. Залповый огонь может, как увеличивать наносимые повреждения, так и уменьшать - значения в таблицах залпового огня подобраны таким образом, что бы с одной стороны сделать каждый корабль уникальным и применимым в определенных условиях, а с другой стороны - сбалансировать все корабли между собой и не допустить появление суперкораблей.

Обращаю внимание - залповый огонь применяется сразу по щитам. Дальше часть урона поглощается щитами, а если что-то прошло сквозь щиты - наносится повреждение по броне. А там сравниваем прошедший урон с броней и списываем нужное количество корабликов.

Случайная составляющая.

Бои в СН имеют случайную составляющую. Т.е. результаты двух проведенных боев в одних и тех же начальных условиях могут различаться кардинально. С точки зрения игрового мира, случайная составляющая отражает маневры кораблей, работу пилотов, наводчиков и всего остального экипажа корабля, а так же случайности, присущие реальному миру.

Симулятор боя

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

FAQ по боевой системе

Q:Что означает в описании корабля Х строка "Одним залпом поражает КорабльY ZШтук"?
A:Она означает, что если корабль Х (при отсутсвии бонусов к щитам/броне/урону и отсутствии офицеров) встретится с ZШтук кораблей разновидности КорабльY, то за один раунд корабль Х уничтожит все корабли противника.
Для кораблей, которых нет в списке залпового огня, количество убиваемых кораблей за раунд равно: (БроняЗащитника + ЩитыЗащитника) / АтакаНападающего.

Q:Корабль Х уничтожил корабли противника, но ответным залпом его самого сбили!
A:А так вполне может быть. Выживаемость корабля Х никто не гарантировал

Q:Как-то странно выбираются цели при залпе.
A:Увы, что бы корректно выбирать цели, необходимо обсчитывать каждый корабль. Т.е. во-первых - иметь индивидуальную запись каждого корабля. Во-вторых - вычислять эффективность удара в зависимости от параметров каждого корабля, т.е. совершать просмотр огромного количества информации каждый ход. Если даже применять всякие алгоритмы оптимизации и сортировки, то на величинах порядка десятков тысяч кораблей (обычная бойня между топ-флотами) количество вычислений будет чрезвычайно велико. И это не считая сложности разработки более-менее оптимального алгоритма. Поэтому ради ускорения расчетов приходится идти на сознательное огрубление модели.

Q:Просуммировал нанесенные повреждения, а затем посчитал, сколько должно было быть нанесено повреждений. Цифры не совпадают!!!
A:Поскольку применяется достаточно грубая и упрощённая модель (см. предыдущий ответ), часть урона может пропасть. Например, если несколько атакующих стреляют по одним и тем же кораблям и первым залпом корабли защитника уничтожены, то остальной урон прийдётся на пустое место, т.е. "пропадет". Учет "пропавшего" урона потребовал бы перерасчета всех оставшихся категорий кораблей на каждой итерации, т.е. существенно увеличил бы нагрузку (эксперимент такого рода проводился). Кроме того, если урон приходится на последние корабли противника, часть его все равно пропадет.

Q:Посчитал в симуляторе - СН не смогла убить туеву кучу кораблей! Корабль - гавон!!!
A:Еще раз - применяется достаточно грубая и упрощенная модель обсчета боя, см. пред-предыдущий ответ. В частности, каждый раунд количество уничтоженных кораблей округляется вниз до ближайшего целого. Т.е. если в одном раунде корабль атакующего нанес повреждений после щита на 0.99 кораблей защитник, это значение округляется до 0 и в следующем раунде количество кораблей у защитника будет таким же. Грубо говоря, это означает, что в начале раунда все уцелевшие корабли имеют полную броню. В случае симулятора, где отсутствует случайная составляющая, при определенных условиях СН не сможет убить ни одного корабля. Впрочем, на граничных случаях движок офф-сервера тоже ведет себя крайне странно. У каждого движка - свои особенности.

Добавить комментарий


Защитный код
Обновить