Как сбор статистики помогает сделать игры лучше
Разработка многих игр не кончается после релиза — впереди ещё долгий период улучшений и доработок. И без статистики тут не обойтись.
vlada_maestro / shutterstock
Даже когда разработчики тщательно прорабатывают игру, она всё равно может получиться не очень удачной. История может оказаться слабой, а геймплей — не таким удобным, как казалось при создании концепта.
И это нормально: в игру нужно поиграть, чтобы понять, нравится она вам или нет. Однако к тому моменту, когда вы создадите первую версию игры, ваш глаз уже замылится. Вы будете знать все механики как свои пять пальцев, поэтому они будут казаться вам очевидными и простыми.
Вот только ваши игроки увидят игру впервые — и им может быть сложно, потому что вы решили, что будет здорово открывать инвентарь тройным кликом на персонажа.
Во время разработки определить недочёты можно с помощью плейтестов: вы набираете группу людей, которая не участвовала в создании игры, и просите их поиграть.
При этом желательно наблюдать за тем, что они делают и как потом комментируют свои впечатления, — это поможет вам понять, насколько удобен и понятен геймплей вашей игры.
Если же игра уже вышла, то тут поможет сбор статистики. В этой статье мы разберём работу с данными на конкретных этапах — от продумывания того, какая статистика может понадобиться, до внесения изменений в игру.
Какую статистику нужно собирать
Сбор статистики зависит от того, что у вас за игра: жанр, платформа и так далее. Мы будем рассматривать её на примере мобильных раннеров (от англ. run — бежать).
Допустим, мы разрабатываем игру, где надо управлять персонажем, который бежит по узкой дорожке, уклоняясь от препятствий. Для игры у нас будут следующие препятствия:
- пропасть — нужно перепрыгнуть;
- обвалившаяся слева, справа или по центру дорога — нужно оббежать;
- заграждение сверху — нужно проскользить снизу;
- заграждение снизу — нужно перепрыгнуть.
Уровень генерируется случайным образом. Препятствие появляется раз в пять метров. Шансы встретить любое из препятствий равны.
ВАЖНО! Оценивайте как единичные случаи, так и среднюю статистику. Например, если только 1 игрок из 100 постоянно умирает, а у остальных нет проблем, — то всё в порядке.
Какая статистика тут понадобится, чтобы мы могли улучшить игру? С ходу в голову приходят следующие варианты.
1. Сколько всего было препятствий до столкновения
Если игрок не может справиться с первым же препятствием, то это даже не тревожный звоночек — это уже набат. Такое нужно определять до того, как ваш проект доберётся до аудитории.
Исключение — если игра специально задумана как очень сложная.
2. Сколько попыток игрок сделал до этого
Если игрок проиграл при первой попытке, а потом у него начало получаться — это неплохой результат. При том условии, что он не умер в самом начале. Опять же это зависит от самой игры.
3. С каким препятствием столкнулся игрок
Это знание поможет вам понять, могут ли игроки справиться с определёнными препятствиями. Если большинство игроков проигрывает на одном и том же виде препятствий, значит, препятствие нужно доработать.
4. Как часто встречались те или иные препятствия
Несмотря на то что каждое из препятствий появляется с вероятностью 25%, это не значит, что их будет поровну. Вполне возможно, что игроку будут попадаться одни и те же варианты либо все, кроме одного, — это нормально, так работает теория вероятности. То, что вам в прошлый раз выпал орёл, ещё не значит, что дальше будет решка.
Вы можете изучать и другие данные, но для этой статьи будет достаточно четырёх переменных — иначе мне придётся писать книгу.
Далее мы поговорим подробнее, как ещё проанализировать все эти данные и к каким выводам можно прийти. Но сейчас выясним, как это лучше реализовать.
Как реализовать сбор статистики
Итак, вы определились с тем, какую статистику собирать. Первое, что нужно теперь сделать, — проконсультироваться с юристами. Узнайте, насколько законно хранить такую информацию, составьте политику конфиденциальности, позаботьтесь о том, чтобы данные были обезличены, и так далее. Только после этого можно идти дальше.
Так как локации генерируются случайным образом, они состоят из заранее подготовленных блоков. К каждому блоку можно прикрепить информацию. Эту информацию будет получать специальный скрипт, который будет активироваться при контакте с блоком.
Например, в этом скрипте могут храниться следующие переменные:
- lastBlock — последний блок, которого коснулся персонаж;
- blocksCount — общее количество блоков;
- xxxBlocksCount — количество блоков определённого типа (название подставляется вместо xxx);
- attempts — количество попыток за текущую сессию (она начинается с запуска игры) или за всё время.
В конце каждой сессии или после каждой попытки можно отправлять информацию в базу данных — нет смысла хранить это всё на устройстве игрока.
После этого можно приступить к визуализации данных.
Визуализация статистики и анализ
По цифрам может быть достаточно сложно ориентироваться. Чтобы анализировать данные было проще, их нужно отсортировать и представить в виде графиков.
Для этого можно использовать различные инструменты, но можно и попросить разработчиков создать для вас платформу для аналитики. Этот вариант даже лучше, потому что вы сможете получить именно те возможности, которые вам нужны. Главное тут — наличие разработчиков.
Например, статистику столкновений по препятствиям можно представить в виде круговой диаграммы:
Выше показана статистика за всё время, но лучше делать более точные запросы. То есть вы можете посмотреть, с какими препятствиями сталкиваются игроки разных уровней.
На диаграммах выше можно увидеть, что с преградами сверху одинаково часто имеют проблемы как опытные игроки, так и новички. С другими препятствиями ситуация немного другая: новички часто сталкиваются с преградами снизу, но со временем они перестают быть проблемой.
Можно углубиться ещё дальше и проверить, какие блоки встречаются во время разных попыток:
Здесь видно, что игрок успел преодолеть достаточно большое количество препятствий разных типов и только три преграды сверху. Это может значить, что первые два раза он справился с этим препятствием случайно, а на третий уже не смог. То есть вполне вероятно, что игрок просто ещё не научился правильно решать эту задачу.
Причин может быть несколько:
- такие блоки встречаются очень редко;
- пройти блок можно только благодаря удаче;
- что-то не так с управлением.
Дальше на основе своего анализа вы можете попробовать внести какие-то изменения.
Внесение изменений
Когда у вас появятся предположения о том, какие изменения нужно внести, сделайте отдельную версию игры для проведения плейтестов. Соберите новую статистику и узнайте, были ли ваши правки полезны, или же они ухудшили ситуацию. Вносите изменения и проводите испытания до тех пор, пока результат не будет удовлетворительным.
Дальше уже можно работать над версией для релиза — и тут нужно быть осторожным. Опытные игроки могли привыкнуть к старому управлению, поэтому с новым у них, скорее всего, возникнут проблемы. Чтобы этого не произошло, предупредите игроков об изменениях.
После этого вас ждёт ещё одна итерация уже описанного процесса: снова сбор статистики, анализ, правки. Так ваша игра со временем будет становиться лучше и лучше, что поможет ей привлекать новых игроков, не теряя старых. Хотя, конечно, уповать только лишь на статистику не стоит — есть и другие важные факторы.
Нужно подходить к разработке игр комплексно, чтобы добиться хорошего результата. А для этого надо постоянно учиться и набираться опыта.