Вы находитесь на сайте модмейкеров.
Среда, 04.12.2024, 22:16
Статьи Warcraft3 World Editor

Как достичь баланса в карте

Когда я говорю о балансе, я не имею в виду сделать достаточно сильными воинов с одинаковой стоимостью. Это очень просто. Есть даже программы, которые делают такие вещи. Я хочу узнать, сколько воин должен будет стоить, если я поменяю какую-либо его характеристику (защиту, атаку и.т.д.) или же сколько должен будет стоить воин изначально - в любой карте. Эта статья поможет вам освоить правильную оценку стоимости юнита в любом жанре карт.


Оглавление:

  • 1. Теория
  • 2. Магические числа
  • 3. Как использовать числа
  • 4. Ограничения
  • 5. Как найти магические числа
  • 6. Как найти другие магические числа
  • 7. Использование магических чисел в нестандартных картах
  • 8. Использование магических чисел в картах типа TD
  • 9. Вывод


1. Теория
Теория этой статьи заключается в том, что для каждого воина (даже здания) каждый аспект (повреждение, жизнь, скорость, способности и.т.д.) - это часть стоимости этой боевой единицы. Если знать, какова эта часть, то можно определить, как два числа друг к другу относятся (как найти одно из другого).
Другими словами, нам надо найти константу, которая, в зависимости от силы атаки или здоровья воина будет возвращать, сколько тратится золота на этот аспект.

2. Магические числа
Я нашёл факторы для двух аспектов воина. Я назову их "Магические числа". Сами они даны ниже:

Значение одного пвс: 5,3544563483342
Значение одной эффективной единицы здоровья: 0,18159375101708

Эти числа - идеальные значения для одного повреждения в секунду (пвс) и для одной эффективной единицы здоровья, в точности списанные с эталона Blizzard. Они могут быть использованы, чтобы найти, сколько золота нужно для воина (не для здания) в карте типа "развитие". Конечно, есть похожие и для других аспектов, но эти два являются важнейшими.

3. Как использовать числа
Теперь я объясню, как использовать магические числа для вычисления количества золота. В зависимости от того, каков ваш опыт в Редакторе и математике, вы можете не читать этот пункт.
Итак, допустим, мы хотим вычислить стоимость пехотинца. Для этого нам надо сделать следующее:

- вычислить ПВС для пехотинца. Вот формула для того, чтобы вычислить количество ПВС любого воина:
(2*Базовый урон+Кол-во костей+Кол-во граней у кости)/(Время перезарядки*2)

Для пехотинца:
(2*11+1+2)/(2*1.35) = 25/(2*1.35) = 9.26 (округлённое число, более точно можете получить, посчитав на калькуляторе)

- вычислить кол-во эффективных жизней у воина. Вот формула для того, чтобы вычислить кол-во эффективных жизней любого воина:
Кол-во жизней*(Защита*0.06+1)
Примечание: значение "0.06" - "Увеличитель брони".

Для пехотинца:
420*(2*0.06+1) = 420*1.12 = 470.4

Верьте мне или нет, но дальше - самая сложная часть.
Значение ПВС для любой боевой единицы равно:
ПВС*Магическое число ПВС (его я дал в пункте 2.)

Для пехотинца:
9.26*5.35 = 49.58 (значение золота для наносимых пехотинцем повреждений)

Значение эффективной жизни для любой боевой единицы равно:
Кол-во жизней*Магическое число жизней (другое число в пункте 2.)

Для пехотинца:
470.4*0.18 = 85.42 (значение золота для кол-ва жизней пехотинца)

Итак, стоимость пехотинца будет равна 85.42 + 49.58 = 135.00 ед. золота. После того, как мы использовали магические числа Blizzard, мы должны увидеть, такая же ли стоимость у пехотинца в игре. Обещаю, дам печенюшку любому, кто покажет мне не обработанный фотошопом скриншот, в котором будет сказано, что стоимость пехотинца по умолчанию не равна 135 (идите, поверьте это в РО).

4. Ограничения
Я знаю, что пример работы магических чисел на пехотинце не очень показателен. Однако этот метод применялся и к другим войскам. Подробнее обо всём этом в пункте 5.
Здесь я опишу несколько важных вещей, которые нужно иметь в виду при вычислении магических чисел.
Они чётко привязаны к лимиту свойств воина:

Урон - Базовый урон, кол-во костей, кол-во граней у кости.
(Другие факторы, например способности или предметы легко могут сюда включиться)

Эффективные жизни - Максимальное кол-во жизней (базовое), базовая защита.
(Опять же, при вычислении этого значения на результат могут влиять способности или предметы)

Числа не включают в себя:
Радиус (атаки, обзора)
Способности (которые более сложны, чем просто изменение ПВС или жизней)
Скорость передвижения (отличную от 270, или какую-либо скорость, использованную вами при вычислении)
Тип перемещения (Парящий, наземный, летающий, земноводный и.т.д.)
Улучшения (они сбалансированы между собой)

Для этих значений стоимость вы можете определить сами. В них обычно есть специальный фактор, на который надо умножить базовое значение, которое вы нашли для воина (так, как мы нашли его для пехотинца) или, в некоторых случаях, просто умножить базовое значение на значение ПВС или эффективных жизней (примеры ищите в пункте 8).
Также расскажу о "Феномене дерева". Похоже, что дерево - это то же самое, что и золото, а в игре оно лишь для разнообразия. Например, если боевая единица в карте стоит 500 ед. золота, тогда можно разбить её цену на 300 золота и 200 дерева, или другую комбинацию, которая вам больше нравится, это будет одно и то же.

5. Как найти магические числа
Чтобы понять то, что будет здесь написано, нужно иметь хотя бы базовые знания математики (однако больше - лучше).
Итак, как вы убедились, два "Магических числа" - это константы (постоянные значения). Чтобы их найти, нужно поставить себя в моё положение, перед тем, как я их нашёл. Поэтому дадим им имена в зависимости от их значений:

D - значение одного ПВС.
H - значение одной эффективной жизни.

Наша задача - найти эти константы по известным значениям. Чтобы это сделать, надо сделать 2 заключения:
- Эти числа - заведомо константы. Единственное исключение - f(x) = kx, где f(х) - значение золота, которое нужно на покупку одного воина, k - константа, а х - значение параметра у воина.
- Константы всегда равны для всех юнитов.

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

D*9.26 + H*470.4 = 135
и
D*12.19 + H*742 = 200

Первое значение - значение золота, которое нужно на покупку воина (в моём примере пехотинца). Второе - та же самая стоимость, но для бугая. Это 2 воина ближнего боя без каких-либо специальных способностей.
Теперь нам нужно найти D или Н. Мы получим следующее:

D = 14.58 – 50.80*H

Мы выделили D из первого уравнения (для пехотинца). Теперь просто сделаем уравнение с одной неизвестной. Получим:

(14.58 – 50.80*H)*12.19 + H*742 = 200 => H = 0.1815

Одно из значений найдено. Второе найти легче, когда мы нашли Н. Просто подставим его в исходное уравнение и выделим из него D.

D*9.26 + 0.1815*470.4 = 135 => D*9.26 = 135 - 0.1815*470.4 => D = (135 - 0.1815*470.4)/9.26 = 5.354

Теперь мы нашли оба значения. Я доказал, что эти значения верны для пехотинца и бугая, но для других войск они близки, однако не абсолютно точны.

6. Как найти другие магические числа
В первую очередь заметьте, что "Магические числа" - константы в функции. В пункте 2 я написал номера в форме:

f(x) = kx, где f(х) - значение золота, которое нужно на покупку одного воина, k - константа, а х - значение параметра у воина.

Я решил не делать этого, чтобы избежать плохих отношений с людьми, которые не разбираются в математике. Всё же из-за этого может закрасться сомнение, что "отношения" - это числа с одной функцией. Это не так, разные значения - разные функции. Также я считаю, что одна функция относится к другой. Я покажу, как они относятся друг к другу немного позже.
Чтобы найти значения других аспектов воина, нужно быть уверенным, что они компенсируют друг друга у каждого воина. Например, если вы хотите узнать, сколько будет стоить возможность летать, то должны ли вы использовать значения горгульи ((ПВС и эффективные жизни) + (значение полёта) = (значение blizzard для горгульи))?
Нет, этого делать нельзя, так как скорость горгульи равна 350, а это значение отлично от 270 (которое мы использовали как базовое при нахождении констант для пехотинца и бугая, они были в уравнении) и должна быть компенсирована так же, как и дальнобойность. Поэтому здесь будет уравнение не с одним, а с тремя неизвестными.
И сама форма уравнения не такая лёгкая, как для двух значений - ПВС и эффективных жизней.
Как я уже заметил в начале этого пункта, f(x) = значение золота, которое тратится на покупку одного воина определённого типа, может содержать множество функций. Вот, как будет выглядеть решение задачи для горгульи. Заметьте, х здесь выражает разные переменные.

D(d) = стоимость ПВС, d = ПВС.
H(h) = стоимость эффективных жизней, h = эффективная жизнь.
S(x) = стоимость скорости - базовая скорость.
R(x) = стоимость дистанционной атаки
K1 = константа полёта, обычно между 1 и 2.

f(x) = K1*S(R(D(d))+H(h))

Ещё много функций может быть добавлено в f(x) для вычисления полной стоимости воина. Чтобы это сделать, вам нужно найти модель для каждой функции вместе с f(x), что может быть даже затягивающим делом.

7. Использование магических чисел в нестандартных картах
Итак, числа являются константами. Помня, что мы можем изменить их, мы также должны знать, что изменив один параметр, придётся менять остальные у всех войск. Если вы хотите, чтобы войска стоили большое количество золота, вы должны умножить ваши цены на 10. Я поклонник маленьких цен, поэтому согласовываю константы с теми, которые я описал в части 4.
Вам не надо создавать войска и использовать их для нахождения "Магических чисел". Эти числа объединяют параметры всех войск. Сама идея нахождения чисел пришла, так как Blizzard знали, что делали, когда заканчивали балансировать WarCraft III.

8. Использование магических чисел в картах типа TD
В картах типa Tower Defence (TD) сбалансировать башни легко. Балансировать их легко потому, что у атакующих всего один аспект, регулирующий баланс - эффективные жизни, а для защитников вообще не надо об этом думать. Это, конечно, не так, если атакующие могут атаковать башни. Также количество переменных для каждой волны очень малое (очень предсказуемый тип игры по её правилам боя).
Для башен вы просто должны установить цену за ПВС. После этого можно подумать о дальности атаки. Не думайте о ней (дальности атаки) как о значении, думайте о ней, как о факторе, который поможет определить, сколько башня может атаковать бегущего монстра. Если вы предположите, что длина линии равна диаметру (дальность*2) круга, который обстреливает башня, тогда вы сможете рассчитать время.

t = d/v

t - время, d - дистанция, а v - скорость (находимая по формуле d\t. В нашем случае - это скорость бегущего монстра.)

Итак, если дальность атаки башни - 700 (величина, измеряемая в пикселях), когда монстр бежит по прямой линии со скоростью 300 (пикселей в секунду), тогда башня сможет его обстреливать на протяжении:

t = 2*700/300 = 2 + (1/3) = 4.667 секунд.

Используя скорость атаки башни, можно рассчитать, сколько раз башня сможет атаковать этого монстра. Это значение равно:

A = t/s

А - количество атак, t - время нахождения монстра под обстрелом, s - скорость атаки башни.

Зная, что значение времени - 4.667 секунд, можно рассчитать А:

4.667/1.5 = 3.111

Конечно, если бежит один монстр, то башня будет на нём сфокусирована, но если бегут 20 таких монстров, то башня будет атаковать 20*1.556 раз, включая промежуток между каждым монстром в 2.333 секунды.Чтобы более обобщить это значение, скажу, что одна секунда позволит:

(4.667 + (20 - 1))/1.5 = 15.78 атак.

20 - 1 - 20 секунд минус одна уже посчитанная с помощью 4.667 секунд.
Если вы сделали так, то было бы хорошо вычислить и стоимость башни по следующей формуле:

(Цена за количество атак каждой волны) + (Цена максимального повреждения (кроме ПВС))

Конечно же, действительная дистанция поражения башни, через которую пробегает монстр, зависит от того, как игрок поставит башню. Дистанция между башнями тоже важна для TD. Если игрок сможет построить лабиринт, то дистанция между башнями может быть от (0.8 * диаметр) до, наверное, (3 * диаметр) (зависит от того, тонкие или массивные башни).

9. Вывод
Теперь подведу итоги мною сказанного. Основная цель этой статьи - определить основные аспекты воина и их отношение к порциям золота, которое платится за одного воина, следовательно, вся цена находится уравнением. Я дал несколько указаний для того, чтобы можно было найти эти отношения. Я также нашёл некоторые из них, а именно отношения ПВС и эффективных жизней с их стоимостью.
В других пунктах я показывал вам, как можно сбалансировать карту. В части 8 я описал баланс TD.
Итак, вы только что прочитали последнюю строчку этой статьи. Спасибо всем за внимание.

Категория: World Editor | Добавил: Stinger (10.04.2011) | Автор: Неизвестен
Просмотров: 2489 | Рейтинг: 5.0/2
Всего комментариев: 0
ComForm">
avatar
W3 - Всё для картостроения. 2024-2010 |