Кузница мировСтатьи

Мысли вслух 3. ХР он же опыт.

Автор:

Мысль третья. Опыт

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

Сейчас мы разберем самую сложную и наиболее частую ситуацию - получение опыта за убийство врага. Почему сложную поймете в процессе разбора, а почему частую и так понятно.
Противники вашего персонажа могут быть абсолютно разными: больше, меньше, сильнее, слабее, быстрее, поэтому естественно, что все они не должны приносить персонажу одинаковое количество опыта.
С этой целью, учитывая мощь(здесь имеется ввиду общая оценка существа, его боевой потенциал) существа необходимо построить таблицу опыта.
Примерно так:

таблица опыта | Мысли вслух 3. ХР он же опыт.

Здесь количество опыта берется на основе предполагаемого потенциала. Только от желания геймдизайнера зависит, будет волк сильнее гоблина или гоблин сильнее волка.
НО, боевой потенциал игрока не постоянен. Со временем персонаж становится сильнее, естественно предположить, что чем дальше, тем проще ему будет справляться с одними и теми же противниками. Так же естественно, чтобы такие легкие победы приносили ему меньше опыта.
Необходимо как то учесть соотношение между мощью персонажа и его противника. Нужно использовать еще один показатель. Для этих целей опять может подойти уровень. Если уровень игрока и уровень убитого им существа одинаковый, то игрок получает полное количество опыта. Если уровни отличаются, то вычисление идет по такой формуле:

Количество полученного опыта = БО*( уровень существа/уровень персонажа)

Здесь:
БО – Базовый опыт, то есть количество опыта согласно таблицы

Привожу пример, как эта формула работает
Допустим, персонаж 5 уровня сражается с волком 10 уровня.

Количество полученного опыта = 30 * (10/5) = 60

Как мы видим, в случае победы игрок получит двойное количество опыта.

Теперь обратная ситуация. Персонаж 30 уровня сражается с волком 10 уровня.

Количество полученного опыта = 30 * (10/30) = 10

Соответственно, чем большее преимущество имеет персонаж, тем меньше опыта он получит.

С этим все ясно. Теперь переходим к ситуации посложнее. Допустим, что противников несколько. Понятно, что брать предыдущую формулу не имеет смысла. Ведь справится одновременно с двумя явно сложнее, причем с каждым новым противником сложность увеличивается на порядок.
Здесь можно пойти несколькими путями.


ПЕРВЫЙ


Первый, увеличивать количество опыта согласно количеству врагов. То если в приведенном выше примере напало два волка, то подсчет ведем так:

КПО= (БО*( уровень существа/уровень персонажа))* количество врагов


Здесь КПО - Количество полученного опыта.

Количество полученного опыта = (30 * (10/30))*2 = 20

То есть за каждого волка будет получено 20 опыта.


ВТОРОЙ


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

Весь КПО = Количество полученного опыта * номер врага

Здесь номер врага – порядковый номер врага, убитого до истечения интервала.

Пример:
Персонаж 20 уровня убивает 3 врагов. Все три убийства укладываются в заданный интервал
1.  Орк 13 уровня.
2.  Орк 17 уровня.
3.  Шаман орков 10 уровня.

Считаем, сколько опыта отгребем:

1.  Орк 13 уровня = (100 * (13/20))*1 = 65 опыта

Здесь *1 – это и есть порядковый номер врага.

2.  Орк 17 уровня = (100 * (17/20))*2 = 170 опыта

3.  Шаман орков 10 уровня = (250 * (10/20))*3 = 375 опыта

Как видим, здесь, хоть шаман и был хилым, опыта он принес намного больше.

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

Весь КПО = КПО * (1+(номер врага + интервал времени – прошедшее время)/ интервал времени)

Пример:
Предыдущая ситуация. Добавим, что второй орк был убит спустя 5 секунд после первого, а шаман - спустя 8 после второго орка.

1.  Орк 13 уровня = (100 * (13/20)) = 65 опыта

2.  Орк 17 уровня = (100 * (17/20))*(1+(2+10-5)/10) = 144 опыта

3.  Шаман орков 10 уровня = (250 * (10/20))*(1+(3+10-8)/10) = 187 опыта

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

ТРЕТИЙ

Предыдущий вариант имеет один маленький недостаток.

Пример:
Предыдущая ситуация. Добавим, что вместе с  шаманом мы массовым заклинанием  завалили еще и прятавшихся в кустах 5 волков 10 уровня .


1.  Орк 13 уровня = (100 * (13/20)) = 65 опыта

2.  Орк 17 уровня = (100 * (17/20))*(1+(2+10-5)/10) = 144 опыта

3.  Шаман орков 10 уровня = (250 * (10/20))*(1+(3+10-8)/10) = 187 опыта

4.  Волк 10 уровня = (30*(10/20))*(1+(4+10-0)/10) = 36

5.  Волк 10 уровня = (30*(10/20))*( 1+(5+10-0)/10) = 37

6.  Волк 10 уровня = (30*(10/20))*( 1+(6+10-0)/10) = 39

7.  Волк 10 уровня = (30*(10/20))*( 1+(7+10-0)/10) = 40

8.  Волк 10 уровня = (30*(10/20))*( 1+(8+10-0)/10) = 42

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


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

Боевая сила существа = Базовый опыт * уровень

1.  Орк 13 уровня = (100 * 13) = 1300

2.  Орк 17 уровня = (100 * 17) = 1700

3.  Шаман орков 10 уровня = (250 * 10) = 2500

4.  Волк 10 уровня = (30*10) = 300

5.  Волк 10 уровня = (30*10) = 300

6.  Волк 10 уровня = (30*10) = 300

7.  Волк 10 уровня = (30*10) = 300

8.  Волк 10 уровня = (30*10) = 300

Теперь, суммируя эти значения, получаем Боевую силу всей группы

Боевая сила группы = 1300+1700+2500+300*5 = 7000


Теперь количество полученного опыта для каждого существа вычисляем по формуле, учитывающей силу существа пропорщионально силе всей группы.

КПО = БСС/ уровень персонажа * БСГ / БСС_МАКС/

Здесь:
БСС – боевая сила существа
БСГ – боевая сила группы
БСС_МАКС – боевая сила самого сильного существа в группе, поскольку во многом сила группы зависит от самого сильного.


1.  Орк 13 уровня = (1300/20) * (7000/2500)  = 182 опыта

2.  Орк 17 уровня = (1700/20) * (7000/2500) = 238 опыта

3.  Шаман орков 10 уровня = (2500/20) * (7000/2500) = 350 опыта

4.  Волк 10 уровня = (300/20) * (7000/2500) = 42

5.  Волк 10 уровня = (300/20) * (7000/2500) = 42

6.  Волк 10 уровня = (300/20) * (7000/2500) = 42

7.  Волк 10 уровня = (300/20) * (7000/2500) = 42

8.  Волк 10 уровня = (300/20) * (7000/2500) = 42

Правда эта формула не учитывает интервал и последовательность убиения, но думаю, что добавить не трудно.


КУЧЕЙ НА КУЧУ

Ну, с этим тоже вроде разобрались. Теперь рассмотрим обратную ситуацию. Допустим, вы с напарником атакуете одного врага. В этом случае получить полное количество опыта будет нечестно.
Как поступить? Да все просто - поделить количество опыта пропорционально нанесенному урону:

Количество опыта = БО * (количество нанесенного урона/жизнь существа)

То есть пример:
ПротивникШаман орков – 10 уровень – 300 жизни
Персонаж - 10 уровня нанес 200 урона
Напарник - 15 уровня – 100 урона

Считаем для персонажа:

Количество опыта = 250 *(200/300) = 166 опыта

И используем полученное количество опыта в следующей формуле:

Количество полученного опыта = (166 * (10/10) = 166

Считаем для напарника:

Количество опыта = 250 *(100/300) = 83 опыта
Количество полученного опыта = (83 * (10/15) = 55

Кроме всего этого также не лишним будет учесть ваше численное превосходство:

Количество опыта = (БО * (количество нанесенного урона/жизнь существа))/1+количество напарников – количество врагов.

Эта формула подойдет для ситуации толпа на толпу.
В общем, на основе изложенного здесь можно придумать еще много чего.

Надеюсь мои мысли будут кому-то полезны. Я не претендую на абсолютную непогрешимость и полную правоту. Это всего лишь мои мысли, и как и любые другие, они могут быть ошибочны. Моя цель, всего лишь подтолкнуть вас в верном направлении.

18 июля 2010