Блог разработчиков от 23 января: сложение эффектов модификаторов

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

6239ac208310290032aba80bbad4.jpg

 

На данный момент, правила сложения модулей для всех, кроме модулей на сопротивление урону, едины.

Имеются два значения, на которые любой игрок должен обращать внимание:
Первое, базовое значение. Это характеристика вашего корабля, которую можно улучшить: от скорости до радиуса радара. Изучить их можно подробнее в вики Star Conflict.
Второе - характеристики модификатора. Модификатор - это любой бонус к улучшению базовых показателей корабля: различные бонусы, модули, импланты.
Некоторые модификаторы вычитают определенное значение из базового, а некоторые - прибавляют. Первые являются модификаторами с отрицательным значением, а вторые - с положительным. В зависимости от знака применяется одна из простых формул:

 

1.ЕСЛИ mod < 0 ТОГДА newValue = baseValue / ( 1 - mod )
2. ЕСЛИ mod > 0 ТОГДА newValue = baseValue * ( 1 + mod )

 

mod - сумма значений модулей, в соответствии с графиком ниже (Характеристики модуля 1 +…+Характеристики модуля 3 + бонусы от имплантов + Бонусы к характеристикам корабля ).
newValue - итоговое значение
baseValue - базовое значение корабля, которое можно посмотреть в информации о корабле или в вики Стар Конфликт.

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

post-11303-0-34661900-1377151323_thumb.jpg

Таким образом, если вы видите, что тот или иной модуль что-то снижает на 50%, то при расчетах реальное значение модификатора будет не -0.5, а -1.0 (см. график).

Самый популярный модификатор - щита или корпуса. Базовые значение их сопротивления можно найти  в таблице тактико-технических характеристик, которая есть у каждого корабля и опубликована в вики Star Conflict.
В качестве примера рассмотрим улучшения от Компенсатора столкновений. У нас есть три модуля одинаковой модификации, каждый из которых снижает урон от столкновений на 50%. Мы хотим знать, как изменятся характеристики корабля, когда все три компенсатора будут установлены.

 

Порядок действий:

  • Установим реальное значение параметра. -1.0.
  • Установим базовое значение, которые в данном случае будет равно 100% урона при столкновении.
  • Подставляем значение в формулу
  • Считаем.

Получается, что установка трех компенсаторов столкновений с характеристикой уменьшения урона на 50% снизит получаемый урон до 25%.

В целом, этот механизм подобен механике сопротивления урону.

При текущем сложении эффектов модификаторов удалось достичь того, что ухудшения характеристик не так сильны, как улучшения.
Приглядимся чуть внимательней: “потолок” улучшения параметров намного выше, чем их ухудшения. Благодаря описанному выше, нельзя бесконечно понижать характеристики, используя модификаторы с одинаковыми штрафами.

 

На сегодня - все.

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

Хотелось бы обратить Ваше внимание на тот факт, что сложение модификаторов корректно (логично) работает только в случае, если все модификаторы повышающие или понижающие. В случае одновременного использования как повышающих, так и понижающих модификаторов, логика ломается.

 

 

Рассмотрим пример:

 

Базовое значение максимальной дальности ионного излучателя - 2950 м.

 

Есть 3 модификатора максимальной дальности

  1. нейроконтроллер «Альбатрос» +20%

  2. модуль горизонт +35,8%

  3. дуговой рефлектор -50%

 

Расчитаем mod для каждого модификатора в отдельности:

  1. нейроконтроллер «Альбатрос» 0.2

  2. модуль горизонт 0.358

  3. дуговой рефлектор -1

 

Суммируем mod

0.2 + 0.358 + (-1) = -0.442

 

Матчасть предписывает использовать формулу для варианта mod < 0

2950 / (1 - (-0.442)) = 2950 / 1.442 = 2045.76976

 

Чтобы понять проблему с логикой суммирования при одновременном использовании повышающих и понижающих модификаторов, представим, что у нас 2 модификатора:

  1. +50%

  2. -50%

 

Расчитаем mod для каждого модификатора в отдельности:

  1. 0.5

  2. -1

 

Суммируем mod

0.5 + (-1) = -0.5

 

Таким образом, для того, чтобы скомпенсировать -50% нужен повышающий модификатор +100%.

 

 

Проблема проявляется только при одновременном использовании повышающих и понижающих модификаторов.

Возможное решение проблемы:

достаточно рассчитывать newValue отдельно для понижающих (newValue_negative) и повышающих (newValue_positive) модификаторов, а результирующее значение получать средним арифметическим:

newValue = ( newValue_negative + newValue_positive ) / 2

тогда и логика будет в порядке, и механика для понижающих модификаторов не будет сломана.

Суммируем mod

0.2 + 0.358 + (-1) = -0.442

Матчасть предписывает использовать формулу для варианта mod < 0

2950 / (1 - (-0.442)) = 2950 / 1.442 = 2045.76976

Не правильно. Вы уже использовали правило и второй раз Вам не нужно это правило а просто значени mod нужно свалить в одну кучу. ( думаю понятно написал ![;)](<fileStore.core_Emoticons>/emoticons/002.png) )

P.S. Кстати прикольно выходит. + линейно, а - не линейно, но в реале то + может быть плохо и наоборот ![;)](<fileStore.core_Emoticons>/emoticons/002.png)

Кажется в этот пост закралась ошибка. До графика и включая все вроде окей. А дальше очень странно - то при расчетах реальное значение модификатора будет не -0.5, а -1.0 (см. график).  Вообще то график показывает работу формулы, т.е. не несет практической ценности. И вдруг мы начинаем по этому графику конвертировать модификаторы. При этом какой то идиотизм получается так как -50% превращается в в -1 а -100% в 0!

ВТФ?

Сдается мне что правильный расчет уменьшения дамага от 3х компенсаторов столкновений будет:

100 / (1 - (-0.5 - 0.5 - 0.5) = 100 / 2.5 = 40

Итого мы будем получать 40% дамага.

Нет это тоже не првильно потому что с одним компенсатором будет:

100/(1 + 0.5) = 66 

А должно быть 50 процентов дамага. Тут как раз и получается что нужно сделать из -05 -1.

Но как это делается я не понимаю!

Кто нибудь может разъяснить что такое “реальное значение параметра”  и как его получить?

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

 А эта статья понятна в основном тем, кто уже все это знает)

Надежды рушатся. Захожу на форум только для того, чтобы не пропустить дредноуты.

И тут блог разрабов вылезает, будто патч скоро. Но нет же - ничего нового.

Нет это тоже не првильно потому что с одним компенсатором будет:

100/(1 + 0.5) = 66

1 компенсатор с эффектом -50% повреждений: 100/(1 - (-1)) = 100/2 = 50 - значит будешь получать 50% повреждений.

2 компенсатора с эффектом -50% повреждений: 100/(1 - (-1 + -1)) = 100/3 = 1/3 - значит будешь получать 1/3 повреждений.

3 компенсатора с эффектом -50% повреждений: 100/(1 - (-1 + -1 + -1)) = 100/4 = 25 - значит будешь получать 25% повреждений.

 

Вот возьмем фиоловые компенсаторы -59% повреждений, у них уже mod будут давать не -1, надо считать.

Значение при -59% станет 41% - это newValue. Берём формулку: newValue = baseValue/(1-mod). Отсюдова: mod = 1 - baseValue/newValue.

mod = 1 - 100/41 = -1.439

Теперь можно это заюзать:

2 компенсатора с эффектом -59% повреждений: 100/(1 - (-1.439 + -1.439)) = 100/3.878 = 25.786 - значит будешь получать 25.786% повреждений.

3 компенсатора с эффектом -59% повреждений: 100/(1 - (-1.439 + -1.439 + -1.439)) = 100/5.317 = 18.808 - значит будешь получать 18.808% повреждений.

2 компенсатора, один с эффектом -50%, другой -59% повреждений: 100/(1 - (-1 + -1.439)) = 100/29.078 - значит будешь получать 29.078% повреждений.

 

Сча посчитаю антиконтроль и тему даж запилю))

Вот возьмем фиоловые компенсаторы -59% повреждений, у них уже mod будут давать не -1, надо считать.

Значение при -59% станет 41% - это newValue. Берём формулку: newValue = baseValue/(1-mod). Отсюдова: mod = 1 - baseValue/newValue.

mod = 1 - 100/41 = -1.439

я считаю более простым способом, где меньше вычислений: для -59% имеем

-59/41=-1.439

График соответствия понижающего модификатора и, необходимого для его компенсации, повышающего модификатора.

например:

для компенсации понижающего модификатора 20% нужен повышающий 25%

для компенсации понижающего модификатора 30% нужен повышающий 43%

для компенсации понижающего модификатора 50% нужен повышающий 100%

для компенсации понижающего модификатора 80% нужен повышающий 400%

 

 

С текущей методикой расчёта вы всегда в “минусе” при одновременном использовании повышающего и понижающего модификатора. Учитывая, что очень многие полезные модули имеют понижающий модификатор, вы получаете менее быстрый, менее маневренный, более просаживающийся по энергии корабль.

 

Вот несколько примеров полезных модулей, снижающих ту или иную характеристику, которую часто приходится компенсировать другими, повышающими модулями/имплантами:

Гальванизированная броня

Тяжелая обшивка
Разветвитель проекции щита
Импульсный разрядник
Иридиевый теплоотвод
Мост силовой установки
Дуговой рефлектор
Дефлектор «Сверхновая»
 

ДаешЪ равноправие плюсов и минусов в характеристиках корабля!!! Скажем нет скрытым модификаторам и сложным формулам! Пилоты заслуживают честный обмен!!!

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

Во вторых вы указали 1 против другого. А попробуйте нарисовать график 3 против трёх.

3 полюса то сложаться а с минуссми будет уже пофигу сколько у вас 1 модуль или 3.

Надеюсь я понятно пишу.

никогда не дружил с математикой (((

 

Нет это тоже не првильно потому что с одним компенсатором будет:

100/(1 + 0.5) = 66

1 компенсатор с эффектом -50% повреждений: 100/(1 - (-1)) = 100/2 = 50 - значит будешь получать 50% повреждений.

2 компенсатора с эффектом -50% повреждений: 100/(1 - (-1 + -1)) = 100/3 = 1/3 - значит будешь получать 1/3 повреждений.

3 компенсатора с эффектом -50% повреждений: 100/(1 - (-1 + -1 + -1)) = 100/4 = 25 - значит будешь получать 25% повреждений.

 

Вот возьмем фиоловые компенсаторы -59% повреждений, у них уже mod будут давать не -1, надо считать.

Значение при -59% станет 41% - это newValue. Берём формулку: newValue = baseValue/(1-mod). Отсюдова: mod = 1 - baseValue/newValue.

mod = 1 - 100/41 = -1.439

Теперь можно это заюзать:

2 компенсатора с эффектом -59% повреждений: 100/(1 - (-1.439 + -1.439)) = 100/3.878 = 25.786 - значит будешь получать 25.786% повреждений.

3 компенсатора с эффектом -59% повреждений: 100/(1 - (-1.439 + -1.439 + -1.439)) = 100/5.317 = 18.808 - значит будешь получать 18.808% повреждений.

2 компенсатора, один с эффектом -50%, другой -59% повреждений: 100/(1 - (-1 + -1.439)) = 100/29.078 - значит будешь получать 29.078% повреждений.

 

Сча посчитаю антиконтроль и тему даж запилю))

 

остаётся только 1 вопрос, на примере компенсаторов, возьмем 3 по 50%(считать проще и в итоге у нас получится 12,5% урона

ибо другой должен от получившейся суммы работать,а не от целого числа

ибо другой должен от получившейся суммы работать,а не от целого числа

 

Я подозреваю, что вы о том, что компенсатор -50% и -59% будут считаться отдельно. Если да, то это не так.

Запомните правило: сначала ВСЕ модификаторы складываются (да-да, и импланты с модулями тоже)****, а только потом применяются.

Стоит учесть еще что импланты, некоторые боевые модуля, которые поднимают характеристики исключительно в бою в зависимости от каких либо условий активации(скорость меньше 50% 12тый или домаг 13тый или же поднятия урона или скорости на команднике). Не следует их складывать с уже существующим бонусами на тот или иной параметр. Они применяются “сверху” к уже посчитанным параметрам. Исключение составляют лишь резисты.

Исходя из пояснений модераторов и содержания темы, представленные формулы к графику никакого отношения не имеют, так, только глядя на график я могу сказать, что значение mod, подставляемое в знаменателе при mod<0, = -1, а не -0,5, как я предполагал при расчете компенсаторов столкновения, таким образом без графика я не смогу использовать предоставленные формулы. Отсюда - графикообразующие функции в студию, поскольку, как я понял, именно они определеяют эффективность модулей и реальные значения показателя mod

Исходя из пояснений модераторов и содержания темы, представленные формулы к графику никакого отношения не имеют, так, только глядя на график я могу сказать, что значение mod, подставляемое в знаменателе при mod<0, = -1, а не -0,5, как я предполагал при расчете компенсаторов столкновения, таким образом без графика я не смогу использовать предоставленные формулы. Отсюда - графикообразующие функции в студию, поскольку, как я понял, именно они определеяют эффективность модулей и реальные значения показателя mod

Да все там правильно.

Просто прикалывает другое :

Получается, что установка трех компенсаторов столкновений с характеристикой уменьшения урона на 50% снизит получаемый урон до 25%.

В целом, этот механизм подобен механике сопротивления урону.

При текущем сложении эффектов модификаторов удалось достичь того, что ухудшения характеристик не так сильны, как улучшения.

Типа уменьшение урона это ухудшение характеристики

А теперь скажите как будут работать  адаптивные щиты в 3, 2 экземпляра!

 

Спасибо.

арифметическое сложение

А теперь скажите как будут работать  адаптивные щиты в 3, 2 экземпляра!

 

Спасибо.

А что тут сложного то ?

“Добавляет сопротивление щита и корпуса всем видам урона в количестве 27/33/39/42.9 ед.”

Добавляет т.е. 42.9*3 при т3х щитах.

P.S.

Кстати а кто с адаптивками летает меня всегда мучил вопрос, оно

42.9 и на щит и корпус ( т.е. 42.9/2 на щит и 42.9/2 на корпус ) или на каждый по 42.9 ?