Разработка и баланс ивента «Четыре шкатулки»
Статья-руководство, как спроектировать и сбалансировать ивент «Четыре шкатулки».
Многие встречались с таким типом ивентов в казуальных играх. В одной попытке такого ивента нам предлагают выбрать одну из четырех закрытых «шкатулок», в одной из которых лежит «бомба». В других трех — призы. Если мы выбираем приз, нам вновь предлагают четыре шкатулки (второй этап), мы можем продолжить или уйти с заработанными призами. Если натыкаемся на бомбу, то теряем все награды и проигрываем попытку. Бомбу можно отменить и спасти заработанное, заплатив хардвалюту.
Вариации ивента
- Некоторые ивенты обставлены в виде карты с этапами. Каждый этап — это четыре шкатулки.
- Встречаются Safe-этапы. На таких этапах в выборе не участвует бомба. Такие этапы работают как маячки, к которым стремится игрок.
- На некоторых этапах может быть не четыре, а две шкатулки. Например, в последнем. Главный приз против бомбы.
- Все ивенты после сыгранной попытки закрываются на кулдаун (например, на сутки), в некоторых ивентах его можно отменить, заплатив деньги.
- В некоторых ивентах можно встретить понятие «жизней» на одну попытку. В этом случае «отменить» бомбу можно только определенное количество раз. Как правило в таких ивентах, награды в шкатулках более ценные.
- Некоторые ивенты построены из нескольких карт с разным количеством этапов. Сначала проходим ивент на 5 этапов, потом такой же, но на 8, 15, 20... То есть структура ивента такая:
Логика реализации
Будем придерживаться простой логики. Нет необходимости делать под капотом имитацию шкатулок с их реальным поведением.
Для каждого этапа определим следующие параметры:
Когда игрок выбирает шкатулку, сначала мы проверяем шанс на выпадение бомбы. Если бомба не выпала, то мы должны определить какой приз выпадет из списка на основе весов. Чем больше вес, тем больше вероятность такого приза.
Оставшиеся шкатулки после открытия мы заполняем уже постфактум бомбой и другими призами из нашего списка.
Расчеты
Нам нужно контролировать несколько сценариев поведения игрока и высчитывать матожидание выигрыша игрока при каждом сценарии. Все призы для удобства мы будем оценивать в той же валюте, что и стоимость защиты от бомбы.
Какие сценарии поведения могут быть. Я предлагаю рассматривать пока только следующие:
- 1-й сценарий: Игрок не платит за защиту от бомб и стремится к N-му этапу. Дойдя до целевого этапа, он не рискует и забирает накопленные награды. Если он натыкается на бомбу, то проигрывает попытку. В этих сценариях мы должны будем проконтролировать, что матожидание от одной попытки будет лежать в пределах допустимой нам нормы. Например, мы можем позволить давать игрокам 500 монет в день с ивента бесплатно.
- 2-й сценарий: Игрок готов платить за все защиты от бомб и идти до конца. Нам нужно будет уравнять стоимости потраченных защит и полученных наград в завершенном ивенте.
В действительности, сценариев поведения пользователя будет больше. Например, игрок может соглашаться на использование защиты, если у него случилась удачная попытка и он продвинулся довольно далеко. Игрок может действовать по ситуации и вести более выгодную стратегию.
Поэтому считайте баланс с запасом в пользу стоимости бомб. Немного завышайте их стоимость.
Таблица
Получилась следующая таблица для расчета:
https://docs.google.com/spreadsheets/d/1CUDBcRjsAc1rFlVBLELLwrlfka5omJn7Bi2xKjcRHj0/edit?usp=sharing
- На вкладке «Сценарий 1» мы можем увидеть посчитанное матожидание на одну попытку для разных поведений игрока при отказе от защит. Также тут можем отметить какой сценарий наиболее оптимален с точки зрения выигрыша.
- На вкладке «Сценарий 2» мы можем увидеть среднее количество денег, которые нужно потратить на бомбы, чтобы дойти до определенного этапа. Здесь мы можем соотнести стоимость бомб и наград.
Больше материалов о математике и геймдизайне — в телеграмм-канале.