![]() |
Идут сборы на Cats of Mont Saint Michel |
Данжен кроулер в стиле Рэдволла: коты-мушкетеры против злобных крыс. | |
![]() |
Идут сборы на Sea Beasts: A Bloody Voyage |
Морской данжен кроулер/босс баттлер: викинги борются с подводными монстрами. | |
![]() |
Идут сборы на Grimm Fairy Tales: Unbound |
Кооперативный колодострой с персонажами различных сказок. | |
![]() |
Издательства в США начинают закрываться |
Все больше компаний закрывается. Очередной жертвой "Тарифной войны" стало издате... | |
![]() |
Заканчиваются сборы на Helldivers 2: The Board Game |
Истребление инопланетных угроз во имя свободы, демократии и Супер Земли. |
Уровень 1: Введение в игровой баланс
Уровень 2: Числовые отношения
Уровень 3: Транзитивные механики и кривые затрат
Уровень 4: Вероятность и случайность
Уровень 5: Вероятность и случайность, трактуемые неправильно
Уровень 6: Ситуативный баланс
Уровень 7: Продвижение, прогресс и стимуляция
Уровень 8: Статистика и показатели
Уровень 9: Нетранзитивная механика
Уровень 10: Финальный босс
14 Июля 2010 г.
На этой неделе я буду говорить о различных числах, что встречаются в играх, и об их классификации. Это пригодится позже, так как вы не будете знать, как сбалансировать игру или как подобрать правильные числа, если не знаете, с какими типами чисел вы имеете дело. Иногда изменение баланса так же просто, как замена одного типа числа другим, поэтому понимание того, что это за числа, и интуитивное понимание принципа их работы — это то, с чем нам нужно разобраться в первую очередь.
В частности мы рассмотрим отношения между числами. Числа в игре существуют не в вакууме. Они имеют смысл только по отношению друг к другу. Например, предположим, я скажу вам, что главный герой игры наносит 5 единиц урона при атаке. Это ничего вам не скажет, если вы не будете знать, сколько урона могут выдержать враги до того, как умереть. Теперь у вас есть 2 числа, урон и количество здоровья, и каждое имеет смысл только по отношению к другому.
Или, допустим, я скажу вам, что меч стоит 250 золотых монет. Эта информация не имеет смысла, пока я не скажу вам, что игрок в окрестностях обычно находит мешки с тысячами золотых монет, и тогда вы поймёте, что этот меч дешёвый. Но если я скажу вам, что игрок чаще всего получает 1 монету после каждого боя, то тогда он достаточно дорогой. Даже в одной игре относительная ценность чего-то может меняться, 250 монет может оказаться огромной суммой для начала игры, но к концу игры всё изменится. В World of Warcraft 1 золотая монета раньше была неплохой суммой, но сейчас нужно заплатить десятки или сотни за действительно эпичный лут.
Наверное, самый простой тип числовых отношений, математические гики назвали бы его отношением эквивалентности, это когда два значения меняются одинаковым образом. Добавьте +1 к одному значению, и это будет эквивалентно добавлению +1 к другому. В контексте игрового баланса вы можете рассматривать эти два значения как идентичные.
Вы можете подумать, что в таком случае можно оставить одно значение, но бывают случаи, когда имеет смысл иметь 2 разных значения, которые соотносятся один к одному. Например, в Ultima III: Exodus есть показатель еды, которая необходима каждому персонажу, чтобы не умереть с голоду в подземелье. Вы не сможете найти еду, а только купить её у продавцов продовольствия в городах. Количество еды с течением времени уменьшается, и она не имеет другой ценности (не может быть продана или обменяна на что-либо). Единственное предназначение этого показателя — медленно истощать ваши ресурсы. Все персонажи также имеют золото, которое они находят во время приключений. В отличие от еды, количество золота не уменьшается с течением времени, и этот ресурс универсален (его можно использовать, чтобы подкупить стражников, купить подсказки, расплатиться за оружие или броню... или для покупки еды). Хотя это явно два отдельных показателя, которые служат совсем разным целям в игре, каждая единица пищи стоит 1 золото (10 единиц пищи — 10 золотых монет, 1000 еды — 1000 монет, и т.д.). Еда и золото состоят в отношении эквивалентности, в данном случае это одностороннее отношение, так как можно конвертировать золото в еду, но не наоборот.
Линейные отношения (отношения с линейной зависимостью) — более общий случай отношений эквивалентности, это такие отношения где обменный курс между значениями постоянен. Если заклинание лечения всегда стоит 5 маны и исцеляет ровно 50 единиц здоровья, тогда у нас получается линейное соотношение 1 к 10 между маной и здоровьем. Если вы можете заплатить 100 единиц золота и получить +1 к показателю ловкости, то у нас получается линейное соотношение 1 к 100 между ловкостью и золотом. И так далее.
Обратите внимание, что мы пока игнорируем случаи, когда отношения частично случайны (возможно, что заклинание лечения лечит на значение между 25 и 75 HP, случайно выбираемое каждый раз). Случайность — это то, к чему мы перейдём через несколько недель, так что пока мы оставим её вне нашего поля зрения.
Иногда линейное отношение неприменимо для вашей игры. У вас могут быть числовые отношения, в которых результат будет увеличиваться или уменьшаться.
Например, предположим, что игрок может заплатить ресурсы, чтобы получить дополнительные действия в пошаговой стратегической игре. Одно дополнительное действие — это небольшое подспорье, но три или четыре дополнительных действия могут быть эквивалентны целому дополнительному ходу, и могут восприниматься как нечто намного более эффективное, более чем в 3–4 раза по сравнению с одним действием. Отдача будет возрастать: каждое последующее действие будет ценнее, чем предыдущее. Поэтому наверняка вы захотите увеличить цену каждого последующего действия при покупке большого их количества.
Или, может быть, в вашей игре у игроков есть стимул каждый ход тратить все свои игровые деньги, чтобы не отставать от своих оппонентов, и накопление денежных средств лишает их возможностей (то есть они упускают возможности, что у них были бы, если бы они всё потратили). В этом случае покупка всяких полезностей и возможностей за один раз, скопом, является в сущности не настолько полезной, как покупка их постепенно по одной, в этом случае имеет смысл дать игрокам скидку на покупку «оптом». Здесь у нас пример отрицательной отдачи, где каждый последующий купленный предмет не настолько полезен как предыдущий.
В таких случаях вам нужны числовые отношения, что увеличивают или уменьшают свой обменный курс, в зависимости от того, много или мало ресурсов вы меняете в данный момент. Самый простой способ сделать это — это экспоненциальные отношения (отношения с экспоненциальной зависимостью): при добавлении значения к одному показателю, умножьте второй показатель. В качестве примера возьмём удвоение: за каждую единицу, на которую увеличивается одно значение, удвойте второе значение. Это даёт нам отношение, где покупка 1, 2, 3, 4 или 5 единиц чего-то стоит 1, 2, 4, 8 или 16 единиц другого ресурса соответственно. Как вы можете заметить, при таком подходе числа становятся большими достаточно быстро.
По причине того, что числа очень быстро становятся чересчур большими, вы должны быть осторожными, используя экспоненциальные отношения. Например, во всех коллекционных карточных играх, что я играл, почти все карты со словом «удвойте», написанным в любом месте карты (например, одна карта удваивает значение другой карты), в конце концов становятся слишком сильными. Навскидку я могу вспомнить только одно исключение, и оно представляет собой вариант игры ва-банк, где карта удваивает вашу силу атаки, но затем вы проигрываете в конце хода, если вы не успели выиграть в течение хода! Урок, что мы можем извлечь из всего этого, это то, что надо быть очень и очень осторожными при использовании экспонент.
Что, если вы хотите, чтобы что-то возрастало, но не так быстро, как по экспоненте? Часто используемым шаблоном в геймдизайне является использование треугольных отношений. Если вы не знакомы с термином, вы, вероятно, хотя бы видели подобные серии чисел:
1, 3, 6, 10, 15, 21, 28, ...
Это классический шаблон треугольных отношений (он так называется потому, что некоторые способы представления этого шаблона используют треугольники).
В нашем предыдущем примере, допустим, первое дополнительное действие стоит 1 единицу ресурса. Второе стоит 2 единицы ресурса (чтобы выполнить оба дополнительных действия, придётся заплатить 3 единицы ресурса), следующее стоит 3 единицы ресурса (чтобы выполнить все три, придётся заплатить 6 единиц ресурса) и так далее.
В треугольных числах есть одна интересная вещь, которую можно заметить, если вы посмотрите на разность каждой соседней пары чисел. Разность первых двух чисел (1 и 3) равна 2. Разность следующих двух чисел (3 и 6) равна 3. Следующая разность (чисел 6 и 10) равна 4. Итак, последовательность разностей линейна и соответствует шаблону 1, 2, 3, 4...
Треугольные числа зачастую являются неплохим начальным вариантом для реализации возрастающих расходов. Но что, если вам необходим вариант уменьшающихся расходов, где что-то сначала дорого, а затем становится дешевле? В этом случае определите, какова должна быть стоимость первой единицы, затем сделайте так, что каждая последующая единица стоит на 1 ресурс дешевле. Например, предположим вы решили, что первая штука стоит 7 золотых. Затем попробуйте сделать стоимость следующей — 6 золотых (при общей стоимости в 13), а цену третьей штуки — 5 золотых (18 монет за все три), и так далее.
Обратите внимание, что в данном случае вы в конечном итоге достигнете момента, когда каждая последующая покупка будет стоить 0 ресурсов (или даже отрицательное количество), что становится забавным. На самом деле это довольно распространённое явление в игровом балансе, что, если вы используете математическую формулу, игровой баланс сломается при больших значениях. Геймдизайнерское решение — это установка жёстких ограничений для формулы, так, чтобы не было возможности достигнуть этих больших значений. В нашем примере чуть выше можно просто ограничить количество покупок тремя или четырьмя за раз.
В то время как линейные и треугольные отношения являются наиболее распространёнными в играх, они не являются единственно возможными. На самом деле есть бесконечное множество потенциальных числовых отношений. Если ни одно из стандартных отношений не работает в вашей игре, придумайте своё собственное отношение!
Возможно, у вас есть определенные пики стоимости, где одни игровые моменты стоят больше других, так как они имеют большее игровое значение. Например, если все в вашей игре имеют 5 единиц здоровья, то получается огромная разница между уроном в 4 и 5 повреждений, итак 5-я единица урона, вероятно, будет гораздо ценнее, чем вы могли бы ожидать. В вашей игре могут быть колебания стоимости, где определённые значения будут очень дешёвыми (или, наоборот, очень дорогими). Вы можете создать соотношение между любыми двумя значениями... но лучше делать это с пониманием того влияния, что в конечном счёте это отношение будет иметь на игру.
Отдельные значения в игре, как правило, существуют в рамках более крупных систем. Анализируя различные игровые значения и отношения между ними в этих системах, мы сможем достичь понимания того, насколько игра сбалансирована.
Возьмём простой пример: игру Dragon Warrior для NES (Nintendo Entertainment System). В боевой системе игры у вас есть четыре основные характеристики: здоровье, мана, атака и защита. Это игра на выживание. Вы исследуете игровые области и каждые несколько шагов подвергаетесь нападению врагов. Вы проиграли, если ваш показатель здоровья упадёт до 0.
Как соотносятся все эти показатели? Случайные нападения связаны с показателем здоровья: каждое нападение уменьшает здоровье (также можно сказать иначе: прогуливаясь по окрестностям и ввязываясь в стычки, вы конвертируете здоровье в бои). Это обратная связь: чем больше боев, тем меньше показатель здоровья.
А между здоровьем и защитой существует прямая связь: чем больше защита, тем меньше урона вы получаете, следовательно, вашего уровня здоровья вам хватит на дольше. Фактически увеличение защиты эквивалентно получению кучи дополнительных единиц здоровья.
Забавно, но мы видим такую же прямую связь между здоровьем и атакой. Чем выше ваш показатель атаки, тем быстрее вы сможете победить врага. А если вы победите врага быстро, из этого следует, что у него будет меньше возможности нанести вам урон. Таким образом с бóльшим показателем атаки вы выживете в бóльшем количестве боев.
Мана — это интересный случай, так как вы можете использовать её в различных ситуациях. Есть заклинания исцеления, которые напрямую конвертируют ману в здоровье. Есть атакующие заклинания, что наносят урон (будем надеяться, бóльший, чем когда вы атакуете стандартной атакой). Как и при бóльшем показателе атаки, при использовании этих заклинаний вы можете закончить бой раньше, следовательно, сохранить единицы здоровья. Также есть положительные и отрицательные заклинания, которые аналогично уменьшают урон, что вы получите в бою. Есть заклинания телепортации, которые могут переместить вас на большие расстояния, таким образом, вам не придётся биться в пути, и тем самым эти заклинания также сохраняют ваши единицы здоровья. Так что хотя мана и является универсальным ресурсом, но в итоге всё её использование явно или неявно конвертируется в единицы здоровья.
Если вы нарисуете все эти связи на бумаге, то увидите, что всё — атака, защита, мана, бои с монстрами — связано непосредственно со здоровьем. Геймдизайнеры заложили показатель здоровья в основу всего, в том числе и в условие для проигрыша! Это стандартный метод, сделать один ресурс основным для всех остальных, и лучше всего этот основной ресурс ввести в игровые условия для победы или поражения.
Но здесь есть один дополнительный нюанс: боевая система взаимодействует с двумя другими игровыми системами посредством боёв с монстрами. После победы над монстром, вы получаете 2 вещи — золото и опыт, — которые взаимодействуют с другими игровыми системами, экономической и системой прокачки персонажа соответственно.
Давайте сначала рассмотрим систему прокачки. Наберите достаточное количество опыта и получите уровень, что увеличит все ваши характеристики (здоровье, ману, атаку и защиту). Как вы можете видеть, это создаёт обратную связь: победа над врагами ведёт к получению уровня, повышение уровня увеличивает ваши характеристики, что позволяет вам победить больше врагов. И в итоге эта положительная обратная связь приведёт к тому, что игрок достигнет высоких уровней очень быстро, если в игре не будет какой-то противодействующей силы. Это противодействие выражается в форме увеличенного соотношения между опытом и уровнем, таким образом, постепенно приходится получать всё больше и больше опыта, чтобы получить новый уровень. Другая противодействующая сила — это время игрока. Игрок, конечно, может увеличивать свой уровень, просто оставаясь в начальных игровых областях и уничтожая слабых врагов, но рост в уровнях будет настолько медленным, что он будет вынужден рисковать, чтобы расти в уровнях быстрее.
Рассмотрим экономическую игровую систему, где золото используется для нескольких вещей. Его основное назначение заключается в покупке снаряжения, которое увеличивает атаку и защиту игрока. Таким образом, игроки эффективно конвертируют золото в дополнительные единицы здоровья. Золото также может быть использовано для покупки расходных материалов, большая часть которых имитируют эффекты определённых заклинаний, таким образом, вы можете (на ограниченной основе, так как у вас есть только несколько слотов в инвентаре) конвертировать золото во временную ману. Здесь мы видим ещё одну обратную связь: победа над монстрами приносит золото, которое игроки тратят на увеличение своих характеристик, и это в итоге позволяет им победить больше монстров. В этом случае позитивная обратная связь ограничивается игровым прогрессом: у игроков ограниченный выбор снаряжения для покупки, и более дорогое снаряжение требует от игроков путешествовать в игровые зоны, до которых они не смогут добраться на старте игры, так как будут слишком слабы, чтобы в них выжить. И, естественно, как только вы купите самое дорогое снаряжение в игре, золото перестаёт приносить существенную пользу.
Другим моментом, что связан с экономической системой, является сам игровой прогресс. Многие игровые зоны находятся за закрытыми дверями, и чтобы открыть, их вам нужно использовать золото для покупки магических ключей. Вы побеждаете монстров, получаете золото, используете его для покупки ключей, и используете эти ключи для открытия новых областей с более сильными монстрами (за которых вы получите ещё больше золота и опыта). Естественно, этот цикл сам ограничен характеристиками игрока, ведь открытие новой области с монстрами, которые чересчур сильны для вас, не будет способствовать игровому прогрессу.
Как геймдизайнеру сбалансировать моменты игры, учитывая все эти системы? Достаточно просто: соотнося все ресурсы к основному ресурсу — здоровью, — а затем сравнивая.
Например, у вас есть заклинание лечения и атакующее заклинание, и вам нужно определить, какое лучше. Рассчитайте количество здоровья, которое игрок сэкономит, использовав атакующее заклинание и окончив бой раньше, и сравните это значение с количеством здоровья, восстановленным заклинанием лечения. Или, скажем, вы хотите знать, что лучше — определённый меч или определённая броня. Опять же выясните, сколько здоровья каждый предмет сэкономит для вас.
Но это не означает, что всё в игре должно быть одинаковым, чтобы быть сбалансированным. Например, вы наверняка захотите, чтобы заклинания, выученные на поздних уровнях, были более выгодными по соотношению цена/результат, чтобы у игроков был стимул их использовать. Также вы наверняка захотите, чтобы более дорогое снаряжение было менее выгодным по соотношению цена/результат, для того чтобы заставить игрока действительно копить на него. Однако вы также наверняка захотите, чтобы в один момент времени в игре все доступные для выбора компоненты игры были более или менее сбалансированы по отношению друг к другу. Например, если игрок достигает нового города, в котором есть новое снаряжение, вы ожидаете, что это новое снаряжение будет примерно одинаковым с точки зрения его стоимости за единицу здоровья.
Вы можете задать вопрос: если такой вид анализа работает для RPG игры, где балом правят характеристики, полезен ли такой анализ для любой другой игры? Ответ — да. Давайте рассмотрим другую игру —оригинальную Super Mario Bros. (ставшую популярной на автоматах и NES).
Какие ресурсы у нас есть в игре «Марио»? Есть жизни, монеты и время (таймер). Есть также числовой счёт — победные очки. Ещё в игре существуют разные игровые объекты — блоки с монетами, враги и т.д., которые нам помогают или мешают, в зависимости от ситуации. Давайте приступим к анализу числовых отношений.
Монеты: есть соотношение 100 к 1 между монетами и количеством жизней, так как если собрать 100 монет, то в награду вы получите дополнительную жизнь. Также существует соотношение 1 к 200 между монетами и очками — собрав 1 монету вы получите 200 очков. Ещё есть соотношение между блоками с монетами и монетами, оно заключается в том, что такие блоки дают некоторое количество монет.
Время: есть соотношение 100 к 1 между временем и очками, так как вы получаете очки за оставшееся время в конце каждого уровня. Ещё есть обратная связь между временем и жизнями, так как если время закончится, то вы лишитесь одной жизни.
Враги: существует соотношение между врагами и очками — убийство врага даст вам от 100 до 1000 очков (в зависимости от типа врага). Между врагами и жизнями есть обратная связь, так как иногда враги будут стоить вам жизни. (В некоторых уровнях есть прямая связь между врагами и жизнями, так как убийство достаточного количества врагов в комбо даст вам дополнительную жизнь, но это особые случаи).
Жизни: есть необычное соотношение между жизнями и всем остальным, так как потеря жизни обнуляет количество монет, врагов и таймер на уровне. Обратите внимание, что поскольку монеты дают вам дополнительные жизни, и потеря жизни восстанавливает все монеты на уровне, то каждый уровень, где монет больше 100, может стать генератором жизней, где вы сможете умирать специально, набрав более 100 монет, и повторять этот процесс, набирая бесконечное количество жизней. В оригинальной игре Super Mario Bros. не было таких уровней, но в Super Mario 3 были.
Соотношение между жизнями и очками: нет прямой связи между жизнями и очками. Однако потеря жизни сбрасывает кучу вещей и лишает вас возможности набора бóльшего количества очков, так косвенно жизни преобразуются в очки. Интересно, что нет другого пути конвертации в отличие от других игр того времени, в которых можно было получить дополнительные жизни, набрав достаточное количество очков.
Глядя на эти соотношения, мы видим, что очки на самом деле являются основным ресурсом в Super Mario Bros., поскольку всё связано с очками. Это имеет смысл в контексте ранних игр для автоматов, так как условием победы там не было «пройди все уровни и уничтожь всех врагов», но чаще всего — «набери наибольшее количество победных очков».
Как бы вы сбалансировали эти ресурсы относительно друг друга? Существует несколько способов. Вы можете определить, сколько врагов вы убиваете и их средние риски (то есть, каких врагов сложнее убить, и какие с лёгкостью могут убить вас). Подсчитайте примерное количество монет, что вы находите на уровне, и количество времени, необходимое обычно для завершения уровня. Зная эти значения, вы можете либо поменять количество очков, что игрок будет получать от одного из этих источников (враги, время, монеты; это глобальные изменения, касающиеся всей игры), или вы можете менять количество монет и врагов, количество времени или длину уровня (внося изменения в каждый конкретный уровень). Любой из этих методов может быть использован для настройки ожидаемого количества очков, что игроки будут получать на протяжении игры. И также вы можете настроить, сколько будет приносить каждый способ набора очков (собирание монет, уничтожение врагов, быстрое прохождение по времени) относительно финального счёта.
Когда вы разрабатываете игру, обратите внимание, что вы можете полностью поменять ваши ресурсы, убрать ресурс или поменять основной ресурс на что-то другое. Серия игр про «Марио» прошла по этому пути и отлично его перенесла. Игры, которые появлялись после первой части, полностью убрали очки как ресурс, и всё в них было связано с жизнями.
Когда вы формируете цепочки или циклы ресурсов и отношения между ними, эти отношения взаимодействуют друг с другом. Они могут объединяться, становясь более сильными, или они могут отменять друг друга (полностью или частично).
Мы только что рассмотрели один пример такого поведения в игре Mario, с жизнями и монетами. Если у вас есть уровень, на котором есть 200 монет, тогда существующее соотношение 100 монет к 1 жизни комбинируется с соотношением 1 жизнь к 200 монетам (то есть за одну жизнь можно собрать 200 монет) на этом уровне и в итоге создаёт эффект удваивания, где мы конвертируем 1 жизнь к 2 жизням при каждом повторении уровня.
Вот другой пример, из игры для PlayStation 2 — Baldur’s Gate: Dark Alliance. В этой экшн-RPG вы получаете опыт за победу над врагами, который в свою очередь приводит к росту в уровнях. Соотношение опыта и уровня персонажа — треугольное: переход с 1 уровня на 2 требует 1000 единиц опыта, с 2 уровня на 3 уровень — 2000 опыта, с 3 уровня на 4 — 3000 опыта, и т.д.
Каждый раз, когда вы получаете новый уровень, вы получаете некоторое количество очков развития, которые можете потратить на специальные способности. Эти очки так же начисляются согласно треугольной прогрессии: на уровне 2 вы получите 1 очко развития, на уровне 3 получите 2 очка развития, следующий уровень даст 3 очка, следующий — 4, и т.д.
Тем не менее эти соотношения выстраиваются в цепочку, так как опыт даёт уровни, а уровни дают очки развития. Фактически игрок зарабатывает опыт, но нас интересует соотношение опыта к очкам развития. В данном случае два треугольных отношения отменяют друг друга и приводят к линейной зависимости, что каждая 1000 единиц опыта даёт нам 1 очко развития. В то время как получение этих очков развития привязано к уровням, в среднем вы зарабатываете их по мере получения опыта с постоянным соотношением 1000 к 1.
Как время вписывается во всё это (а именно количество времени, что игрок проводит за игрой)? Если бы игроки бились с теми же врагами снова и снова, получая то же количество опыта, тогда бы количество времени, что необходимо для получения уровня, тоже увеличивалось бы треугольно (а количество времени для получения 1 очка развития оставалось бы примерно постоянным). Тем не менее в большинстве ролевых игр вознаграждение в очках опыта за победу над более сильными монстрами увеличивается. Это вознаграждение не увеличивается так же быстро, как и треугольная прогрессия опыта, необходимого для повышения уровня, и как следствие, это повышение вознаграждения за более сильных монстров не отменяет эффект треугольной прогрессии, но частично снижает его. Другими словами, вы растёте в уровнях быстрее в начале игры и медленнее в конце игры, но время в игре между получением уровней не растёт в треугольной прогрессии, а медленнее.
Обратите внимание на то, как этот момент взаимодействует с очками развития. Так как соотношение опыта к очкам развития линейно, и игроки получают больше опыта в единицу времени, то также увеличивается и скорость получения очков развития.
Такого рода системы имеют некоторые интересные эффекты. Изменяя скорость получения опыта (то есть меняя, насколько быстро растёт награда за победу над врагами), вы можете изменить скорость набора уровней и скорость получение очков развития. Если награды в единицах опыта будут расти быстрее, чем треугольные значения опыта для роста в уровнях, то игрок будет расти в уровнях всё быстрее и быстрее. Если награды в опыте будут увеличиваться медленнее, чем значения для повышения в уровне, игрок будет быстрее расти в уровнях в начале игры и медленнее в конце игры (обычно это именно то, чего хочет разработчик, так как такое развитие в начале игры даёт больше поощрений игрокам, а затем уменьшает их, когда игрок уже вовлечён в игру). Если награды в опыте увеличиваются так же, как и значения для получения новых уровней, то игрок будет расти в уровнях примерно с более-менее постоянной скоростью.
Предположим, вы решили сделать так, чтобы игроки получали уровни быстрее в начале игры и медленнее в конце игры, но вы не хотите, чтобы получение уровня занимало бы больше часа игрового времени. Как вам сбалансировать систему получения опыта? Просто: определите какого уровня будут игроки в конце игры, масштабируйте получение опыта так, чтобы получение максимального уровня с предыдущего заняло час игрового времени, а затем с этой точки проделайте путь назад к первому уровню.
Отметим ещё одно полезное свойство, которое имеет эта система набора уровней: она держит игрока в узком диапазоне уровней на протяжении всей игры. Рассмотрим 2 ситуации:
Слишком высокий уровень: игрок занимался целенаправленной раскачкой и сейчас слишком силён для врагов в текущей области. С одной стороны, игрок сможет зачищать ближайших врагов быстрее и не потратит на эту область много времени. С другой стороны, здесь вознаграждение в опыте не очень хорошее для его большого уровня; игрок вряд ли достигнет многого в прокачке персонажа, уничтожая более слабых врагов. Максимальный уровень, что игрок может получить, эффективно ограничивается показателем вознаграждения в единицах опыта.
Слишком низкий уровень: рассмотрим противоположный случай, когда игрок быстро продвигался по сюжету игры и сейчас он более низкого уровня, чем враги на текущей локации. В этом случае награда в единицах опыта за убитых врагов будет сравнительно высока (относительно уровня персонажа), и игроку будет достаточно победить нескольких врагов, чтобы быстро получить новый уровень.
В любом случае игровая система подталкивает уровень игрока к узкому промежутку посередине крайних значений. Гораздо проще сбалансировать боевую систему чтобы она обеспечивала игрока подходящими испытаниями, когда вы знаете, на каком уровне будет игрок на каждом этапе пути!
Как узнать, каким образом два числовых отношения будут взаимодействовать между собой? Вот краткий справочник:
При объединении двух линейных отношений. | Перемножьте их. Если вы можете конвертировать 1 ресурс А в 2 ресурса Б и 1 ресурс Б в 5 ресурсов В, тогда существует соотношение 1 к 10 между ресурсами А и В (2 * 5). |
Линейное отношение, что объединяется с увеличивающимся отношением (треугольным или экспоненциальным). | В итоге увеличивающееся отношение просто умножается на большее число, но характер кривой графика остаётся таким же. |
Линейное отношение компенсирует увеличивающееся отношение. | Если конверсия линейного отношения достаточно велика, то оно может доминировать на раннем этапе, но в конечном итоге увеличивающееся отношение превысит эту компенсацию. Момент, когда два графика встречаются и один переходит в другой, зависит от конкретных чисел, и настройка этих чисел может привести к интересному стратегическому сдвигу для игроков. |
Два увеличивающихся отношения объединяются. | У вас в конечном итоге получается увеличивающееся отношение, которое растёт быстрее, чем любое из двух начальных по отдельности. |
Два увеличивающихся отношения противодействуют друг другу. | Зависит от конкретных отношений. В общем экспоненциальное отношение превзойдёт треугольное (насколько быстро это произойдет, зависит от конкретных использованных чисел). Два идентичных отношения (например, два треугольных) будут отменять друг друга, что приведёт к линейному отношению или к отношению эквивалентности. |
Вы разрабатываете свою игру прямо сейчас? Попробуйте такой метод: составьте на бумаге список всех использованных в игре ресурсов или чисел. Обведите каждый ресурс в прямоугольник. Затем нарисуйте стрелочки между прямоугольниками, которые имеют соотношение в вашей игре, и подпишите стрелочки, какой это тип отношения (линейное, треугольное, экспоненциальное и т.д.)
Используя эту схему, определите некоторые области вашей игры, которые представляют интерес с точки зрения баланса:
Видите ли вы петли, когда ресурс может быть конвертирован в другой, затем, возможно, во что-то другое, а затем обратно к первоначальному? Если вы получите больше первоначального ресурса, чем у вас было до начала преобразований, то вы только что нашли положительную обратную связь у себя в игре.
Видите ли вы основной ресурс, с которым связаны все остальные? Если есть такой, то связаны ли условия победы/поражения с ним или эти условия кажутся случайными? Если такого ресурса нет, то есть ли смысл создать основной ресурс, возможно, путём добавления новых отношений между ресурсами?
Потом можно будет использовать эту схему для прогнозирования изменений в геймплее. Если вы поменяете тип отношений между значениями, вы сможете представить себе, как в результате изменятся другие отношения и какой эффект эти изменения будут иметь на все системы игры в целом.
Если ваша игра — это игра на одного игрока с какой-то системой внутриигрового развития, то «Время» (а именно количество времени, которое игрок тратит на игру) должно быть одним из ресурсов. Вы можете использовать подобную схему, чтобы понять вознаграждения и усиления, что игрок будет получать на протяжении игры будут учащаться, становиться реже, или частота их получения останется неизменной на протяжении игры.
Вот ваше задание на эту неделю касательно игрового баланса. Во-первых, выберите любую игру на одного игрока, в которую вы играли и с которой вы хорошо знакомы, игру в которой есть механика развития. Примерами игр на развитие могут послужить экшн-приключенческие игры (Zelda), экшн-RPG (Diablo), RPG (Final Fantasy) или MMORPG (World of Warcraft). Я рекомендую вам относительно простую игру, какую-то из эры NES или ещё более раннюю. Вам нужно будет проанализировать числа в этой игре, и как вы смогли заметить из примеров в этой статье, даже простые игры могут иметь достаточно запутанные системы.
В этих играх есть развитие, когда игроки получают новые способности и/или улучшают свои характеристики с течением времени. Игроки развиваются, но и монстры становятся сильнее. Конечно, это может означать, что у более сильных врагов просто более высокие характеристики, или они могут получать новые способности, тем самым вынуждая игроков изобретать новые стратегии и тактики, чтобы эффективно уничтожать сильных монстров.
Начните задавать себе следующий вопрос: в целом каков график сложности игры? Начинается ли игра с лёгкой сложности и постепенно становится сложнее? Или может вы заметили один из этих нежелательных шаблонов:
Пока что все эти мысли использовали только вашу память и интуицию и вероятно занимали у вас примерно несколько секунд, чтобы вспомнить знаменательные моменты ваших эпичных побед и ужасной прокачки в выбранной вами игре. Использовать интуицию полезно, но намного лучше подкреплять вашу интуицию математикой. Итак, после того как вы записали ваши интуитивные догадки о моментах, где игра становится несбалансированной, перейдём к анализу.
Во-первых, найдите руководство по стратегии или FAQ для выбранной вами игры, где описаны все используемые игрой значения. Поиск в интернете может выдать поразительно подробные прохождения, в которых могут быть описаны все игровые значения и ресурсы, а также описано, как они связаны.
Затем на бумаге составьте список всех игровых ресурсов. Используя найденные руководства, также покажите все отношения между ресурсами (нарисуйте стрелки между ними и подпишите, что это за тип отношения). Из этой диаграммы вы будете способны определить причины дисбалансов.
Например, может быть, вам показалось, что вы хорошо прокачались в какой-то конкретной локации и стали сильнее за короткое время. В таком случае стоить рассмотреть систему набора уровней, возможно, есть ряд уровней, где значения необходимого опыта для перехода на следующий уровень значительно меньше, чем для остальных уровней. Вы также можете рассмотреть систему вознаграждений за боевые победы, может быть вы, получили намного больше опыта, чем вы могли бы ожидать от врагов в этой локации.
В качестве другого примера, возможно, игра стала значительно легче после того, как вы нашли действительно мощное оружие. В этом случае рассмотрите боевую систему: посмотрите, сколько урона вы наносите и какой уровень здоровья у врагов, рассмотрите, как меняются эти значения на протяжении игры, и найдите внезапный скачок, в момент, когда вы нашли это оружие. Возможно, вы сможете наглядно увидеть соотношение вашей мощи и мощи врагов, как эти показатели менялись на протяжении времени.
Наконец, если вы посредством этих приёмов определите несбалансированные моменты игры, то вы сможете использовать ваши графики и значения, чтобы сразу внести поправки. Вы будете способны не только понять, какой ресурс должен быть изменён, но также и насколько он должен быть изменён.
Это упражнение, скорее всего, займёт у вас несколько часов, так как исследование игры и анализ значений — это непростая задача (даже для простой игры). Однако после того как вы сделаете это хотя бы раз, вам будет намного проще в играх определять ресурсы и отношения между ними, а также вы сможете применять ваше понимание игровых систем для того, чтобы улучшить баланс в этих системах.