Все пройдет...
Фух... наконец добрался до компа. Прошел второй день КРИ 2010, который я благополучно пропустил по причине дня рождения сына, но за то есть что сказать о дне первом.
Начнем с того, что конференция не блистала в первый день обилием стендов, однако темы на ней поднимались весьма и весьма интересные. Ваш покорный слуга также не избежал участи выступить.
Как прошло выступление - судить зрителям, но даже по одному количеству собравшихся уже можно смело заявить, что тема людей заинтересовала.
Надеюсь, записи с этого КРИ не повторят судьбы прошлогодних, и их таки скоро вывесят на сайте конференции. А пока выложу тут краткий конспект и презентацию выступления.
В презентации ничего особого нет, но если надо, ее можно скачать тут (450 КБ):
ifolder.ru/17740973
www.fayloobmennik.net/29580
sharezoid.com/x1pbuvnen9h7.html
читать дальшеБалансирование на краю пропасти
(или как переложить свою работу на чужие плечи).
Роль баланса в онлайновом проекте трудно переоценить. Всякий человек, имеющий хоть какое-то отношение к онлайн-играм, будь то игрок или разработчик, несомненно, подтвердит важность правильной балансировки. Однако, когда дело доходит до написания концепт-документа, мало кто среди описания основных фич игры укажет качественный баланс или хотя бы перечислит основные параметры балансировки проекта. Чаще всего балансировка идет по принципу: наберем побольше фич, а на этапе бета-тестирования их скорректируем. Причем в условиях продакшена, как правило, времени на тестирование и отладку катастрофически не хватает и продукт в результате выходит таким, каким выходит.
Тут было бы самое время вставить, что «А вот у нас все по-другому!», но, увы, и у нас все именно так. Ибо очень трудно убедить продюсера в необходимости выделения оплачиваемых человеко-часов на разработку фичи, которая, в случае успеха, будет совершенно не заметна игроку. В конце концов, баланс игры подобен пищеварению: пока он хорош, его не замечаешь. Но стоит ему нарушиться…
Размышляя на эту тему, а также изучая труды куда более умудренных коллег, я неминуемо ступил на истоптанный путь поиска возможности переложить тяжелый и неблагодарный труд балансировки и регулирования на чьи-нибудь чужие плечи. И, как это ни странно – нашел. Ведь фактически каждая игра обладает практически неограниченным бесплатным человеческим ресурсом в виде… игроков! И стоит этой продуктивно настроенной массе дать правильные механизмы, как процесс балансировки игры превращается из нудной работы в увлекательный геймплей.
Несомненно, я тут же задался целью изобретения игры, которая смогла бы балансировать себя самое без вмешательства извне. И естественно, у меня ничего не получилось. Но я льщу себе мыслью, что некоторые выводы, которые я сделал, помогут кому-то продвинуться дальше в нелегком труде изобретения саморегулирующейся игры.
Итак, что же такое баланс?
В словаре это слово трактуется по-разному, но в основном как «система показателей, характеризующая какое-либо явление путем сопоставления или противопоставления отдельных его сторон».
Собственно баланс игры – понятие комплексное. Но я вовсе не хочу в рамках своего доклада пытаться разобрать все аспекты балансировки онлайновых игр, остановлюсь только на тех моментах, механизмы саморегуляции которых мне все-таки удалось нащупать.
Баланс соотношения между сторонами.
Прежде чем перейти к основной части доклада, я хочу остановиться на некоторых терминах и тезисах, из которых я собираюсь в дальнейшем исходить.
Какой бы ни была игра, она чаще всего имеет некий объект, с которым игрок ассоциирует себя. Чаще всего это персонаж, но также это может быть город, компания или что-то еще. Я называю этот объект «точкой отождествления».
Точка отождествления – это то, что игрок воспринимает как свое внутри-игровое «я». То, развитием, продвижением и утверждением чего он занимается в процессе игры.
Именно балансировка собственной точки отождествления в отношении других точек наиболее бросается в глаза игроку.
Честно скажу, я не экономист и далек от этой великой науки, однако мне кажется, именно экономические законы наиболее применимы для балансировки игр. Дело в том, что мне импонирует точка зрения Джона Хопсона (John Hopson) на возможности персонажа в игре как на товары, а на взаимодействие игроков – как на товарообмен.
С этой точки зрения для долгосрочного развития проекта я выделю некоторые положения, из которых в дальнейшем буду исходить:
1. Онлайновая игра бесконечна. Следовательно, развитие точек отождествления тоже должно быть бесконечно.
2. Контент конечен. Следовательно, геймплей должен строиться не на контенте, а на игроках.
3. Ресурс должен быть конечен. Только конечный ресурс пользуется спросом. Бесконечный ресурс автоматически ведет к гиперинфляции.
4. Цена ресурса для начинающего и для профессионала равнозначна.
Первые два пункта аксиоматичны и, на мой взгляд, не требуют доказательств. Что касается конечности ресурса и равнозначности цен, то тут все несколько сложнее, и я подробнее остановлюсь на этих вопросах во второй части доклада.
Возьмем для простоты игру, в которой игрок отождествляет себя с персонажем. В данный момент большинство игр предлагают игроку довольно широкий выбор персонажей, и вопрос балансировки их друг относительно друга, а также относительно сторон игрового конфликта, стоит в таких играх довольно остро. Каким же образом необходимо строить баланс, чтобы игра сама регулировала равновесие персонажей и сторон? На первый взгляд это кажется очень сложным, но при детальном исследовании все становится намного проще.
Итак, возьмем для примера 3 игровые стороны:
• Народ камня
• Народ ножниц
• Народ бумаги
Народ камня производит камни и может кидать ими в противника, беспрепятственно поражая бойцов Народа ножниц. Однако они бессильны перед нежным хрустом зеленых бумажек Народа бумаги.
Народ ножниц производит боевые ножницы, которыми он легко сокрушает бумажные доспехи воинов Народа бумаги, но, увы, они бессильны против дальнобойных камнеметов Народа камня.
А Народ бумаги выпускает красивые цветные бумажки, поражающие воображение Народа камня, но уступающие острым лезвиям Народа ножниц.
Причем представители каждого народа могут производить только свой профильный товар, но использовать могут как свои орудия, так и чужие.
Важно отметить, что всякий ресурс в игре конечен и не может накапливаться, о чем я расскажу во втором пункте моего доклада.
То есть у нас в игре появляется 3 типа атаки (метнуть камень, ткнуть ножницами и отвлечь шелестом бумаги).
Им противостоят 3 типа защиты: защита от камня, защита от ножниц и защита от бумаги.
Как реализовать баланс сторон в данной нехитрой игре?
Так же, как и в детском ее прототипе:
Народ камней имеет:
• Защита от ножниц = 50%
• Защиту от камня = 25%
• Защиту от бумаги = 0%
Казалось бы, этот принцип реализован во многих играх, но не все так просто.
Предположим, один из дикарей племени камня решил стать самым великим воином своего племени. Он швырял во всех камнями, но и сам получал то же самое. А ножницы, добываемые в набегах на беззащитный Народ ножниц, вовсе невозможно применять против камней. Но зато трофейные ножницы можно использовать против Народа бумаг! Захваченные при этом бумаги отлично помогут дикарю самоутвердиться в своем племени.
И так, что же мы узнаем из истории будущего великого вождя? Да то, что каждое племя нуждается в остальных, чтобы адекватно развиваться.
Если Народ камня сокрушит Народ ножниц, то некому станет производить ножницы, и Народ камня окажется беззащитен против Народа бумаг.
В итоге игра сама вынуждает игроков соблюдать равновесие. Если Народ ножниц терпит большие потери, то Народ камня не сможет получить достаточное количество ножниц, чтобы защититься от Народа бумаг. Соответственно безнаказанные набеги Народа бумаг ослабят Народ камня, что позволит Народу ножниц вновь укрепить свои позиции.
Эта система имеет одну особенность. В своем нынешнем виде она очень проста и по тому все-таки уязвима. Но стоит ее усложнить на один порядок, как устойчивость возрастает многократно.
Имея баланс пяти сторон, уже невозможно представить ситуацию, при которой какая-либо сторона получила бы преимущество над остальными.
Аналогичным же образом балансируются классы персонажей внутри одной стороны.
Если умения персонажей представить как производимый ими товар, то сразу становится ясно, насколько этот персонаж будет востребован в игре. Такой метод балансировки не только позволяет дать равные возможности различным классам игроков, но и вынуждает их искать союзов и объединяться против общих противников, отчего социальная сторона онлайнового проекта только выигрывает.
Достаточно только заставить игроков нуждаться в товаре, производимом игроками других классов, и вы забудете о необходимости балансировать эти классы между собой.
Гиперинфляция и игровая экономика.
Создатели игр часто сталкиваются с проблемой гиперинфляции внутри игровой экономики. Стандартная схема, перенесенная из сингл-плеер игр, где с повышением уровня игрок получает и тратит все больше и способен накапливать бесконечное число ресурса, настолько сильно вошла в обиход, что ее до сих пор применяют и в онлайн проектах. Такое явление недопустимо для бесконечно развивающейся онлайновой игры. Игроки средних и высоких уровней будут легко делиться своими накоплениями с младшими уровнями, а это нивелирует достижения «честных» игроков и понижает удовольствие от игры для самих «халявщиков».
В любом игровом мире есть как минимум один действительно и безвозвратно конечный ресурс – время. Какие бы игровые экономические законы не царили в вашей вселенной, игрок все равно сможет играть не более 24 часов реального времени в сутки.
Мы не можем не потреблять время. Именно оттого данный ресурс так ценен. Большинство платных опций условно-бесплатных игр основано на уменьшении временных затрат. Соответственно, если остальные ресурсы игры будут столь же конечны и потребляемы, то игровой экономике не грозит гиперинфляция.
Чтобы добиться высокого спроса на любой ресурс, нужно заранее строго рассчитать потребности персонажа в этом ресурсе на уровень развития и задать это количество в виде счета игрока.
Счет игрока.
Счет игрока в любом виде ресурса (валюта, опыт, урон, лечение, броня или что угодно еще) я делю на 3 составляющие:
|Вложенный ресурс |Наличный ресурс |Ресурс потенциальный |
Где:
Вложенный ресурс – количество ресурса, уже затраченного на развитие точки отождествления игрока.
Наличный ресурс – количество ресурса, уже имеющееся на счету игрока, но пока не вложенное в развитие.
Потенциальный ресурс – количество ресурса, необходимое точке отождествления, чтобы перейти на новый уровень развития.
Входя в игру, персонаж монетизирует потенциальный ресурс, выплескивая его в игровую экономику. Далее в процессе игры он зарабатывает ресурс, переводя его из потенциального в наличный и вложенный. Таким образом, в экономике игры единовременно присутствует количество ресурса, равное сумме потенциальных ресурсов игроков. Когда игрок покидает игру, он демонетизирует свой потенциальный счет и уносит его с собой.
Полностью расходуя свой потенциальный ресурс, игрок получает достаточно средств, чтобы перейти на новый уровень. Если игрок по какой-то причине не переводит свою точку отождествления на новый уровень, то он больше не получает данного ресурса – так как он уже монетизировал весь свой потенциальный ресурс.
Как только точка отождествления игрока перейдет на новый уровень, она монетизирует в игровую экономику то количество средств, которое ей необходимо для достижения следующего уровня.
В результате в экономике игры не накапливается избыточная масса ресурса. Всякий ресурс существует исключительно в тех количествах, которые в данный момент востребованы игроками.
Теперь вспомним о цене ресурса. Тезис о том, что цена ресурса в процессе развития не должна изменяться, на первый взгляд выглядит довольно спорным. Мы все привыкли, что в классической системе развития персонажа по мере его развития стоимость улучшений растет, а полезность их, наоборот, падает.
К примеру, если на первом уровне урон нашего гипотетического персонажа =10, и мы за одну монету поднимаем этот параметр на 1, получая урон =11, то это ощутимое изменение (на 10%) за небольшую плату. В то же время, если цена улучшения росла хотя бы на 1 монетку за уровень, то при повышении урона со 100 до 101 мы получаем ничтожное (менее 1 %) усиление за 90 монет. Естественно, ценность монет как ресурса при подобной системе развития постоянно падает по мере развития персонажа.
Однако, если мы применяем для боевой системы таблицы сравнительных значений, а не конечные значения, мы избегаем падения ценности единицы урона: и при переходе с 10 на 11, и со 100 на 101 изменение урона происходит на одно и то же значение. Но и в этом случае 1 монета для игрока первого уровня в 90 раз дороже, чем для игрока сотого уровня. Гиперинфляция налицо.
Рассмотрим другой пример: тот же персонаж, имеющий в начале урон, равный 10 и повышающий его на 1 за одну монету. Однако при повышении уровня мы не повышаем стоимость развития. Таким образом, когда приходит срок развить урон с сотни до ста одного, персонаж за ту же монету получает то же изменение.
При этом следует учесть, что ресурс (пресловутая 1 монета) и игроку первого уровня, и игроку сотого достается одинаково тяжело. Понятно, что в этом случае монета равнозначно нужна и новичку, и опытному, а при такой системе развития о гиперинфляции ресурса речи не идет.
Однако победа над гиперинфляцией – это не все: нам необходимо заставить игроков самих балансировать стоимость развития характеристик, навыков и т.д. В конце концов, всякому ясно, что более сильный навык должен дороже стоить: ведь он – ходовой товар. И в этом нам тоже помогут законы экономики – мы просто будем продавать все на аукционе.
Удобнее всего реализовать этот механизм в виде так называемого Голландского аукциона, в ходе которого вначале объявляется самая высокая цена на продаваемый товар, а затем ставки снижаются до той, на которую согласится первый покупатель, которому и продается товар.
В нашем случае стоимость товара (навыка, умения, заклинания, апгрейда характеристик и т.д.) никогда не опускается ниже номинала, а при каждой покупке цена увеличивается на стоимость покупки. Этот аукцион один на всех игроков и скорость падения цены зависит от количества персонажей в игре. Таким образом, ходовые навыки и характеристики будут стоить дороже, в то время, как более слабые будут постоянно пребывать где-то в области номинала.
При этом стоит широко применять рынок, где игроки могли бы торговать друг с другом своими навыками и умениями сами назначая цены за них. В идеальном варианте игрокам должны быть доступны лишь базовые способности, из которых они сами могли бы конструировать свои собственные навыки и торговать ими друг с другом по ценам, назначаемым самими игроками. Такой механизм переложил бы на игроков не только балансировку цен, но и балансировку конкурентоспособности самих навыков, которые они создают.
Возвращаясь к первой части доклада, давайте выясним, как все вышесказанное отразится на нашем будущем Великом Вожде Народа камня.
Итак, у вождя есть два вида ресурса: время и булыжники, которые он производит.
Время конечно по определению, а булыжники он может производить по 1 в час. Чтобы сделать ресурс булыжников ограниченным, дадим им время жизни, равное 24 часам, после чего булыжник выдыхается и рассыпается в пыль.
Предположим, что один булыжник в бою можно метнуть только один раз, а бой длится 12 ходов.
Таким образом, мы точно знаем, что будущий вождь не сможет накопить больше 24 камней. Он ни за что не отдаст свои камни никому, так как они нужны для захвата власти. Наоборот, он постарается захватить чужие камни, чтобы иметь возможность чаще сражаться за один день.
Более того, вне зависимости от того, какой уровень у вождя, камень для него все равно остается так же ценен, как и на первом, ибо он дает возможность совершить ход.
Умения, навыки и прочие способности.
В классической RPG утвердилось понятие триумвирата основных классов: Танк, ДПС и Саппорт.
• Танк – персонаж, специализирующийся на высокой способности выдерживания атаки противника.
• DPS – персонаж, специализирующийся на нанесении врагам ощутимого урона.
• Саппорт – персонаж, специализирующийся на поддержке (лечении, усилении и т.п.) остальных членов группы.
В современных онлайн-играх такие классы в чистом виде не встречаются. Необходимость выживать в одиночку заставляет персонажей сочетать в себе качества как минимум двух из указанных ипостасей. При этом существует большой риск появления наиболее универсального персонажа, который станет очевидным и единственным выбором для игрока. Чтобы не допустить подобного, мы вновь обратимся к экономике и рассмотрим производимые персонажами возможности, как товары, а взаимодействие персонажей в группах – как товарооборот.
"Если иностранное государство может поставлять нам сырье дешевле, чем нам самим обходится его производство, лучше приобрести его с некоторой частью занятости нашей собственной промышленности, таким образом, мы будем иметь некоторые преимущества". (Адамо Смит «Богатство Наций», книга 4, глава 2)
Этот постулат в переложении на язык балансировки возможностей игрока говорит нам:
Если персонажу, в недостаточной степени обладающему каким-то параметром, дешевле поделиться наградой с другим персонажем, чем самому развивать этот параметр, то он предпочтет помощь извне.
При этом важно соблюдать процентное содержание возможностей одного класса, как внутри класса, так и в сумме с остальными.
Допустим, мы делаем игру с тремя классами персонажей:
• Паладин – гибрид, имеющий 20 атакующих навыков, 20 навыков поддержки (лечение, усиление) и 60 защитных навыков.
• Маг – гибрид, имеющий 20 навыков поддержки (лечение, усиление), 20 защитных навыков и 60 атакующих навыков.
• Лекарь - гибрид, имеющий 20 защитных навыков, 20 атакующих навыков и 60 навыков поддержки (лечение, усиление).
Каждый класс содержит одинаковое количество навыков, а сложив эти параметры, мы получаем 100 защитных навыков, 100 атакующих навыков и 100 навыков поддержки (лечение, усиление), то есть ту самую классическую партию из трех чистых персонажей (танк, DPS, и Саппорт).
Но не только количеством, но и качеством товара определяется конкурентоспособность классов.
Ясно же, что если 19 из 20 навыков не используются, то в целом это направление не имеет смысла. Таким образом, мы вплотную подходим к пониманию количества товара.
Количество товара на единицу затрат.
Применение всякого навыка производит некоторое количество товара. Удар производит урон, Блок – производит защиту, а Лечение производит здоровье. Любой из этих товаров будет конкурентоспособен только в том случае, если он необходим покупателям и стоит дешевле, чем если бы покупатель сам производил его.
При этом затратами на произведение товара являются:
• Ресурсы (в том числе и время), потраченные на изучение навыка.
• Ресурсы (манна, время, боеприпасы и т.д.), затрачиваемые на использование навыка в бою.
Рассчитав, какое количество товара приходится на единицу затрат, и сравнив этот показатель с другими навыками, производящими этот же товар, мы легко можем рассчитать, является ли он конкурентоспособным.
Также важным показателем является количество товара на рынке. Если мы предполагаем, что в нашей игре на одного Танка должно приходиться два DTS и один Саппорт, то количество производимого урона на единицу затрат должно быть вдвое меньше, чем количество защиты и лечения на ту же единицу.
Идеальные возможности для балансирования дает система навыков, позволяющая всем классам изучать общий набор навыков, просто делая профильные навыки существенно дешевле непрофильных. В таком случае, игрок сам решает, какой товар в тех или иных экономических условиях производить его персонажу.
Существует понятие сравнительного преимущества, которое определяет не тот параметр, в котором субъект лучше других, а тот, в котором он менее плох, чем другие. Оно указывает нам, что персонаж, чей профиль вроде бы предполагает производство одного товара, вследствие излишней конкуренции на своем профильном рынке может перейти на производство другого товара.
Тот же Маг из предыдущего примера (20 навыков поддержки (лечение, усиление), 20 защитных навыков и 60 атакующих навыков) в случае избытка DPS и недостатка Саппорта в команде может переключиться на использование имеющихся у него 20 навыков поддержки и заняться производством лечения, спрос на которое выше, нежели на урон.
Также при разработке навыков следует учитывать такие сложнопрогнозируемые моменты как:
• Сложность. К примеру, вы прописываете определенные условия для применения навыка. Таким образом, вы понижаете уровень его популярности и снижаете конкурентоспособность товара, не увеличивая, казалось бы, себестоимости. Чтобы вычислить параметр сложности навыка, нужно рассчитать сколько раз за определенное (статистическое) количество боев этот навык может быть применен. Затем полученное количество нужно сравнить с количеством применений того же навыка в идеале (то есть, если условия в любой момент времени оказались бы соблюдены). Отношение идеального количества к реальному покажет увеличение стоимости товара.
Например, вы создали два навыка для Саппорта: «Единовременное лечение двоих персонажей» на 10 Нр за 20 единиц манны и «Единовременное лечение четырех персонажей» на 10 Нр за 40 единиц манны. Вам кажется, что единица товара стоит одинаково – 1Нр за 1Мр. Но на самом деле это так только в том случае, если группы из 4 персонажей в игре встречаются столь же часто, как и группы из двух. Чаще всего в играх это иначе. Поэтому получается, что товар второго навыка удастся продать реже, чем товар первого, а значит и конкурентоспособность его меньше.
• Очевидность. Часто выгода от навыка не очевидна и оттого стоимость товара падает.
К примеру, навык, заставляющий противника атаковать персонажа врукопашную. Этот навык обладает скрытым свойством – он не позволяет вражеским лучникам и магам применять дальнобойные атаки. Однако неочевидность данного эффекта снижает стоимость производимого товаром навыка. Надо сказать, что действие очевидности временно. Рано или поздно, игроки понимают истинную стоимость навыка, и он приобретает свою реальную стоимость.
Ясно, что знание всех этих механизмов нужно только для установления номинальной цены товара. Дальнейшее – дело рук аукциона и самих игроков.
Как же дать игрокам равные возможности на рынке игры и сделать множество персонажей конкурентоспособными? Да все тем же образом. Нужно всего лишь разбить товары на классы.
Например:
• Урон Мага, урон Паладина и урон Лекаря следует разбить на 3 различные группы: магический, физический и ядовитый.
• Защиту Мага, Паладина и Лекаря также разбиваем на магическую, физическую и защиту от яда.
• Лечение, соответственно, делится на лечение от магического урона, от физического и от ядовитого.
Разделив классы все по тому же методу «камень/ножницы/бумага», мы получаем:
• Маг производит: магический урон, защиту от физического урона и лечение ядовитого.
• Паладин производит физический урон, защиту от яда и лечение магического.
• Лекарь производит ядовитый урон, защиту от магического и лечение от физического.
То есть каждый класс в отношении других классов выполняет сразу функции всех трех классов. В зависимости от ситуации, каждый персонаж найдет свою нишу для производства товара, нужного другим членам команды.
А что же наш Великий Вождь? Посмотрим, что он представляет собой теперь:
• Он воин племени, он умеет швырять сверхтяжелые каменные глыбы
• Его каменный панцирь легко отражает попадание ядовитых камешков местных знахарей
• Он знает, как готовить целебный бальзам для лечения ожогов от огненных камней местных шаманов
• Он играючи побеждает жалких лекарей Народа ножниц и почти на равных сражается с докторами Народа бумаги
• Он легко расправляется с ничтожными бойцами Народа ножниц, а против воителей Народа бумаги способен удержаться на ногах целых три раунда
• Он с трудом повергает подлых колдунов Народа ножниц и в панике бежит от чародеев Народа бумаг.
Таким образом, мы имеем устойчивую саморегулирующуюся систему, выстроенную силами самих игроков. Задача гейм-дизайнеров сводится лишь к тому, чтобы создать предпосылки к такой балансировке и довести до игрока ее принципы еще на момент генерации персонажа.
Какие выводы я хочу сделать из этого доклада?
1. Заставьте противников нуждаться друг в друге – и тогда они сами будут поддерживать баланс между собой.
2. Сделайте ресурсы конечными, а развитие бесконечным, и тогда игроки сами установят цены на рынке игры.
3. Уравняйте доходы игроков разных уровней, и тогда игроки сами спасут вашу экономику от краха.
4. Дайте игрокам равные возможности, и они будут действительно равны
Начнем с того, что конференция не блистала в первый день обилием стендов, однако темы на ней поднимались весьма и весьма интересные. Ваш покорный слуга также не избежал участи выступить.
Как прошло выступление - судить зрителям, но даже по одному количеству собравшихся уже можно смело заявить, что тема людей заинтересовала.
Надеюсь, записи с этого КРИ не повторят судьбы прошлогодних, и их таки скоро вывесят на сайте конференции. А пока выложу тут краткий конспект и презентацию выступления.
В презентации ничего особого нет, но если надо, ее можно скачать тут (450 КБ):
ifolder.ru/17740973
www.fayloobmennik.net/29580
sharezoid.com/x1pbuvnen9h7.html
читать дальшеБалансирование на краю пропасти
(или как переложить свою работу на чужие плечи).
Роль баланса в онлайновом проекте трудно переоценить. Всякий человек, имеющий хоть какое-то отношение к онлайн-играм, будь то игрок или разработчик, несомненно, подтвердит важность правильной балансировки. Однако, когда дело доходит до написания концепт-документа, мало кто среди описания основных фич игры укажет качественный баланс или хотя бы перечислит основные параметры балансировки проекта. Чаще всего балансировка идет по принципу: наберем побольше фич, а на этапе бета-тестирования их скорректируем. Причем в условиях продакшена, как правило, времени на тестирование и отладку катастрофически не хватает и продукт в результате выходит таким, каким выходит.
Тут было бы самое время вставить, что «А вот у нас все по-другому!», но, увы, и у нас все именно так. Ибо очень трудно убедить продюсера в необходимости выделения оплачиваемых человеко-часов на разработку фичи, которая, в случае успеха, будет совершенно не заметна игроку. В конце концов, баланс игры подобен пищеварению: пока он хорош, его не замечаешь. Но стоит ему нарушиться…
Размышляя на эту тему, а также изучая труды куда более умудренных коллег, я неминуемо ступил на истоптанный путь поиска возможности переложить тяжелый и неблагодарный труд балансировки и регулирования на чьи-нибудь чужие плечи. И, как это ни странно – нашел. Ведь фактически каждая игра обладает практически неограниченным бесплатным человеческим ресурсом в виде… игроков! И стоит этой продуктивно настроенной массе дать правильные механизмы, как процесс балансировки игры превращается из нудной работы в увлекательный геймплей.
Несомненно, я тут же задался целью изобретения игры, которая смогла бы балансировать себя самое без вмешательства извне. И естественно, у меня ничего не получилось. Но я льщу себе мыслью, что некоторые выводы, которые я сделал, помогут кому-то продвинуться дальше в нелегком труде изобретения саморегулирующейся игры.
Итак, что же такое баланс?
В словаре это слово трактуется по-разному, но в основном как «система показателей, характеризующая какое-либо явление путем сопоставления или противопоставления отдельных его сторон».
Собственно баланс игры – понятие комплексное. Но я вовсе не хочу в рамках своего доклада пытаться разобрать все аспекты балансировки онлайновых игр, остановлюсь только на тех моментах, механизмы саморегуляции которых мне все-таки удалось нащупать.
Баланс соотношения между сторонами.
Прежде чем перейти к основной части доклада, я хочу остановиться на некоторых терминах и тезисах, из которых я собираюсь в дальнейшем исходить.
Какой бы ни была игра, она чаще всего имеет некий объект, с которым игрок ассоциирует себя. Чаще всего это персонаж, но также это может быть город, компания или что-то еще. Я называю этот объект «точкой отождествления».
Точка отождествления – это то, что игрок воспринимает как свое внутри-игровое «я». То, развитием, продвижением и утверждением чего он занимается в процессе игры.
Именно балансировка собственной точки отождествления в отношении других точек наиболее бросается в глаза игроку.
Честно скажу, я не экономист и далек от этой великой науки, однако мне кажется, именно экономические законы наиболее применимы для балансировки игр. Дело в том, что мне импонирует точка зрения Джона Хопсона (John Hopson) на возможности персонажа в игре как на товары, а на взаимодействие игроков – как на товарообмен.
С этой точки зрения для долгосрочного развития проекта я выделю некоторые положения, из которых в дальнейшем буду исходить:
1. Онлайновая игра бесконечна. Следовательно, развитие точек отождествления тоже должно быть бесконечно.
2. Контент конечен. Следовательно, геймплей должен строиться не на контенте, а на игроках.
3. Ресурс должен быть конечен. Только конечный ресурс пользуется спросом. Бесконечный ресурс автоматически ведет к гиперинфляции.
4. Цена ресурса для начинающего и для профессионала равнозначна.
Первые два пункта аксиоматичны и, на мой взгляд, не требуют доказательств. Что касается конечности ресурса и равнозначности цен, то тут все несколько сложнее, и я подробнее остановлюсь на этих вопросах во второй части доклада.
Возьмем для простоты игру, в которой игрок отождествляет себя с персонажем. В данный момент большинство игр предлагают игроку довольно широкий выбор персонажей, и вопрос балансировки их друг относительно друга, а также относительно сторон игрового конфликта, стоит в таких играх довольно остро. Каким же образом необходимо строить баланс, чтобы игра сама регулировала равновесие персонажей и сторон? На первый взгляд это кажется очень сложным, но при детальном исследовании все становится намного проще.
Итак, возьмем для примера 3 игровые стороны:
• Народ камня
• Народ ножниц
• Народ бумаги
Народ камня производит камни и может кидать ими в противника, беспрепятственно поражая бойцов Народа ножниц. Однако они бессильны перед нежным хрустом зеленых бумажек Народа бумаги.
Народ ножниц производит боевые ножницы, которыми он легко сокрушает бумажные доспехи воинов Народа бумаги, но, увы, они бессильны против дальнобойных камнеметов Народа камня.
А Народ бумаги выпускает красивые цветные бумажки, поражающие воображение Народа камня, но уступающие острым лезвиям Народа ножниц.
Причем представители каждого народа могут производить только свой профильный товар, но использовать могут как свои орудия, так и чужие.
Важно отметить, что всякий ресурс в игре конечен и не может накапливаться, о чем я расскажу во втором пункте моего доклада.
То есть у нас в игре появляется 3 типа атаки (метнуть камень, ткнуть ножницами и отвлечь шелестом бумаги).
Им противостоят 3 типа защиты: защита от камня, защита от ножниц и защита от бумаги.
Как реализовать баланс сторон в данной нехитрой игре?
Так же, как и в детском ее прототипе:
Народ камней имеет:
• Защита от ножниц = 50%
• Защиту от камня = 25%
• Защиту от бумаги = 0%
Казалось бы, этот принцип реализован во многих играх, но не все так просто.
Предположим, один из дикарей племени камня решил стать самым великим воином своего племени. Он швырял во всех камнями, но и сам получал то же самое. А ножницы, добываемые в набегах на беззащитный Народ ножниц, вовсе невозможно применять против камней. Но зато трофейные ножницы можно использовать против Народа бумаг! Захваченные при этом бумаги отлично помогут дикарю самоутвердиться в своем племени.
И так, что же мы узнаем из истории будущего великого вождя? Да то, что каждое племя нуждается в остальных, чтобы адекватно развиваться.
Если Народ камня сокрушит Народ ножниц, то некому станет производить ножницы, и Народ камня окажется беззащитен против Народа бумаг.
В итоге игра сама вынуждает игроков соблюдать равновесие. Если Народ ножниц терпит большие потери, то Народ камня не сможет получить достаточное количество ножниц, чтобы защититься от Народа бумаг. Соответственно безнаказанные набеги Народа бумаг ослабят Народ камня, что позволит Народу ножниц вновь укрепить свои позиции.
Эта система имеет одну особенность. В своем нынешнем виде она очень проста и по тому все-таки уязвима. Но стоит ее усложнить на один порядок, как устойчивость возрастает многократно.
Имея баланс пяти сторон, уже невозможно представить ситуацию, при которой какая-либо сторона получила бы преимущество над остальными.
Аналогичным же образом балансируются классы персонажей внутри одной стороны.
Если умения персонажей представить как производимый ими товар, то сразу становится ясно, насколько этот персонаж будет востребован в игре. Такой метод балансировки не только позволяет дать равные возможности различным классам игроков, но и вынуждает их искать союзов и объединяться против общих противников, отчего социальная сторона онлайнового проекта только выигрывает.
Достаточно только заставить игроков нуждаться в товаре, производимом игроками других классов, и вы забудете о необходимости балансировать эти классы между собой.
Гиперинфляция и игровая экономика.
Создатели игр часто сталкиваются с проблемой гиперинфляции внутри игровой экономики. Стандартная схема, перенесенная из сингл-плеер игр, где с повышением уровня игрок получает и тратит все больше и способен накапливать бесконечное число ресурса, настолько сильно вошла в обиход, что ее до сих пор применяют и в онлайн проектах. Такое явление недопустимо для бесконечно развивающейся онлайновой игры. Игроки средних и высоких уровней будут легко делиться своими накоплениями с младшими уровнями, а это нивелирует достижения «честных» игроков и понижает удовольствие от игры для самих «халявщиков».
В любом игровом мире есть как минимум один действительно и безвозвратно конечный ресурс – время. Какие бы игровые экономические законы не царили в вашей вселенной, игрок все равно сможет играть не более 24 часов реального времени в сутки.
Мы не можем не потреблять время. Именно оттого данный ресурс так ценен. Большинство платных опций условно-бесплатных игр основано на уменьшении временных затрат. Соответственно, если остальные ресурсы игры будут столь же конечны и потребляемы, то игровой экономике не грозит гиперинфляция.
Чтобы добиться высокого спроса на любой ресурс, нужно заранее строго рассчитать потребности персонажа в этом ресурсе на уровень развития и задать это количество в виде счета игрока.
Счет игрока.
Счет игрока в любом виде ресурса (валюта, опыт, урон, лечение, броня или что угодно еще) я делю на 3 составляющие:
|Вложенный ресурс |Наличный ресурс |Ресурс потенциальный |
Где:
Вложенный ресурс – количество ресурса, уже затраченного на развитие точки отождествления игрока.
Наличный ресурс – количество ресурса, уже имеющееся на счету игрока, но пока не вложенное в развитие.
Потенциальный ресурс – количество ресурса, необходимое точке отождествления, чтобы перейти на новый уровень развития.
Входя в игру, персонаж монетизирует потенциальный ресурс, выплескивая его в игровую экономику. Далее в процессе игры он зарабатывает ресурс, переводя его из потенциального в наличный и вложенный. Таким образом, в экономике игры единовременно присутствует количество ресурса, равное сумме потенциальных ресурсов игроков. Когда игрок покидает игру, он демонетизирует свой потенциальный счет и уносит его с собой.
Полностью расходуя свой потенциальный ресурс, игрок получает достаточно средств, чтобы перейти на новый уровень. Если игрок по какой-то причине не переводит свою точку отождествления на новый уровень, то он больше не получает данного ресурса – так как он уже монетизировал весь свой потенциальный ресурс.
Как только точка отождествления игрока перейдет на новый уровень, она монетизирует в игровую экономику то количество средств, которое ей необходимо для достижения следующего уровня.
В результате в экономике игры не накапливается избыточная масса ресурса. Всякий ресурс существует исключительно в тех количествах, которые в данный момент востребованы игроками.
Теперь вспомним о цене ресурса. Тезис о том, что цена ресурса в процессе развития не должна изменяться, на первый взгляд выглядит довольно спорным. Мы все привыкли, что в классической системе развития персонажа по мере его развития стоимость улучшений растет, а полезность их, наоборот, падает.
К примеру, если на первом уровне урон нашего гипотетического персонажа =10, и мы за одну монету поднимаем этот параметр на 1, получая урон =11, то это ощутимое изменение (на 10%) за небольшую плату. В то же время, если цена улучшения росла хотя бы на 1 монетку за уровень, то при повышении урона со 100 до 101 мы получаем ничтожное (менее 1 %) усиление за 90 монет. Естественно, ценность монет как ресурса при подобной системе развития постоянно падает по мере развития персонажа.
Однако, если мы применяем для боевой системы таблицы сравнительных значений, а не конечные значения, мы избегаем падения ценности единицы урона: и при переходе с 10 на 11, и со 100 на 101 изменение урона происходит на одно и то же значение. Но и в этом случае 1 монета для игрока первого уровня в 90 раз дороже, чем для игрока сотого уровня. Гиперинфляция налицо.
Рассмотрим другой пример: тот же персонаж, имеющий в начале урон, равный 10 и повышающий его на 1 за одну монету. Однако при повышении уровня мы не повышаем стоимость развития. Таким образом, когда приходит срок развить урон с сотни до ста одного, персонаж за ту же монету получает то же изменение.
При этом следует учесть, что ресурс (пресловутая 1 монета) и игроку первого уровня, и игроку сотого достается одинаково тяжело. Понятно, что в этом случае монета равнозначно нужна и новичку, и опытному, а при такой системе развития о гиперинфляции ресурса речи не идет.
Однако победа над гиперинфляцией – это не все: нам необходимо заставить игроков самих балансировать стоимость развития характеристик, навыков и т.д. В конце концов, всякому ясно, что более сильный навык должен дороже стоить: ведь он – ходовой товар. И в этом нам тоже помогут законы экономики – мы просто будем продавать все на аукционе.
Удобнее всего реализовать этот механизм в виде так называемого Голландского аукциона, в ходе которого вначале объявляется самая высокая цена на продаваемый товар, а затем ставки снижаются до той, на которую согласится первый покупатель, которому и продается товар.
В нашем случае стоимость товара (навыка, умения, заклинания, апгрейда характеристик и т.д.) никогда не опускается ниже номинала, а при каждой покупке цена увеличивается на стоимость покупки. Этот аукцион один на всех игроков и скорость падения цены зависит от количества персонажей в игре. Таким образом, ходовые навыки и характеристики будут стоить дороже, в то время, как более слабые будут постоянно пребывать где-то в области номинала.
При этом стоит широко применять рынок, где игроки могли бы торговать друг с другом своими навыками и умениями сами назначая цены за них. В идеальном варианте игрокам должны быть доступны лишь базовые способности, из которых они сами могли бы конструировать свои собственные навыки и торговать ими друг с другом по ценам, назначаемым самими игроками. Такой механизм переложил бы на игроков не только балансировку цен, но и балансировку конкурентоспособности самих навыков, которые они создают.
Возвращаясь к первой части доклада, давайте выясним, как все вышесказанное отразится на нашем будущем Великом Вожде Народа камня.
Итак, у вождя есть два вида ресурса: время и булыжники, которые он производит.
Время конечно по определению, а булыжники он может производить по 1 в час. Чтобы сделать ресурс булыжников ограниченным, дадим им время жизни, равное 24 часам, после чего булыжник выдыхается и рассыпается в пыль.
Предположим, что один булыжник в бою можно метнуть только один раз, а бой длится 12 ходов.
Таким образом, мы точно знаем, что будущий вождь не сможет накопить больше 24 камней. Он ни за что не отдаст свои камни никому, так как они нужны для захвата власти. Наоборот, он постарается захватить чужие камни, чтобы иметь возможность чаще сражаться за один день.
Более того, вне зависимости от того, какой уровень у вождя, камень для него все равно остается так же ценен, как и на первом, ибо он дает возможность совершить ход.
Умения, навыки и прочие способности.
В классической RPG утвердилось понятие триумвирата основных классов: Танк, ДПС и Саппорт.
• Танк – персонаж, специализирующийся на высокой способности выдерживания атаки противника.
• DPS – персонаж, специализирующийся на нанесении врагам ощутимого урона.
• Саппорт – персонаж, специализирующийся на поддержке (лечении, усилении и т.п.) остальных членов группы.
В современных онлайн-играх такие классы в чистом виде не встречаются. Необходимость выживать в одиночку заставляет персонажей сочетать в себе качества как минимум двух из указанных ипостасей. При этом существует большой риск появления наиболее универсального персонажа, который станет очевидным и единственным выбором для игрока. Чтобы не допустить подобного, мы вновь обратимся к экономике и рассмотрим производимые персонажами возможности, как товары, а взаимодействие персонажей в группах – как товарооборот.
"Если иностранное государство может поставлять нам сырье дешевле, чем нам самим обходится его производство, лучше приобрести его с некоторой частью занятости нашей собственной промышленности, таким образом, мы будем иметь некоторые преимущества". (Адамо Смит «Богатство Наций», книга 4, глава 2)
Этот постулат в переложении на язык балансировки возможностей игрока говорит нам:
Если персонажу, в недостаточной степени обладающему каким-то параметром, дешевле поделиться наградой с другим персонажем, чем самому развивать этот параметр, то он предпочтет помощь извне.
При этом важно соблюдать процентное содержание возможностей одного класса, как внутри класса, так и в сумме с остальными.
Допустим, мы делаем игру с тремя классами персонажей:
• Паладин – гибрид, имеющий 20 атакующих навыков, 20 навыков поддержки (лечение, усиление) и 60 защитных навыков.
• Маг – гибрид, имеющий 20 навыков поддержки (лечение, усиление), 20 защитных навыков и 60 атакующих навыков.
• Лекарь - гибрид, имеющий 20 защитных навыков, 20 атакующих навыков и 60 навыков поддержки (лечение, усиление).
Каждый класс содержит одинаковое количество навыков, а сложив эти параметры, мы получаем 100 защитных навыков, 100 атакующих навыков и 100 навыков поддержки (лечение, усиление), то есть ту самую классическую партию из трех чистых персонажей (танк, DPS, и Саппорт).
Но не только количеством, но и качеством товара определяется конкурентоспособность классов.
Ясно же, что если 19 из 20 навыков не используются, то в целом это направление не имеет смысла. Таким образом, мы вплотную подходим к пониманию количества товара.
Количество товара на единицу затрат.
Применение всякого навыка производит некоторое количество товара. Удар производит урон, Блок – производит защиту, а Лечение производит здоровье. Любой из этих товаров будет конкурентоспособен только в том случае, если он необходим покупателям и стоит дешевле, чем если бы покупатель сам производил его.
При этом затратами на произведение товара являются:
• Ресурсы (в том числе и время), потраченные на изучение навыка.
• Ресурсы (манна, время, боеприпасы и т.д.), затрачиваемые на использование навыка в бою.
Рассчитав, какое количество товара приходится на единицу затрат, и сравнив этот показатель с другими навыками, производящими этот же товар, мы легко можем рассчитать, является ли он конкурентоспособным.
Также важным показателем является количество товара на рынке. Если мы предполагаем, что в нашей игре на одного Танка должно приходиться два DTS и один Саппорт, то количество производимого урона на единицу затрат должно быть вдвое меньше, чем количество защиты и лечения на ту же единицу.
Идеальные возможности для балансирования дает система навыков, позволяющая всем классам изучать общий набор навыков, просто делая профильные навыки существенно дешевле непрофильных. В таком случае, игрок сам решает, какой товар в тех или иных экономических условиях производить его персонажу.
Существует понятие сравнительного преимущества, которое определяет не тот параметр, в котором субъект лучше других, а тот, в котором он менее плох, чем другие. Оно указывает нам, что персонаж, чей профиль вроде бы предполагает производство одного товара, вследствие излишней конкуренции на своем профильном рынке может перейти на производство другого товара.
Тот же Маг из предыдущего примера (20 навыков поддержки (лечение, усиление), 20 защитных навыков и 60 атакующих навыков) в случае избытка DPS и недостатка Саппорта в команде может переключиться на использование имеющихся у него 20 навыков поддержки и заняться производством лечения, спрос на которое выше, нежели на урон.
Также при разработке навыков следует учитывать такие сложнопрогнозируемые моменты как:
• Сложность. К примеру, вы прописываете определенные условия для применения навыка. Таким образом, вы понижаете уровень его популярности и снижаете конкурентоспособность товара, не увеличивая, казалось бы, себестоимости. Чтобы вычислить параметр сложности навыка, нужно рассчитать сколько раз за определенное (статистическое) количество боев этот навык может быть применен. Затем полученное количество нужно сравнить с количеством применений того же навыка в идеале (то есть, если условия в любой момент времени оказались бы соблюдены). Отношение идеального количества к реальному покажет увеличение стоимости товара.
Например, вы создали два навыка для Саппорта: «Единовременное лечение двоих персонажей» на 10 Нр за 20 единиц манны и «Единовременное лечение четырех персонажей» на 10 Нр за 40 единиц манны. Вам кажется, что единица товара стоит одинаково – 1Нр за 1Мр. Но на самом деле это так только в том случае, если группы из 4 персонажей в игре встречаются столь же часто, как и группы из двух. Чаще всего в играх это иначе. Поэтому получается, что товар второго навыка удастся продать реже, чем товар первого, а значит и конкурентоспособность его меньше.
• Очевидность. Часто выгода от навыка не очевидна и оттого стоимость товара падает.
К примеру, навык, заставляющий противника атаковать персонажа врукопашную. Этот навык обладает скрытым свойством – он не позволяет вражеским лучникам и магам применять дальнобойные атаки. Однако неочевидность данного эффекта снижает стоимость производимого товаром навыка. Надо сказать, что действие очевидности временно. Рано или поздно, игроки понимают истинную стоимость навыка, и он приобретает свою реальную стоимость.
Ясно, что знание всех этих механизмов нужно только для установления номинальной цены товара. Дальнейшее – дело рук аукциона и самих игроков.
Как же дать игрокам равные возможности на рынке игры и сделать множество персонажей конкурентоспособными? Да все тем же образом. Нужно всего лишь разбить товары на классы.
Например:
• Урон Мага, урон Паладина и урон Лекаря следует разбить на 3 различные группы: магический, физический и ядовитый.
• Защиту Мага, Паладина и Лекаря также разбиваем на магическую, физическую и защиту от яда.
• Лечение, соответственно, делится на лечение от магического урона, от физического и от ядовитого.
Разделив классы все по тому же методу «камень/ножницы/бумага», мы получаем:
• Маг производит: магический урон, защиту от физического урона и лечение ядовитого.
• Паладин производит физический урон, защиту от яда и лечение магического.
• Лекарь производит ядовитый урон, защиту от магического и лечение от физического.
То есть каждый класс в отношении других классов выполняет сразу функции всех трех классов. В зависимости от ситуации, каждый персонаж найдет свою нишу для производства товара, нужного другим членам команды.
А что же наш Великий Вождь? Посмотрим, что он представляет собой теперь:
• Он воин племени, он умеет швырять сверхтяжелые каменные глыбы
• Его каменный панцирь легко отражает попадание ядовитых камешков местных знахарей
• Он знает, как готовить целебный бальзам для лечения ожогов от огненных камней местных шаманов
• Он играючи побеждает жалких лекарей Народа ножниц и почти на равных сражается с докторами Народа бумаги
• Он легко расправляется с ничтожными бойцами Народа ножниц, а против воителей Народа бумаги способен удержаться на ногах целых три раунда
• Он с трудом повергает подлых колдунов Народа ножниц и в панике бежит от чародеев Народа бумаг.
Таким образом, мы имеем устойчивую саморегулирующуюся систему, выстроенную силами самих игроков. Задача гейм-дизайнеров сводится лишь к тому, чтобы создать предпосылки к такой балансировке и довести до игрока ее принципы еще на момент генерации персонажа.
Какие выводы я хочу сделать из этого доклада?
1. Заставьте противников нуждаться друг в друге – и тогда они сами будут поддерживать баланс между собой.
2. Сделайте ресурсы конечными, а развитие бесконечным, и тогда игроки сами установят цены на рынке игры.
3. Уравняйте доходы игроков разных уровней, и тогда игроки сами спасут вашу экономику от краха.
4. Дайте игрокам равные возможности, и они будут действительно равны
@темы: Гейм-дизайн
Опыт в ММО показывает, что любую идею нужно испытывать на эксплойты. Не спроста сразу же после лекции пошли вопросы об использовании твинков для передачи ресурсов основному персонажу. Пока этот пункт не очень понятен.
- Кравцов Ярослав
Честно говоря, я сам заметил слабость ответов, которые я давал после доклада, но это говорит только о том, что я полностью выдохся во время доклада и уже слабо соображал, что у меня спрашивают. На самом деле все озвученные вопросы продумывались во время подготовки и вычитки доклада в студии.
Готов вести дальнейшую полемику здесь или в forum.ice-pick.com/viewtopic.php?f=1&t=9552
Есть счет персонажа:
|Вложенный ресурс___|Наличный ресурс___|Потенциальный ресурс ___|
Предположим, что:
Вложенный ресурс = 10
Наличный = 10
Потенциальный = 10
И есть счет твинка:
|Вложенный ресурс___|Наличный ресурс___|Потенциальный ресурс ___|
Предположим, что и у твинка:
Вложенный ресурс = 10
Наличный = 10
Потенциальный = 10
Твинк передает свой наличный ресурс персонажу.
Таким образом получаем параметры счета персонажа:
Вложенный ресурс = 10
Наличный = 20 (10 + 10 получено от твинка)
Потенциальный = 0 (10 - 10 передано твинку) - напоминаю, что свыше потенциального ресурса персонажи ничего получить не может.
Параметры твинка:
Вложенный ресурс = 10
Наличный = 0 (10 - 10 передано персонажу)
Потенциальный = 20 (10 + 10 получено от персонажа)
И того, что мы имеем в банке игры?
Банк формируется из суммы счетов персонажей.
То есть на начало в игре было:
Вложенный ресурс = 20 (10 персонажа + 10 твинка)
Наличный = 20 (10 персонажа + 10 твинка)
Потенциальный = 20 (10 персонажа + 10 твинка)
Общее количество ресурса = 60
После передачи стало:
Вложенный ресурс = 20 (10 персонажа + 10 твинка)
Наличный = 20 (20 персонажа + 0 твинка)
Потенциальный = 20 (0 персонажа + 20 твинка)
Общее количество ресурса = 60
То есть, общее количество ресурса в игре не изменилось. А так как сложность зарабатывания ресурса для твинка и для персонажа равнозначна, то не имеет совершенно никакой разницы, кто заработал эти 10 единиц ресурса - персонаж или твинк.