Як досягти балансу в карті - Картобудування - Статьи - Dota Gamers - Pro, Warcraft3, Dota, Статті,

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

Значення одного пвс: 5,3544563483342 Значення однієї ефективної одиниці здоров'я: 0,18159375101708

Ці числа - ідеальні значення для одного пошкодження в секунду (пвс) і для однієї ефективної одиниці здоров'я, точно списані з еталона Blizzard. Вони можуть бути використані, щоб знайти скільки золота потрібно для воїна (не для будівлі) в карті типу "розвиток". Звичайно, є схожі і для інших аспектів, але ці два є найважливішими.

- Обчислити ПВС для піхотинця. Ось формула для того, щоб обчислити кількість ПВС будь-якого воїна: (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 (ідіть, повірте це в РВ).

Втрата - Базовий втрата, кількість кісток, кількість граней у кістки. (Інші фактори, наприклад, здібності або предмети легко можуть сюди включитися)

Ефективні життя - Максимальна кількість життів (базова), базовий захист. (Знову ж таки, при обчисленні цього значення на результат можуть впливати здібності або предмети)

Числа не включають: Радіус (атаки, огляду) Здібності (які більш складні, ніж просто зміна ПВС або життів) Швидкість пересування (відмінну від 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

Перше значення – значення золота, яке потрібно на купівлю воїна (у моєму прикладі піхотинця). Друге - та сама вартість, але для бугая. Це два воїни ближнього бою без будь-яких спеціальних здібностей. Тепер нам потрібно знайти D або Н. Ми отримаємо таке:

Ми виділили 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) для обчислення повної вартості воїна. Щоб це зробити, потрібно знайти модель для кожної функції разом з f(x), що може бути навіть затягуючим справою.

7. Використання магічних чисел у нестандартних картах Отже, числа є константами. Пам'ятаючи, що ми можемо змінити їх, ми також повинні знати, що, змінивши один параметр, доведеться змінювати решту всіх військ. Якщо ви хочете, щоб війська коштували велику кількість золота, ви повинні помножити ваші ціни на 10. Я шанувальник маленьких цін, тому погоджую константи з тими, які я описав у частині 4. Вам не треба створювати війська і використовувати їх для знаходження "Магічних чисел". Ці числа поєднують параметри всіх військ. Сама ідея знаходження чисел прийшла, тому що Blizzard знали, що робили, коли закінчували балансувати WarCraft III.

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

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

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

Використовуючи швидкість атаки башти, можна розрахувати, скільки разів башта зможе атакувати цього монстра. Це значення дорівнює:

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

Знаючи, що значення часу – 4.667 секунд, можна розрахувати А:

Звичайно, якщо біжить один монстр, то вежа буде на ньомусфокусована, але якщо біжать 20 таких монстрів, то вежа буде атакувати 20*1.556 разів, включаючи проміжок між кожним монстром в 2.333 секунди.

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

20 – 1 – 20 секунд мінус одна вже порахована за допомогою 4.667 секунд. Якщо ви зробили так, то було б добре обчислити і вартість вежі за такою формулою:

(Ціна за кількість атак кожної хвилі) + (Ціна максимального пошкодження (крім ПВС))

Звісно ж, дійсна дистанція поразки вежі, якою пробігає монстр, залежить від цього, як гравець поставить вежу. Дистанція між вежами також важлива для TD. Якщо гравець зможе побудувати лабіринт, то дистанція між вежами може бути від (0.8*діаметр) до, напевно, (3*діаметр) (залежить від того, тонкі або масивні вежі).