Сразу вставлю небольшое пояснение: я не гуру гейм-дизайна и не претендую на эту роль, помните, что ваша игра, в первую очередь, — это ваше творение и делайте её так, как хочется именно вам. Но всё же к некоторым моментам из этой статьи стоит прислушаться (как минимум задать себе вопросы). Во–первых, чтобы игрокам было чуточку приятнее играть в вашу игру. Во–вторых, для того, чтобы посмотреть на некоторые аспекты с других углов.
Бои в JRPG занимают львиную долю геймплея и, зачастую, у новичков возникают трудности. Как же сделать врагов так, чтобы их было интересно убивать?
В этой статье я постараюсь вкратце ответить на ваш вопрос исходя из своего опыта. Но лучше всего, конечно, поиграть как в представителей старой школы (а–ля Final Fantasy до X части, Breath of Fire 3 & 4, Jade Cocoon, Legend of Dragoon, The Lost Odyssey и другие), так и в более современные игры (Final Fantasy начиная с XII части и VII Remake, The Last Remnant, Monster Hunter и другие). На самом деле, список JRPG очень большой, поэтому давайте перейдем к сути.
Для начала я хочу провести небольшой экскурс в 3 игры.
Сразу извиняюсь за качество изображений!
Я думаю все, кто так или иначе играл в старые JRPG, не мог пройти мимо Final Fantasy 7. Это такой яркий представитель старой школы JRPG, когда жанр был ещё в новинку (или можно сказать, когда жанр вышел за пределы своей аудитории и начал заинтересовывать людей «со стороны»). Боссы, как правило, обладают несколькими атаками и
огромным количеством здоровья. И здесь мы встречаемся с первой проблемой, с которой сталкиваются и новички.
Запомните, что
больше здоровья не означает высокую сложность. Большим количеством здоровья вы лишь увеличиваете время боя с врагом, у которого всего несколько механик. Игрокам (не хардкорным) будет просто скучно проходить вашего босса, а в голове будет мысль: «поскорее бы пройти этого босса».
Ещё один хороший пример того, как большое количество здоровья не равняется более высокой сложности боя.
Возьмите в пример босса Yiazmat из Final Fantasy XII. У него (если я не ошибаюсь) 50 миллионов здоровья и всего несколько механик. Убийство этого босса может занять у вас от одного часа (если вы очень хорошо прокачаны и хорошо разбираетесь в игре) до 12 часов. Спасибо разработчикам хотя бы за то, что они разрешили делать перерывы и выходить из боя с сохраненным прогрессом, чтобы можно было восполнить свои запасы расходников.
Я понимаю, что подобные боссы рассчитаны далеко не для всех, а именно для «хардкорной» аудитории и что они сделаны специально настолько «сложными» (а вся их сложность заключается лишь в долгом убийстве), но парадокс в том, что в той же самой серии Final Fantasy есть очень интересный секретный босс.
Знакомьтесь, это Ozma из Final Fantasy IX. Что её отличает от двух других боссов?
Если у Emerald Weapon из Final Fantasy VII ровно 1 миллион здоровья, а у Yiazmat около 50 миллионов, то у Ozma всего лишь 55535. Да, всего 55 тысяч у секретного босса, которого можно убить ближе к концу игры. Более того, это не самое большое количество здоровья в игре у босса.
Как вы можете видеть, в первых двух случаях разработчики стараются удержать игроков как можно дольше с помощью большого количества здоровья, ведь одолев этих врагов игрок получит щедрое вознаграждение (а награда и усиление персонажа — это тоже одна из основ в JRPG). Но, как мне кажется, такой подход очень нечестен по отношению к игрокам.
Заставлять часами (в прямом смысле слова) бить одного и того же врага, который по сути использует 2—4 разных атаки в определенной последовательности, — очень жестоко.
Как мы можем исправить это? Ведь мы же не хотим сделать секретного босса слишком легким, верно? Тогда стоит обратить внимание на подход, который в Squaresoft (теперь Square Enix) использовали при создании Ozma.
Рандомизация в играх — это не всегда плохо (*косо поглядывает на Hearthstone*), главное не переборщить с ней. В ситуации с Ozma её поведение адаптируется к вашей команде.
- Допустим, вы собрали очень много сопротивления огню, тогда этот босс не будет использовать заклинания огненной магии. Если же в вашей команде много персонажей, которые наносят физической урон, то защита Ozma будет повышена.
- В начале боя Ozma может ошарашить вас заклинанием Doomsday, которое может убить всю вашу группу, если у ваших персонажей нет автоматического воскрешения.
- И напоследок, очередность ходов с боссом равняется примерно 1:1, т.е. после каждого действия вашего персонажа, Ozma будет что–то делать.
Описание боя и тактики не совсем верное (всё–таки прошло очень много времени с тех пор, как я проходил этого босса), но суть, надеюсь, вы поняли.
Примечание: у Emerald Weapon и Yiazmat также есть тактика, но там бой длится долго, потому что у противников много здоровья. Будем честны, сражение с ними за столь долгий промежуток времени начинает надоедать и перерастает в рутину, в то время как с Ozma бой длится в среднем 9—15 минут и за это время не начинаешь думать «да когда же ты умрёшь!»
Приведу небольшой пример на RPG Maker MV, как можно сделать (без плагинов) неплохого монстра.
Небольшие вводные: допустим, наш персонаж наносит 20 урона каждой атакой. Он обладает заклинанием Огненный шар, которое наносит 10 урона от огня и у нас в запасе 20 очков маны, заклинание стоит 5 маны. У него 10 защиты и 200 очков здоровья.
Вводные нужны, чтобы мы смогли сбалансировать нашего монстра.
Нам нужен босс. Для своей тематики я взял Бегемота.
1) Давайте подумаем, какие характеристики вообще могут быть у босса Бегемотика? Наверное, мы дадим ему 80% защиту от стихии воды, он будет получать на 100% больше урона от огненных заклинаний, а его прочная шкура даст ему 30% защиту от физического урона. В RPG Maker MV это выглядит следующим образом:
Эффективность элемента в мейкере работает таким образом, что он рассчитывает множитель. Например: у нашего Бегемота эффективность элемента Вода составляет 20%, что означает, что урон от заклинаний стихии воды будет рассчитывать по формуле:
Урон = изначальный урон от заклинания * эффективность элемента (в нашем случае 20%). Допустим, что наше водное заклинание наносит 100 урона, тогда мы получаем окончательный урон:
100 * 20% = 20 единиц урона нанесет заклинание в итоге.
2) Когда мы определились с элементами врага, стоит обратить внимание на его параметры (Здоровье, Защита, Ловкость и т.д. и т.п.).
В дополнительные параметры по типу ловкости и удачи я сейчас не буду ничего говорить, т.к. иначе урок получится слишком длинным. Скажу лишь то, что ловкость влияет на очередность хода, а удача на шанс наложение отрицательных состояний. Здесь я возьму за стандарт, что бегемотик немного медленнее нашего героя и соотношение ходов будет примерно 3:2 (т.е. за каждые 3 наших хода, бегемот будет успевать делать только два).
Напоминаю, что у нас 200 здоровья, 10 защиты, 20 урона от атак и 10 урона от заклинания огненный шар и 20 маны.
Мы хотим сделать босса таким образом, чтобы игрок тратил на него весь запас маны и несколько атак. Для начала нам нужно понять, сколько же на самом деле сейчас наносят урона наши умения (магическая и обычная защита бегемота равна 0 для простоты подсчёта):
Огненный шар наносит 10 * 200% = 20 урона
Атака наносит 20 - 30% = 14 урона
НО! Мы можем добавить защиты бегемоту (вернее, она всегда будет равна как минимум 1 — минимальное стандартное значение для RPG Maker). В RPG Maker вы сами настраиваете формулу урона. Я использовал формулу урона a.atk - b.def и вариативность 0% (чтобы не было разброса при нанесении урона).
Получается, что нам нужно вычесть ещё по -1 урона у заклинаний.
Огненный шар наносит 19 урона
Атака наносит 13 урона.
Тут стоит сразу уточнить, что я всё слишком сильно упростил, в вашей игре может быть всё намного сложнее, но для обучения балансу и вообще выводы начального баланса в игре — такой подход вполне себе подходит. Сначала нужно научиться делать всё на простых примерах, а уже потом переходить к сложным!
Нам нужно как минимум 4 раза использовать огненный шар (помните, что у нас 20 маны, а заклинание расходует 5 маны). И несколько раз (допустим, 3) ударить бегемота для победы.
Получается его здоровье мы можем высчитать по формуле:
19 * 5 + 13 * 3 = 134
И снова примечание: если вы используете вариативность при атаке, то увеличивайте здоровье на половину от вариативности, т.е. если ваша вариативность равна 20%, то прибавьте +10% здоровья бегемоту, т.е. 134 + 10% = 147
Теперь осталось определиться сколько атаки должно быть у нашего врага, чтобы игрок за 8 ходов не умер, использовав одно зелье здоровья, которое восполнит ему 50% здоровья.
Мы говорили о том, что наш герой имеет 200 здоровья, а значит, зелье здоровья восстановит 100 единиц здоровья, т.е. у нас получается 300 единиц эффективного здоровья есть. Мы должны победить босса за 8 наших ходов. Вспоминаем соотношение ходов 3:2 (3 наших и 2 врага) и получаем, что за 8 наших ходов враг сходит примерно 5 раз.
Для простоты подсчёта у нашего героя тоже по 1 обоих типов защиты, нет никаких дополнительных сопротивлений и модификаторов!
За 5 ходов бегемот должен нанести примерно 290 урона (мы не хотим, что наш игрок умер). Получаем формулу:
290 / 5 = 58 урона, но берем в расчёт защиту героя и получаем 57 урона.
На этом этапе у нас получился такой враг:
3) Самое веселое — добавление различных тактик и заклинаний. Для простоты подсчета заклинания наносят такой же урон, как и физическая атака босса.
Для начала небольшое уточнение о том, как работает приоритет действий врага:
Чем выше число, которое находится в столбце R (Rating или Приоритет), тем выше шанс того, что заклинание будет использовано. Если несколько заклинаний имеют одинаковый приоритет (и условия!), то будет выбрано одно случайным образом, если же разница в приоритете между заклинаниями равна 1 (например заклинание А имеет приоритет 8, а заклинание Б приоритет 7), то заклинание А будет вызывать в 2/3 всех случаев, если разница равна 2, то в 1/3 всего времени.
Я создал пару заклинаний, давайте посмотрим на них:
Оглушающий удар — наносит обычный урон и с вероятностью 25% оглушает врага.
Разбег — наносит обычный урон и даёт сразу же дополнительный ход бегемоту.
Теперь разберемся с приоритетами.
Атака имеет приоритет 5 — это значит, что она имеет довольно низкий приоритет и (как видно на скриншоте) два других заклинания будут вызываться с вероятностью в 100%, когда будет достигнуто условие. В остальные ходы бегемот будет просто атаковать.
Оглушающий удар будет применяться только на ходах 3, 6 (3+3), 9 (6+3) и т.д. и т.п.
Разбег будет применяться только на втором ходу.
Хорошо, с этим мы разобрались, остаётся только подкорректировать немного характеристики бегемоту.
Сейчас у бегемота 57 атаки. Бой будет проходит примерно так:
1 ход: мы используем огненный шар против Бегемота, у него 147-19=128 здоровья
2 ход: Бегемот атакует нас оглушающим ударом, у игрока 200-56=144
3 ход: Бегемот использует разбег (игрок может быть оглушён), у нас остаётся 144-56=88 здоровья
4 ход: Ходит Бегемот (после разбега). У нас остаётся 88-56=32 здоровья
5 ход: используем зелье здоровья. 100+32=132 здоровья
6 ход: наносим 19 урона от огненного шара Бегемоту: 128-19=109
7 ход: Бегемот атакует: 132-56=76
8 ход: огненный шар от нас: 109-19=90
9 ход: огненный шар от нас: 90-19=71
10 ход: Бегемот атакует: 76-56=20
11 ход: огненный шар от нас: 71-19=52
12 ход: мы атакуем (нет маны): 52-13=39
13 ход: Бегемот нас убивает.
Небольшое примечание: это один из возможных сценариев развития боя, т.к. бегемот может и не оглушить нас, тогда он не сможет использовать разбег — это тоже нужно учитывать.
Хорошо, теперь мы видим, что бегемот наносит больше урона, чем нужно, поэтому давайте уменьшим его атаку с 57 до 40 (в редакторе до 41, т.к. 1 защита есть у игрока) и посмотрим, как это повлияет на нас.
1 ход: мы используем огненный шар против Бегемота, у него 147-19=128 здоровья
2 ход: Бегемот атакует нас оглушающим ударом, у игрока 200-40=160
3 ход: Бегемот использует разбег (игрок может быть оглушён), у нас остаётся 160-40=120 здоровья
4 ход: Ходит Бегемот (после разбега). У нас остаётся 120-40=80 здоровья
5 ход: используем зелье здоровья. 100+80=180 здоровья
6 ход: наносим 19 урона от огненного шара Бегемоту: 128-19=109
7 ход: Бегемот атакует: 180-40=140
8 ход: огненный шар от нас: 109-19=90
9 ход: огненный шар от нас: 90-19=71
10 ход: Бегемот атакует: 140-40=100
11 ход: огненный шар от нас: 71-19=52
12 ход: мы атакуем (нет маны): 52-13=39
13 ход: Бегемот атакует: 100-40=60
14 ход: мы атакуем: 39-13=26
15 ход: мы атакуем: 26-13=13
16 ход: Бегемот атакует: 60-40=20
17 ход: мы атакуем: 13-13=0
Ура, мы победили Бегемота!
В итоге в редакторе должно быть примерно следующее:
Примерно так мы сделали неплохого начального врага (или босса), у которого не просто много здоровья, но который может устроить небольшую проверку для нашего игрока.
Возможно, этот противник получился не слишком «навороченным» и умным, но я показал вам только основы, которых должно быть достаточно для того, чтобы сделать полноценного сильного и интересного врага, который не будет обладать только одной лишь атакой и тонной здоровья!
Подведем краткий итог:
- Не делайте врагам большого количества здоровья. Лучше потратьте время на придумывание тактики для боя с боссом;
- Пользуйтесь элементами и сопротивлениями. Многие новички забывают о том, что в игре можно использовать определенные элементы и манипулировать ими. Например, для условного врага–черепахи сопротивление к воде 100% (т.е. она не получает урона от водных заклинаний) является довольно логичной вещью, к тому же можно добавить сопротивление огню -50% (черепахи же боятся огня, верно) и защиту от физического урона +50% (панцирь очень хорошо спасает черепашек от хищников) и мы получаем неплохого врага, с которым будет интересно драться в первый раз, а в последующие разы у вас будет выработана определенная тактика);
- Не бойтесь спрашивать совета при балансировании игры у других людей. То, что одним кажется сложным — другим покажется довольно легким;
- Лучше работайте на качество, а не количество. Никому не будет интересно, если у вас будет 200 врагов с 1—2 атаками, которых нужно будет убивать по 20 минут. А вот если вы сделаете 1—2 врагов с интересными тактиками и небольшим количеством здоровья, то игроки будут увлечены геймплеем.
Надеюсь, эта статья помогла вам понять, как можно проектировать врагов таким образом, чтобы сражения с ними не превращались в рутину, а каждый новый враг приятно удивлял игрока своей тактикой!