Как внедрить систему опыта?

14

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

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

RoflcoptrException
источник

Ответы:

14

Вы бы хотели какую-то экспоненциальную кривую, вероятно, что-то вроде:

base_xp * (level_to_get ^ factor)

base_xp - это константа, которая определяет, сколько xp вам нужно, чтобы подняться на уровень.
level_to_get - уровень, к которому вы стремитесь; на уровне 1 это будет уровень 2.
коэффициент - это еще одна константа, которая определяет, какое увеличение xp вам нужно для каждого уровня.

Наличие base_xp 200 и множителя, скажем, 2 дает что-то вроде этого:

введите описание изображения здесь

Принимая во внимание, что base_xp 50 и фактор 2.6 дает:

введите описание изображения здесь

Второй имеет гораздо более низкую начальную скорость XP, но вам нужно больше XP очень быстро.

Что касается монстра XP, это то, что вы хотите проверить. Попробуйте разные значения. Вы хотите что-то не слишком высокое (вы быстро станете одолеть), но не слишком низкое (игроки не хотят размолоть). Подумайте, например, сколько «стандартных» врагов вы бы хотели, чтобы игрок убил на уровне 10-> 11.

Коммунистическая утка
источник
3
Вы можете хотеть более острую кривую, чем те, что здесь. RuneScape , например, имеет очень крутую кривую, почти напоминающую логарифмическую кривую (перевернутая / повернутая, конечно); увидеть его здесь . По крайней мере, по моему личному опыту, кажется, что ОЧЕНЬ хорошо работает, чтобы дать вам много быстрых наград в начале, и к тому времени, как вы достигнете более высоких уровней, вы будете настроены на более длительное время игры, пока последние несколько уровней не уйдут навсегда, но игрок каким-то образом терпит это. 99-е довольно часто, несмотря на STEEP !! кривая, чтобы добраться туда.
Ricket
Я бы, конечно, сказал, что кривые здесь будут неглубокими.
Коммунистическая утка
пожалуйста, не эксп. кривая =, (- выравнивание занимает слишком много времени с ним и тем дольше, чем ближе вы к своей цели, plssss нет =. (
Дейв О.
Линейная линия не будет работать. Если вам нужно на 1000xp больше за уровень, то по мере того, как вы становитесь сильнее, вы обнаружите, что для прохождения уровня требуется все меньше и меньше времени.
Коммунистическая утка
1
Показанная функция ( base_xp * (level_to_get ^ factor)) на самом деле является квадратичной функцией, поскольку level_to_getзначение x, а не фактор, и, если я не ошибаюсь, base_xpдолжно быть добавлено, а не умножено, чтобы перевести функцию вверх? Извините, если я просто привередлив в семантике, я просто хочу убедиться в этом, потому что построение графиков этой функции определенно не даст вам никакой старой экспоненты.
чоки
6

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

Эта статья - подробное описание математики нивелирования в Lineage II. http://web.archive.org/web/20100303164314/http://www.tstonramp.com/~mykel/lineage/

CiscoIPPhone
источник
1
Я не могу высказать этот ответ достаточно. Например, нет никакой причины, по которой должна существовать какая-либо фактическая кривая для разных количеств опыта на уровне, потому что вы можете уменьшить количество опыта, которое дает вам враг, относительно вашего собственного уровня для того же эффекта, но более управляемых чисел. , Нет реальной замены для понимания вашей собственной боевой системы и того, как вы хотите, чтобы игра играла, а затем подгонки системы опыта к этому.
Kylotan
4
Эта ссылка не существует. Вот старая ссылка, которая работает: web.archive.org/web/20100303164314/http://www.tstonramp.com/…
Даниэль Каплан
Именно поэтому мы не ссылаемся на страницы; Вы не можете гарантировать, что они будут существовать всегда. Я опустил голос и отметил ваш ответ.
Krythic
@Krythic Я обновил ссылку.
CiscoIPPhone