Найкращий спосіб зробити висновок у цьому плані - як і більшість речей у розробці гри - спочатку подумати про те, як ви хочете грати , а потім скласти математику, в результаті якої така гра буде грати.
Як довго ви хочете, щоб гравець грав на кожному рівні?
У рольовій RPG, орієнтованій на сюжет, ви, ймовірно, хочете тримати рівень рівня як постійний потік винагороди та піднімати рівень гравця кожні кілька хвилин протягом усієї гри. Швидкість вирівнювань залишається постійною, тому ваша хвилина на рівень функції є постійною ( time = c
).
У більш орієнтованій на досягнення грі, наприклад, MMORPG, ви, як правило, хочете, щоб нівельори були частими для початківців, але ставали все рідше і рідше, чим далі гравець прогресує. У такому випадку ваша хвилинна функція на рівні буде багаточленною ( time = Level ^ c
) або навіть експоненціальною ( time = c ^ Level
). Однак прийняття рівня рівня як такої в експоненціальній формулі, як правило, занадто екстремально. Це може бути хорошою ідеєю, щоб розділити його на постійне, щоб зробити збільшення набагато повільніше, зберігаючи його експоненціальним ( time = c1 ^ (1 + Level / c2)
).
Я б порекомендував вам скористатися електронною таблицею для стискання чисел. Створіть таблицю зі стовпцем із цифрами від 1 до очікуваного максимального рівня та другим стовпцем із формулою рівня. Це легко дозволяє експериментувати з різними формулами, щоб знайти числа, які вам подобаються. Може бути, ви отримаєте кращі результати, поєднуючи многочлен із експоненціальним компонентом?
Пам'ятайте, що ви бачите тут чистий час бою . Ігровий час гравець активно набирає очки досвіду. Він не рахує часу, коли гравець проводить розмову з NPC, порівнюючи їх обладнання та виконує інші завдання, які безпосередньо не викликають прогрес.
У своїй поточній грі (MMORPG) я придумав формулу seconds(level) = 10 ^ (1 + Level / 20)
. Перші кілька рівнів займають лише секунди фактичного бою (дуже миттєве задоволення під час навчального етапу), рівні 20 - 40 займають хвилин, у 50-х роках вони стають годинами на рівень, а коли наближається до максимального рівня 100, це потрібно цілі тижні, щоб побачити прогрес.
Наскільки різною має бути винагорода за досвідченого ворога?
Навіть коли ваші вороги не мають явного (або значущого) рівня статистики, вам захочеться спроектувати їх як збалансовану задачу для певного рівня символів. Але наскільки більше досвіду повинен порекомендувати ворога за нагороду рівня 40, ніж один, рекомендований для рівня 30?
Відповідь на це питання тісно пов’язана з тим, наскільки сильніший персонаж отримує за рівень і наскільки далеко ви хочете дозволити їм випереджати чи відставати від поточних ворогів з їх рівнем характеру.
Деякі ігрові системи, як, наприклад, World of Warcraft, роблять безглуздо вести будь-який бій з ворогом трохи нижче або вище рівня характеру гравця. Все, що лише на кілька рівнів вище, знищить гравця, все, що знаходиться на декількох рівнях нижче, взагалі не буде жодним викликом (і жодної винагороди).
Контрприкладом може бути серія Disgaea. У цій грі ви можете легко перемогти ворогів, у кілька разів перевищивши рівень власних персонажів, коли ви граєте в нього розумно.
Чим більш обмежувальним ви хочете бути у рівні рівня, яка є справедливою боротьбою для гравця, тим більше вам потрібно переконатися, що гравець не відстає або випередить рівень ворогів, з якими зараз бореться. Коли гравець відстає від ворогів, гра стане неприємно важкою без шліфування. Коли гравець випередить монстрів, гра стане занадто легкою і нудною.
Хороший спосіб утримати гравця у рівні рівня - збільшити нагороду досвіду за рівень. З одного боку, це легко дозволить гравцеві наздогнати, коли вони трохи нижче рекомендованого рівня. З іншого боку, це не дозволить їм ефективно піднятися на слабких ворогів, не переходячи до більш важкої області.
Поліноміальна крива exp ( exp = Level ^ c
) зазвичай працює добре. Чим більше значення c
, тим більше ти змушуєш гравця в нинішньому рівні рівня монстрів, з якими вони б'ються.
Майте на увазі, що вороги, яким потрібно більше часу, щоб перемогти, також повинні пропонувати пропорційно більше досвіду. Бій, який займає 20 секунд, повинен дати вдвічі більше досвіду, ніж той, який займає лише 10 секунд. Це поширює формулу на exp = (Level ^ c) * minutes_per_combat
.
Кінцева формула досвіду на рівень
Остаточну формулу тепер можна отримати з двох. experience per level
Є time per level in minutes
помноженим з experience gained per minute
. Тому просто візьміть дві формули, які ви придумали в останніх двох розділах, і помножте їх. Ось це: Ваша формула досвіду на рівні.
З поліноміальним збільшенням часу на рівень формула була б
exp(level) = (level ^ c1) * (level ^ c2)
де
c1
залежить від того, як довго ви хочете пройти кожен рівень
c2
залежить від того, наскільки близько ви хочете утримати гравця на рівні ворогів, з якими вони б'ються
Що може піти не так?
Навіть найкраща продумана концепція не може замінити належне гра. Якщо у ваших іграх виявиться, що середні гравці просуваються набагато швидше або повільніше, ніж ви хочете, це звичайно знак того, що ви завищуєте або недооцінюєте рекомендовані рівні своїх ворогів і скільки часу потрібно, щоб середній гравець вбив їх. Спробуйте разом зі своїми гейтестерами проаналізувати, яких ворогів настільки важко вбити на рівні персонажа, і відповідно відрегулюйте їх значення exp або статистику.