Теперь, когда мы всё это обсудили, давайте приступим к изучению конкретных примеров.
Прицельный огонь и зона поражения (серия игр Age of Empires)
Для того, что наносит урон сразу многим целям, а не только одной, при прочих равных условиях, насколько более полезно массовое поражение?
Обычно ответ такой: возьмите ожидаемое количество поражённых целей и умножьте. Таким образом, если враги идут равно распределёнными группами от 1 до 3, тогда в среднем вы будете поражать 2 врага за одну атаку, нанося двойной урон в сравнении с обычной атакой, и тогда массовое поражение имеет двойное преимущество.
Небольшое предостережение: «при прочих равных условиях» — очень хитрая вещь, ведь обычно прочие условия как раз не равны. Например, в большинстве игр, враги не теряют способности к нападению, пока они не уничтожены полностью, поэтому нанесение частичного урона не так важно, как нанесение смертельного урона. В таком случае медленное и равномерное распространение урона может быть менее эффективным, чем прицельное поражение выбранного врага мощными ударами, ведь так вы с каждым выстрелом уменьшаете наступательную мощь врагов, тогда как с массовым поражением это происходит не сразу. Кроме того, враги, по которым мы ведёте огонь, могут иметь различное количество очков здоровья, и массовое поражение может убить некоторых из них, но не всех, сокращая отряд противника до нескольких трупов и меньшей группы (или одного врага), что впоследствии сокращает мощь вашей массовой атаки – то есть, делает ваши атаки всё слабее с каждым разом! Так что с этим вам тоже стоит быть осторожными: обязательно рассмотрите, как часто враги будут собираться в группы при типичном столкновении, и как долго они будут держаться вместе.
|
Атаки, которые эффективны (или неэффективны) против определённого типа врагов
Мы уже рассматривали это на примере с драконами и троллями. Необходимо умножить дополнительную пользу (или невыгоду) как если бы она имела место при каждом столкновении с врагами, на предполагаемый процент времени, когда это будет действительно иметь значение (то есть как часто вы будете встречать этот тип врагов).
Как мы видели в предыдущем примере, хитрость здесь в том, чтобы точно рассчитать действительную пользу или ущерб от вещи, ведь что-то с «двойным уроном» или «половинным уроном» на деле редко имеет двойную или половинную ценность.
Метаигровые объекты, которыми вы можете воспользоваться или пренебречь
Иногда бывает, что есть предмет, который иногда полезен, а иногда нет – но использовать его или нет решает игрок, поэтому, если обстоятельства к тому не вынуждают, он не тратить ресурсы впустую.
Примерами служат ситуационное оружие в шутерах, которое носят с собой в качестве «смены», специализированные юниты в стратегиях, которые можно создать, по мере необходимости и игнорировать в других случаях, или ситуационные карты в коллекционных играх, которые могут дожидаться своих противников в запасной колоде. Обратите внимание, в таком случае на них влияют силы, не зависящие от игрока: случайная карта местности, на которой вы играете, юниты, которых создаёт противник, карты, находящиеся в колоде соперника.
В таких случаях велик соблазн оценить их в соответствии с вероятностью их востребованности. Например, если у меня есть карта, которая наносит 10 очков урона против красных существ в Magic, и я знаю, что в большинстве колод 2-3 цвета, так что у меня 40—50% вероятность сыграть в открытой игре против красного, и тогда такая карта должна стоить столько же, сколько карта, наносящая 4 или 5 очков урона любым противникам. Если игрок должен выбрать, использовать эту карту или нет, перед началом игры, не зная, играет ли его противник красным – это хороший метод.
|
Но в некоторых случаях вы знаете, что делает ваш противник. На турнире по Magic, после того, как разыгрывается первый тур из трёх раундов, вам разрешается поменять несколько карт из основной колоды на карты из дополнительной колоды. Вы можете отложить свою карту, наносящую 10 урона красным, и не играть ею первую игру, и взять только в том случае, когда ваш противник играет красным. Таким образом вы обеспечиваете 100% эффективность своей карты; единственной ценой становится место в запасной колоде, а это метаигровая цена. Как мы узнали несколько недель назад, пытаться оценить что-либо в игре, основываясь на метаигре – штука непростая. Всё что вы можете сказать, так это то, что она должна стоить немного меньше, чтобы компенсировать метаигровую стоимость, но не вполовину меньше, как стоила бы, если бы игрок вынужден был пользоваться ею в любом случае… Если только мы не хотим преднамеренно её недооценить, чтобы поощрить её использование в запасной колоде.
Так же дела обстоят и со специализированным юнитом в стратегии, если предположить, что вам ничего не стоит сама возможность создать его. Если большую часть времени он бесполезен, вы ничего не теряете, если не создаёте его. Но когда он понадобится, вы его создадите, и вы будете точно знать, что он будет полезен. Опять же, тогда он должен оцениваться, исходя из предположения, что ситуация, для которой он создаётся, происходит в 100% случаев. (Если же вы должны заплатить дополнительную цену за универсальность самой возможности создания юнита, то эту цену вам следует регулировать основываясь на реальном проценте времени, когда такая ситуация случается в игре).
|
Со сменным оружием в шутерах многое зависит от того, как структурирована игра. Если всё оружие бесплатное (не имеет никакой «ресурсной» стоимости), но выбрать можно только одно основное и одно на смену, вы должны очень внимательно сбалансировать единицы сменного оружия между собой, так, чтобы каждое оружие было полезно в одинаково вероятных ситуациях, или, по крайней мере, соотношение ситуационного преимущества к ожидаемой вероятность получения этого преимущества – оно-то уж точно должно быть одинаковым у всего оружия (таким образом, в игре может быть оружие, которое мощнее всего другого, но только в очень редких ситуациях, и оружие, которое весьма посредственно, но пригодно почти всегда и везде – и они сбалансированы, если это соотношение у них сошлось).
Метаигровые «комбо»
Итак, мы только что обсудили ситуации, над которыми игрок не властен. Но если что-то всё же зависит от игрока… То есть, если что-то само по себе не особо полезно, но в сочетании с чем-то другим даёт мощный эффект? Примером может быть стрельба с двух рук в шутерах, классы второстепенных (т.н. «поддерживающих») персонажей в массово-многопользовательских играх, ситуационные карты, вокруг которых строится колода в коллекционных карточных играх, дополнительные башни в играх типа «защита башни», которые улучшают характеристики находящихся рядом башен, и так далее. Их ситуационность имеет несколько аспектов: ведь они определённым образом вознаграждают игрока за удачный метаигровой выбор.
Чтобы разобраться, как приводить к балансу такие вещи, нам надо вернутся к рассмотренному ранее понятию цены упущенной возможности. В этом случае мы имеем дело с ценой упущенной метаигровой возможности: вероятно, вам придётся совершить в игре изменения, которые совершенно не связаны с тем, что вы пытаетесь сбалансировать, чтобы сделать ту или иную вещь полезной. В зависимости от ситуации, есть несколько способов подступиться к балансу таких объектов.
Один из них – взять всё «комбо» целиком и сбалансировать его, а затем разделить на элементы и сбалансировать их, основываясь на том, насколько все они полезны по отдельности. Например, в Magic было две карты – Lich и Mirror Universe:
— Lich сокращал очки жизни до нуля, но добавлял новые правила, которые помогали эффективно конвертировать ваши карты в жизни – сама по себе карта была очень рискованной, потому что когда она покидала игру, жизней у вас всё равно не оставалось, и вы моментально проигрывали! Даже без этого риска ценность карты была сомнительная, так как по сути она выручала вас, только если вы уже проигрывали, а иметь в колоде карты, полезные, когда вы проигрываете – это значит готовиться к поражению, что само по себе невыигрышная стратегия.
— Mirror Universe была картой для обмена очками жизни с противником – не такая рискованная, как Lich, раз вам выбирать, когда ею воспользоваться, но всё равно полезная только тогда, когда вы проигрываете, и эффективно её использовать было не так-то просто.
— Но вместе эти две карты могли обеспечить моментальную победу: вы обнуляете свои жизни, а затем меняетесь жизнями с противником – у него ноль, мгновенная победа!
Как такое оценить? Это, конечно, большая крайность: две карты сами по себе почти бесполезны, в других условиях дают не так уж много, но если их соединить – они всесильны. В такой ситуации, лучшее, что можно сделать – это перекос в сторону их бо́льшей совместной стоимости, чтобы она была сопоставима с похожим мощным выигрышным объектом, разве что чуть меньше, ведь тут требуются две карты (а две карты сложнее вытянуть из колоды, чем одну). Но как поделить стоимость надвое: одну сделать дешёвой, а другую дорогой? или сделать цену одинаковой для обеих? Уравновесьте их в соответствии с их полезностью. Lich даёт некоторые дополнительные преимущества (например, добор карт из колоды, когда вы получаете жизни), но при этом есть и очень неприятные последствия. Mirror Universe таких последствий не имеет, а также даёт некое психологическое преимущество – ваш противник может сдерживать свои атаки, ведь он не хочет, чтобы вы, почти убитый, пустили в ход эту карты и добили уже его. Их сложно сбалансировать относительно друг друга, но исходя из того, что происходило в игре на самом деле, их стоимость соотносима.
А если не впадать в крайности? Класс персонажей поддержки в ММО дает много бонусов к возможностям и исцелению других персонажей, принося пользу всем остальным в команде. Сами по себе они имеют некоторую ненулевую ценность (если возникнет такая надобность, они всегда могут атаковать врага, если они при этом могут исцелять и баффить самих себя, у них даже неплохо получится, да и вообще – они свежая кровь, на которую отвлекаются враги). Но их истинная ценность раскрывается только в группе, где они могут сделать лучших участников отряда ещё лучше. Как сбалансировать такое?
Давайте возьмём простой пример. Допустим, ваш поддерживающий персонаж может увеличивать силу атаки одного из союзников на 10%, но только одного за раз – так прописано в древе технологий; вам нужно рассчитать предположительную ценность этой способности, чтобы иметь возможность назначить ей адекватную цену. Чтобы вычислить, сколько же она стоит, давайте представим отряд игроков примерно одного уровня, найдём среди них класс с самым высоким показателем атаки и вычислим предположительную ценность атаки для этого персонажа. В группе искомая способность «бафнуть атаку» будет стоить 10% от этой величины. Само собой, эта способность будет не так полезна, если персонаж подвизается в одиночку или в составе группы, где нет сильных атакующих, так что вам нужно высчитать процент времени, когда этот персонаж будет путешествовать с группой, где такой бафф будет полезен, и учесть его в последующих вычислениях. Таким образом, цена упущенных возможностей при включении атакующего в ваш отряд очень низкая (большинство групп так или иначе включают хотя бы одного), так что эта поддерживающая способность будет почти всегда высокоэффективна, исходя из этого вы её и будете балансировать.
Что общего есть у примеров с картами Lich/Mirror Universe и классами персонажей поддержки? Когда вы сталкиваетесь с ситуационными эффектами, на которые игрок может повлиять, первое правило – это найти цену упущенных возможностей, которую платит игрок за создание этой ситуации, и учесть эту цену в качестве «стоимости» в противовес ситуационному преимуществу. Помимо этого, стоимость необходимо рассчитывать исходя из лучшего случая, а не из некой «усреднённой» ситуации: если игроки сами решают, когда им использовать каждый из элементов комбо, мы можем полагать, что они станут использовать их при оптимальных условиях.
Мультиклассовые персонажи
Раз уж мы заговорили о классах персонажей, как насчёт «мультиклассовых», которые встречаются во многих настольных ролевых играх? Обычно схема такая: вы делаетесь универсальным, получая доступ к уникальным способностях нескольких классов… но зато вы обычно имеете более низкий уровень всех этих умений, чем моноклассовые персонажи. Насколько ниже должен быть уровень умений, чтобы мультиклассовость была жизнеспособной стратегией (не слишком слабой), но в то же время не настолько сверхмощной, чтобы выбирать монокласс не имело смысла?
Это проблема универсальности. Игрок обычно не знает заранее, в какие ситуации попадёт его персонаж, так что он старается приготовиться ко всему понемногу. В конце концов, если бы он точно знал, чего ожидать, он бы просто выбрал самый эффективный монокласс, отбросив всё остальное! Между тем, наверняка он хотя бы примерно представляет себе, что его ждёт, или, по крайней мере, какие способности, которых ещё нет в его распоряжении, понадобятся его отряду, так что Воин/Вор пятого уровня, наверное, не так хорош, как Воин десятого уровня или Вор десятого уровня. Так как игрок должен выбирать заранее и, как правило, не может менять свой класс в ходе игры, ограничение довольно большое, так что вы вряд ли ошибётесь, предположив для начала, что моноклассовый персонаж должен быть в полтора раза сильнее мультиклассового, а затем подстраивать это значение, если будет необходимо. Таким образом, монокласс 10 уровня обычно так же силён, как дуал-класс 7 или 8 уровня.
Двупредельный выбор (исключающее или) в единственном игровом объекте
Иногда у вас есть один объект, который может либо одно, либо другое по выбору игрока, но не оба варианта сразу (объект либо исчезает по использовании, либо необратимо меняется). Например, в коллекционной карточной игре у вас есть карта, которая или вводит в игру новое существо, или увеличивает существо, уже имеющееся у вас. Или, может быть, в ролевой игре у вас есть кусок металла, из которого можно выковать либо замечательную броню, либо мощное оружие. Или в шутере вам даётся возможность улучшить одно оружие, из нескольких имеющихся у вас. В такого рода ситуациях, если игрок знает цену того, что он может получить (но выбрать должен только что-то одно), настоящая польза должна быть больше, чем каждый из вариантов сам по себе, но меньше, чем всё вместе взятое, в зависимости от ситуации. От чего же всё зависит? Это проблема универсальности, так что всё зависит от исходной пользы каждого из вариантов, цены/сложности смены стратегии в ходе игры и осведомлённости игрока о задачах, которые встанут перед ним далее в ходе игры.
Разница между PvE и PvP
Разработка игр PvE (Player versus Environment – «игрок против среды», где один или несколько игроков кооперируются против компьютера, системы, ИИ и т.д.) отличается от разработки игр PvP (Player versus Player – «игрок против игрока», где игроки непосредственно противостоят друг другу) с точки зрения ситуационного баланса.
Игры PvE гораздо проще. Вы как гейм-дизайнер разрабатываете окружающую среду, уровни, ИИ. Вы уже знаете, что будет «характерно» и «в среднем» для энкаунтеров игрока. Но даже в играх, где контент генерируется согласно установленным правилам, вы не знаете точно, с чем столкнётся персонаж, вы знаете только алгоритмы, которые за это отвечают (в конце концов, это вы их разработали), так что вы знаете ожидаемую вероятность того, что генератор контента выдаст определённые типы энкаунтеров, и в каких пределах.
На основании этого вам довольно просто рассчитать ожидаемые значения для PvE-игр, по крайней мере на основании достаточно точного предположения о ценах и пользах, когда речь заходит о ситуационных областях игры.
PvP посложнее, потому что игроки могут менять свои стратегии. «Ожидаемое значение» становится пустым звуком, ведь вы не знаете, чего ждать от противника. В таких случаях лучшие методы, которыми мы располагаем для определения типичного в игре, — это тестирование и анализ количественных показателей – их мы будем рассматривать подробнее на следующих неделях.
Если вы сейчас работаете над игрой…
Выберите проблемный объект в своей игре, который кажется вам слишком слабым или слишком сильным, и эти его качества зависят от условий или ситуации. (Так как ситуационный эффекты – самые сложные для баланса, если у вас есть проблемы, то они наверняка из этого разряда).
Для начала тщательно поищите, нет ли у объекта теневых стоимостей. Какими возможностями или универсальными свойствами вам приходится жертвовать, чтобы заполучить способности этого объекта? Какие другие свойства вам необходимо приобрести для начала, прежде чем вы получите возможность выбрать этот объект? Спросите себя, какова величина этих дополнительных стоимостей, и учтены ли они в ресурсной стоимости объекта.
Далее, рассмотрите универсальность самого объекта. Полезен ли он в разнообразных ситуациях или только изредка? Насколько эти ситуации зависят от игрока – то есть, если объект полезен только в некоторых случаях, может ли игрок сделать что-либо, чтобы эти случаи стали более вероятными, увеличивая таким образом ожидаемую ценность объекта?
Просто ли игроку поменять своё решение (универсальность игрока против универсальности объекта, раз бо́льшая универсальность игрока уменьшает ценность объектной универсальности) – если игрок выбирает объект, а затем решает сменить его на что-то другое, или при необходимости использует другие объекты или стратегии, когда это возможно… и если да, то насколько просто и есть ли у таких действий ощутимая цена? Каков ущерб, если игрок попал в ситуацию, где объект бесполезен? А теперь подумайте, как универсальность игровых систем и универсальность отдельных объектов должна влиять на пользы и стоимости.
Помог ли новый взгляд на объект выяснить, почему он казался слишком слабым или слишком сильным? Дал ли он вам более глубокое понимание других объектов в вашей игре, всей игровой системы в целом?
Домашнее задание
В качестве «домашнего задания» мы с вами рассмотрим игру Desktop Tower Defense 1.5, одну из тех, что сделала жанр «tower defense» популярным. (Полагаю, что вы в них не играете, если только в этом нет крайней необходимости, так как они чудовищно затягивают, и вы можете потратить на возню с ними кучу времени, которое можно было бы посвятить более продуктивным занятиям).
DTD 1.5 – отличная игра для анализа ситуационного игрового баланса, потому что почти всё в этой игре ситуационно! Вы покупаете башню и помещаете её где-нибудь на карте, и когда в поле зрения появляются враги, башня отстреливается. Покупать и улучшать башни надо за деньги, а деньги вы получаете убивая врагов башнями. Так как в любой момент игры у вас ограниченное количество денег, ваша цель – максимизировать среднее количество урона за доллар, наносимое вашей башней по врагам, так что с точки зрения игрока – это проблема эффективного распределения.
Ситуационная природа DTD
Итак, на первый взгляд, всё, что нужно сделать – выяснить, сколько урона может нанести одна башня, разделить на стоимость и взять башню с лучшим соотношением цены и урона. Просто, да?
За исключением того, что количество урона, которое нанесёт ваша башня – вещь исключительно ситуационная! У каждой башни есть радиус действия; как долго враги будут оставаться в радиусе действия под обстрелом полностью зависит от того, где вы поместили ваши башни. Если вы просто разместите башню в чистом поле, враги будут просто подходить к ней, не подвергая себя длительной опасности; если вы построите огромный лабиринт, где им придётся ходить то вперёд, то назад, оставаясь в зоне действия вышеупомянутой башни, она нанесёт гораздо больше урона.
Дальше больше: большинство башен могут стрелять лишь в одного врага одновременно, так что если мимо идёт группа врагов, общий урон, приходящийся на одного врага получается очень небольшим (один враг был поражён, остальные нет). Другие башни наносят урон по всей зоне поражения (ударная волна), что эффективно против больших скоплений врагов, но почти не работает против врагов-одиночек, особенно тех, что сильно разбросаны и быстро передвигаются. Один из типов башни почти не наносит урона, но замедляет врагов, в которых стреляет, задерживая их в радиусе поражения других башен, так что польза от них зависит от того, что ещё есть поблизости. Некоторые башни эффективны только против определённого типа врагов, или наоборот – неэффективны против определённых врагов, так что против некоторых набегов ваши башни будут совершенно бесполезны, даже если обычно они дают урон выше среднего. И есть ещё такие башни, которые совершенно ничего сами по себе не делают, но они увеличивают урон смежных с ними башен… так что их соотношение цена/польза очень варьируется в зависимости от того, какие башни размещены вокруг. Что ещё интереснее, размещение башен огромным блоком (чтобы эта башня увеличивала урон как можно большего числа башен) имеет скрытую цену в том, что такое размещение менее эффективно использует место на поле, так как врагам необходимо просто обойти одно большое препятствие, вместо того, чтобы пробираться сквозь длинный лабиринт. Так что балансировать такую игру очень сложно, ведь всё зависит от всего!
Ваша задача, если вы за неё возьметесь…
Так как эту игру неожиданно сложно анализировать, я ограничусь только одной небольшой игровой областью. В частности, я хочу, чтобы вы рассмотрели две башни: Роевую башню (Swarm Tower), которая действенна только против летающих врагов, но наносит им большой урон, и Вспомогательную башню (Boost Tower) – это та самая, что увеличивает урон окружающих её башен. Итак, лучшее место для их размещения – прямо в центре карты, в прямоугольном блоке 4х3. Давайте предположим, что вы решили все двенадцать мест в нём занять только Роевыми и Вспомогательными башнями, чтобы извести всех летающих врагов, надвигающихся на вас. Учитывая, что вы хотите минимизировать цену и максимизировать урон, каково оптимальное размещение этих башен?
Вот вам цифры, на которые можно опираться. Полностью прокачанная Роевая башня наносит 480 единиц урона за одно попадание, а в игре стоит $650. Полностью прокачанная Вспомогательная башня стоит $500 и не наносит урона, но улучшает смежные башни (которых касается углом или стороной) на +50%, так что на практике наносит 240 единиц урона за каждую смежную с ней Роевую. Обратите внимание: две смежные Вспомогательные башни никак друг на друга не действуют – они увеличивают нулевой урон друг друга на +50%, а это всё тот же ноль.
Предположим, что все башни прокачаны до предела (самые дорогие версии каждой башни имеют самое эффективное соотношение урона к цене).
Самым верным способом справиться с этой задачей (если вы умеете работать со скриптами или программировать) является написание программы, которая просто-напросто грубо просчитает все 3^12 варианта (нет башни, Роевая или Вспомогательная в каждом из 12 квадратов). Для каждого квадрата рассчитайте урон 480 для Роевой башни, 240*(количество смежных Роевых) для Вспомогательной башни или 0 для пустого квадрата. Добавьте общее количество урона и общую цену для каждого из сценариев, и проследите, каким будет лучшее соотношение урона и цены (то есть, разделите общий урон на общую стоимость и найдите самое большое значение).
Если у вас нет времени или вы не умеете писать такие программы, альтернативой может стать создание таблицы в Excel для расчёта урона и стоимости для каждого отдельного сценария. Создайте блок 4х3 ячейки, которые могут быть В (Вспомогательными), Р (Роевыми) или пустыми.
Под этим блоком создайте ещё один, чтобы рассчитывать индивидуальную стоимость каждой ячейки. Формула может выглядеть примерно так:
=IF(B2=”P”,640,IF(B2=”B”,500,0))
Наконец, создайте третий блок ячеек, чтобы рассчитывать урон для каждой из них:
=IF(B2=”Р”,480,IF(B2=”B”,IF(A1=”Р”,240,0)+IF(A2=”Р”,240,0)+IF(A3=”Р”,240,0)+IF(B1=”Р”,240,0)+IF(B3=”Р”,240,0)+IF(C1=”Р”,240,0)+IF(C2=”Р”,240,0)+IF(C3=”Р”,240,0),0))
Давайте возьмём сумму всех ячеек с уроном и поделим на сумму всех ячеек с ценой. Отобразите это в отдельной ячейке. Теперь всё, что вам надо сделать – это поиграть с первоначальными блоками ячеек, меняя их вручную с Р на В и обратно, чтобы оптимизировать итоговое соотношение урона и цены.
Итоговый результат
Когда вы найдёте то, что по вашему мнению является оптимальным расположением Роевых и Вспомогательных башен по соотношению урона к цене, вычислите общий урон и пользу только для Роевых башен, а также пользу и урон отдельно Вспомогательных. Если предположить, что игра оптимальна и что мы рассматриваем только эту одну, очень ограниченную ситуацию, какая из этих башен сильнее? – то есть основываясь на соотношении потраченных денег и принесённой пользы, какой тип башен (Роевые или Вспомогательные) делают бо́льший вклад в победу за каждый потраченный на них доллар?
Это всё, что вам нужно сделать, но если вы хотите большего, вы можете углубиться в этот анализ, как только пожелаете – я уже говорил, эта игра полна ситуационных тонкостей для баланса. Летающие враги попадаются только каждый седьмой раунд, так что если вы захотите рассчитать истинную эффективность нашего комплекса из Роевых и Вспомогательных башен, всё надо разделить на 7. Затем сравнить с другими типами башен и выяснить, дают ли какие-либо комбинации наземных типов башен (для 6 волн других, нелетающих врагов) и противовоздушных башен лучшие итоговые результаты, чем использование таких башен, которые атакуют врагов и в воздухе, и на земле. Ну и, конечно, вы можете проверить свои теории в игре, если у вас есть время. Я буду рад увидеть ваши имена в списке рекордсменов.