Как сбор статистики помогает сделать игры лучше
Разработка многих игр не кончается после релиза — впереди ещё долгий период улучшений и доработок. И без статистики тут не обойтись.
 
 
Даже когда разработчики тщательно прорабатывают игру, она всё равно может получиться не очень удачной. История может оказаться слабой, а геймплей — не таким удобным, как казалось при создании концепта.
И это нормально: в игру нужно поиграть, чтобы понять, нравится она вам или нет. Однако к тому моменту, когда вы создадите первую версию игры, ваш глаз уже замылится. Вы будете знать все механики как свои пять пальцев, поэтому они будут казаться вам очевидными и простыми.
Вот только ваши игроки увидят игру впервые — и им может быть сложно, потому что вы решили, что будет здорово открывать инвентарь тройным кликом на персонажа.
Во время разработки определить недочёты можно с помощью плейтестов: вы набираете группу людей, которая не участвовала в создании игры, и просите их поиграть.
При этом желательно наблюдать за тем, что они делают и как потом комментируют свои впечатления, — это поможет вам понять, насколько удобен и понятен геймплей вашей игры.
Если же игра уже вышла, то тут поможет сбор статистики. В этой статье мы разберём работу с данными на конкретных этапах — от продумывания того, какая статистика может понадобиться, до внесения изменений в игру.
Какую статистику нужно собирать
Сбор статистики зависит от того, что у вас за игра: жанр, платформа и так далее. Мы будем рассматривать её на примере мобильных раннеров (от англ. run — бежать).
Допустим, мы разрабатываем игру, где надо управлять персонажем, который бежит по узкой дорожке, уклоняясь от препятствий. Для игры у нас будут следующие препятствия:
- пропасть — нужно перепрыгнуть;
- обвалившаяся слева, справа или по центру дорога — нужно оббежать;
- заграждение сверху — нужно проскользить снизу;
- заграждение снизу — нужно перепрыгнуть.
Уровень генерируется случайным образом. Препятствие появляется раз в пять метров. Шансы встретить любое из препятствий равны.
ВАЖНО! Оценивайте как единичные случаи, так и среднюю статистику. Например, если только 1 игрок из 100 постоянно умирает, а у остальных нет проблем, — то всё в порядке.
Какая статистика тут понадобится, чтобы мы могли улучшить игру? С ходу в голову приходят следующие варианты.
1. Сколько всего было препятствий до столкновения
Если игрок не может справиться с первым же препятствием, то это даже не тревожный звоночек — это уже набат. Такое нужно определять до того, как ваш проект доберётся до аудитории.
Исключение — если игра специально задумана как очень сложная.

2. Сколько попыток игрок сделал до этого
Если игрок проиграл при первой попытке, а потом у него начало получаться — это неплохой результат. При том условии, что он не умер в самом начале. Опять же это зависит от самой игры.

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