Статьи

Армейский гейм-дизайн

Военные хитрости

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

Сразу оговорюсь, что часть нижеописанных примеров крайне «локальна» и актуальна для какого-то одного типа игр. В данном случае — это пошаговая f2p RPG, над которой я работал, но аналогичные проблемы могут появиться там, где их совсем не ждешь.

Например, вы хотите сделать какой-то оригинальный проект и связать несколько «неподходящих» друг к другу механик. Match3 и хардкорную real-time стратегию? Шутер и ККИ? Место эксперименту есть всегда, главное понимать, что геймплейные «шероховатости» могут возникнуть в любой момент, и их решения будут абсолютно нетривиальными.

Другой пример, когда всё может пойти не так: допустим, над проектом работает много людей. Может случиться ситуация, когда уволился ведущий гейм-дизайнер, знающий все нюансы игры, или на работу взяли многообещающего студента, который фонтанирует оригинальными идеями, а документация проекта, как назло, далеко не актуальной версии. Или её нет. Никогда такого не было и вот опять…

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

Единообразие

В армии всё должно быть единообразно, параллельно и перпендикулярно; всё должно быть подстрижено, покрашено и посыпано песком.

Армейская мудрость

Единообразие, наверное, основное правило для любой игры, причем совершенно неважно, маленький ли это таймкиллер или огромная ММО — все механики должны работать одинаково всегда.

Возьмем в качестве примера обычную характеристику в RPG — силу. Характеристика может быть как абсолютной (на шлеме 42 силы), так и процентной (зелье увеличивает силу на 10%) — подводный камень заключается в том, что если вы захотите глобально поменять работу этой характеристики, то может случиться беда.

Пример: допустим, 10 силы дают игроку 1 урона — это логично. В какой-то момент вам надо добавить очередной бафф, увеличивающий урон игрока. 10 силы для баффа слишком мало, а 20 — уже много. 15 силы — подходящий вариант, но игрок может не заметить прирост в 1,5 урона из-за правил округления.

Логичным решением будет помножить все сущности с характеристикой «сила» на 10. В этом случае 100 силы будут давать 10 урона, 200–20, а нужные нам 150–15, что вполне ощутимо для игрока. Естественно, количество HP необходимо увеличить пропорционально.

Но если среди сущностей затесались те, которые увеличивают силы процентно, то да хранят вас Семеро. Зелье, когда-то увеличивавшее силу на 10 % станет адским пойлом дающим 100% увеличение характеристики. One shot — one kill.

В моем случае было два решения этой проблемы:

1) ЗАПОМНИТЬ все сущности, на которых висит процентное увеличение характеристики и при следующих правках учитывать их

2) сделать отдельную характеристику, например, процентное увеличение урона, которое не может быть абсолютным по определению и будет использоваться для таких сущностей как зелья

 1-tAUonzQNCEOSoO-LfarlbQ
Следующая неприятная ситуация может возникнуть, если частить с эффектами,
увеличивающими силу абсолютно, а не процентно.
 

В нашем проекте были два похожих, но очень разных класса: «критовик» и «танк». Первый, очевидно, наносил много урона за счёт частых критических атак, второй — имел увеличенную защиту и шанс блока. Не буду вдаваться в подробности классовых механик, расскажу самое главное: основополагающей особенностью было то, что основные характеристики — живучесть, отвечающая за количество жизни и сила, отвечающая за урон, у вышеупомянутых классов менялись местами. То есть совершенно одинаковые персонажи разных классов имели: 100 силы и 300 живучести у «танка» и 300 силы и 100 живучести у «критовика». При этом их мощность одинаковая, потому что, как мы знаем, мощность = живучесть * сила. Баланс!

В чем же проблема абсолютной силы? В пресловутой мощности.

Пример: Имеется зелье, дающее игроку 300 силы. Если «танк» выпьет это зелье, то у него станет 400 силы и 300 живучести, если «критовик» — 600 силы и 100 живучести. 400*300=120000, 600*100=60000. Эффективность одного и того же зелья различается для разных классов. Это не очень хорошо, особенно если все аналогичные зелья слабее. Иными словами мы создали монстра — “имба” зелье для танка, которое в данном примере ломает баланс.

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

2

Единообразие играет важную роль во всех аспектах игры. Если в игре пошаговый бой, то очень важно сделать все боевые свойства (баффы, статусы, эффекты) пошаговыми.

Очень часто возникает ситуация, когда гейм-дизайнеру нужно сделать новый «расходник» (зелье, зачарование, заклинание), который должен отличаться от существующих. Возникает искушение изменить саму механику «расходника» — сделать его не пошаговым, а временным. Вроде эликсира жизни, который лечит не каждый ход, а через равные промежутки времени. Игрокам может показаться, что такие «расходники» сильно меняют игру и открывают простор для новых «билдов» или тактик. И это действительно так!

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

Но все меняется, если в игре есть эффекты потери контроля над персонажем. Например — оглушение.

Допустим, в игре есть дубинка, которая оглушает противника на определенное время, например на 15 секунд потому что, как мы выяснили выше, это время кажется нам не очень большим в условиях пошагового боя (игроки бьют друг друга по очереди и каждое действие игрока инициирует переход хода к оппоненту). Соответственно, если один игрок оглушен на 15 секунд, а второй выпил зелье на увеличение урона на 15 секунд, то я не завидую первому игроку. Второй игрок, пользуясь передачей хода от бездействующего противника, будет наносить усиленные удары в течение всего времени действия оглушения. «Да всё просто, подходишь, берёшь его в стан, ну там печати, туда сюда, в принципе лок труп». (с)

Поэтому, если у вас пошаговый бой, то все боевые эффекты тоже должны быть единообразными, то есть пошаговыми. В противном случае вы НИКОГДА не будете знать, к каким последствиям может привести введение временных эффектов в игру.

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

Лично я нашел только одно решение: для новых «расходников» использовать комбинации характеристик — зелье, которое не только увеличивает урон, но и шанс критического удара (кстати, обе характеристики процентные). Или свиток, который увеличивает защиту, как от физического урона, так и от магии (замечу, что обе характеристики абсолютные). Думаю, логика понятна.

 
3

Опишу ещё один вариант единообразия, которого лучше придерживаться: во многих играх есть негативные эффекты — болезни, яды, проклятья. Многие негативные эффекты можно нейтрализовать различными антидотами. Иногда бывает ситуация, когда надо сделать какой-нибудь очень мощный дебафф, который невозможно нейтрализовать, например, у рейдового босса, премиальной «расходки» и прочее. А дальше очень важное правило: не делайте такой эффект. Никогда.

Пример: у вас есть некий «расходник», например, кукла вуду, вешает самый страшный дебафф в мире, который невозможно снять. Через некоторое время вы обязательно столкнетесь с ситуацией, когда кукла вуду в комбинации с каким-то другим эффектом будет гарантированно убивать игроков. Естественно, это очень неприятный момент.

Решения этой проблемы всегда очень болезненные:

1) придется «нерфить» куклу вуду, но что делать с игроками, которые эту куклу купили?

2) делать невозможным использование двух эффектов одновременно, но

— во-первых, это ещё одно исключение из правил

— во-вторых, никто не гарантирует, что подобное не случится с введением новых эффектов, или игроки не найдут ещё способы усилить куклу

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

* * *

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

Чаще всего причина в том, что из-за обилия контента гейм-дизайнерам приходится отходить от первоначальных установок и вводить новые игровые сущности, которые являются исключениями из общепринятых правил.

Важно понимать, что каждое исключение нужно упоминать отдельно (все яды снимаются антидотом, кроме «мега_сильного_яда_кобры», который невозможно вылечить), поэтому всегда есть шанс что-то забыть и, в будущем, столкнуться с очень неприятными последствиями.

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

Предлагайте в комментариях альтернативные решения вышеописанных проблем или поделитесь своим горьким опытом.

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

Так же в статье я намеренно допустил один недочёт в вышеприведенных решениях, который может обернуться неприятными последствиями, сможете найти?

2 комментария

  • Oleksandr Nesterenko

    Жепь! У Вас “недочьот” у кожному пункті. Якшо для додавання контенту у гру, Вам потрібно створювати додаткові “сущності” та “исключения”, то ця Core-механіка АЦТОЙ! А якщо Ви всеж таки вирішите позбавити стати коми у значеннях, пам’ятайте – пасочки, баночки, закляття – константи і множити їх, смішна помилка. Від пересування коми, для гравця суттєво нічого не зміниться, він буде витрачати ту саму кількість ходів, а от гра на 80у левелі може перетворитися на Dіablo 3 з їх рівнями урону у 100500К. Також є помилка у класах, так як клас “танк” від класа “критовіка” відрізняються тільки назвою.БАЛАНС!)) Шкода, але до БАЛАНСУ ця стаття немає жодного відношення.

  • Артур Александров

    Недочет был в этом? – “Плюсом снимаемых дебаффов также является то, что их можно не учитывать в балансе: получив сильный дебафф игрок тут же снимает его антидотом.” – но если мы делаем дебафф которые тут же снимается антидотом, то все будут закупить антидоты по 100500 штук и заливаться ими при любом удобном случае.

Добавить комментарий