Группа guest
Разработка нового планетарного уничтожения.
Вариант реализации. Теория.
В момент начала процесса ПУ расчитываются следующие параметры:
Tb - так называемое базовое время ПУ, абстрактный параметр, который рассчитывается по формуле (1):
Tb=D^k1+(D^k2)/(dmg*[1+tech*bonus]*N)^(1/2) минут, где
D - диаметр планеты,
k1 - параметр, позволяющий регулировать минимальное время Tb, для того, чтобы малые планеты не могли быть уничтожены слишком быстро. Мною было принято значение 0.6.
k2 - параметр, регулирующий "прочность" планеты. Мною был принят равным 1.7.
dmg - базовый урон за раунд юнитов с ПУ.
tech - уровень бонусной технологии для ПУ (Гравитационная, Мантрид, Спецвооружение тосов).
bonus - размер бонуса этой технологии.
N - число юнитов ПУ.
После этого начинается отсчет фактического времени ПУ - Tf.
Процент накопления шанса ПУ рассчитывается по формуле (2):
P=100*(Tf/Tb)/(Tf/Tb+k3), где
k3 - параметр, регулирующий скорость увеличения вероятности ПУ. Мною принят равным 0.1.
Tf и Tb подставляем в минутах.
Вариант реализации совместного ПУ.
В момент подключения нового игрока другим типом юнитов к уже происходящему процессу ПУ происходит пересчет параметра Tb по формуле (3):
Tbn=D^k1+(D^k2) / ((dmg1*[1+tech1*bonus1]*N1)^(1/2)+(dmg2*[1+tech2*bonus2]*N2)^(1/2)), где индексы переменных означают их принадлежность к первому или второму игроку.
Фактическое время перерасчитывается по формуле:
Tfn=Tbn*(Tf1/Tb1+Tf2/Tb2), где
Tb1 и Tb2 расчитываются по формуле (1) для флотов первого и второго игрока.
Tf1 и Tf2 - время удержания флотов ПУ первым и вторым игроками.
Далее пересчитанные параметры подставляем в формулу (2) и получаем:
p=100*(Tfn/Tbn)/(Tfn/Tbn+k3), %
Аналогичным образом поступаем с последующими вошедшими в бой союзными уничтожителями. Не союзные уничтожители не смогут иметь возможность совместного ПУ.
От идеи с как таковой "прочностью" планеты в явном виде пришлось отказаться так как она не позволяет реализовать нелинейное накопление.
При значении параметра k3=0.1 время накопления шанса ПУ до 90% равняется Tb, а для накопления шанса до 96% время удержания должно составить 2.5Tb.
С лунным уничтожением можно применять этот же принцип.
Просто потребуется изменить три параметра k1, k2 и k3. В моем варианте предлагаю значения k1=0.4; k2=1.4; k3=0.06.
Единственной проблемой в этом варианте ЛУ по-моему будет значение dmg узурпаторов, его придется прописывать отдельно как [урон за раунд]/4 для текущих реалий. А если ориентироваться на будущее, когда введут крафт компонентов кораблей, можно будет избавиться и от этого исключения.
Шанс обратной волны и для ПУ и для ЛУ будет расчитываться по формуле (4):
z=(100-p)/(log(N*C/100000+1)) %, где
N - число юнитов.
С - цена одного юнита в эквиваленте веспа.
Вовзможный вариант для совместных ЛУ и ПУ (но он мне пока что самому не нравится, возможно изменю):
z=(100-p)/log(summ(Ni*Ci/100000+1)) %, где
Ni - число уничтожителей i-го игрока.
Ci - стоимость в эквиваленте веспа юнитов i-го игрока.
Растянутое во времени ПУ и ЛУ в будущем проекта, как я понял, неизбежно, поэтому ВМС прошу оценить именно вариант реализации, а не саму идею растянутых во времени миссий.
Примеры и графики залью в ближайшее время.
Вариант реализации. Теория.
В момент начала процесса ПУ расчитываются следующие параметры:
Tb - так называемое базовое время ПУ, абстрактный параметр, который рассчитывается по формуле (1):
Tb=D^k1+(D^k2)/(dmg*[1+tech*bonus]*N)^(1/2) минут, где
D - диаметр планеты,
k1 - параметр, позволяющий регулировать минимальное время Tb, для того, чтобы малые планеты не могли быть уничтожены слишком быстро. Мною было принято значение 0.6.
k2 - параметр, регулирующий "прочность" планеты. Мною был принят равным 1.7.
dmg - базовый урон за раунд юнитов с ПУ.
tech - уровень бонусной технологии для ПУ (Гравитационная, Мантрид, Спецвооружение тосов).
bonus - размер бонуса этой технологии.
N - число юнитов ПУ.
После этого начинается отсчет фактического времени ПУ - Tf.
Процент накопления шанса ПУ рассчитывается по формуле (2):
P=100*(Tf/Tb)/(Tf/Tb+k3), где
k3 - параметр, регулирующий скорость увеличения вероятности ПУ. Мною принят равным 0.1.
Tf и Tb подставляем в минутах.
Вариант реализации совместного ПУ.
В момент подключения нового игрока другим типом юнитов к уже происходящему процессу ПУ происходит пересчет параметра Tb по формуле (3):
Tbn=D^k1+(D^k2) / ((dmg1*[1+tech1*bonus1]*N1)^(1/2)+(dmg2*[1+tech2*bonus2]*N2)^(1/2)), где индексы переменных означают их принадлежность к первому или второму игроку.
Фактическое время перерасчитывается по формуле:
Tfn=Tbn*(Tf1/Tb1+Tf2/Tb2), где
Tb1 и Tb2 расчитываются по формуле (1) для флотов первого и второго игрока.
Tf1 и Tf2 - время удержания флотов ПУ первым и вторым игроками.
Далее пересчитанные параметры подставляем в формулу (2) и получаем:
p=100*(Tfn/Tbn)/(Tfn/Tbn+k3), %
Аналогичным образом поступаем с последующими вошедшими в бой союзными уничтожителями. Не союзные уничтожители не смогут иметь возможность совместного ПУ.
От идеи с как таковой "прочностью" планеты в явном виде пришлось отказаться так как она не позволяет реализовать нелинейное накопление.
При значении параметра k3=0.1 время накопления шанса ПУ до 90% равняется Tb, а для накопления шанса до 96% время удержания должно составить 2.5Tb.
С лунным уничтожением можно применять этот же принцип.
Просто потребуется изменить три параметра k1, k2 и k3. В моем варианте предлагаю значения k1=0.4; k2=1.4; k3=0.06.
Единственной проблемой в этом варианте ЛУ по-моему будет значение dmg узурпаторов, его придется прописывать отдельно как [урон за раунд]/4 для текущих реалий. А если ориентироваться на будущее, когда введут крафт компонентов кораблей, можно будет избавиться и от этого исключения.
Шанс обратной волны и для ПУ и для ЛУ будет расчитываться по формуле (4):
z=(100-p)/(log(N*C/100000+1)) %, где
N - число юнитов.
С - цена одного юнита в эквиваленте веспа.
Вовзможный вариант для совместных ЛУ и ПУ (но он мне пока что самому не нравится, возможно изменю):
z=(100-p)/log(summ(Ni*Ci/100000+1)) %, где
Ni - число уничтожителей i-го игрока.
Ci - стоимость в эквиваленте веспа юнитов i-го игрока.
Растянутое во времени ПУ и ЛУ в будущем проекта, как я понял, неизбежно, поэтому ВМС прошу оценить именно вариант реализации, а не саму идею растянутых во времени миссий.
Примеры и графики залью в ближайшее время.
7 Марта 2017 20:14:31
MnemosyneKsailocent, выкручиванием k3 регулируем рабочий участок функции, я же в основном посте написал. Если потребуется более "пологая" функция попросту будем увеличивать параметр k3.
В основном посте указан этот момент, а именно:
Вот лучше откомментируй формулу расчета z. Стоит в нее добавить время удержания, которое снижает вероятность обратной волны?
С этим согласен, я просто привел пример что данную схему можно адаптировать и для ЛУ.
Что именно непонятно?
Допустим, изменяем формулу расчета z следующим образом:
z=(100-p)/(log(N*C/1000000+1))
При этом будем иметь, что при простое крайне малого времени, даже самым большим количеством флота будем иметь слишком большой шанс обратной волны.
Больше примеров задавайте.
Цитата: MnemosyneKsailocent
отсюда следует вывод что реально надо будет простоять на координатах базовое время, а дальше просто взорвать едва прийдет снос (стоять же дльше трех базовых времене особого смысла все равно не будет)
В основном посте указан этот момент, а именно:
Цитата: Ulrezaj
При значении параметра k3=0.1 время накопления шанса ПУ до 90% равняется Tb, а для накопления шанса до 96% время удержания должно составить 2.5Tb.
Вот лучше откомментируй формулу расчета z. Стоит в нее добавить время удержания, которое снижает вероятность обратной волны?
Цитата: VasyaMalevich
Лунное уничтожение пока можно оставить какое есть, менять только непосредственно ПУ.
С этим согласен, я просто привел пример что данную схему можно адаптировать и для ЛУ.
Цитата: VasyaMalevich
Формулы хорошие, только я ничего не понял.
Что именно непонятно?
Цитата: MnemosyneKsailocent
при названых параметрах достаточно простоять десятую часть времени(речь идет о базовом времени пу) чтобы получить 50% шанс пу, простояв сотую часть времени мы получаем 10%
Цитата: Ulrezaj
z=(100-p)/(log(N*C/100000+1))
Допустим, изменяем формулу расчета z следующим образом:
z=(100-p)/(log(N*C/1000000+1))
При этом будем иметь, что при простое крайне малого времени, даже самым большим количеством флота будем иметь слишком большой шанс обратной волны.
Больше примеров задавайте.
10 Марта 2017 16:33:59
«
· Дискуссионный ТОП-клуб ·
»
Информация
Вы не авторизованы
1 чел. читают эту тему (гостей: 1)
Пользователей: 0 Claude Bot