HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#Руководства</a></p>
1 <p><a>#Руководства</a></p>
2 <ul><li>29 май 2020</li>
2 <ul><li>29 май 2020</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><h2>Как сбор статистики помогает сделать игры лучше</h2>
4 </ul><h2>Как сбор статистики помогает сделать игры лучше</h2>
5 <p>Разработка многих игр не кончается после релиза - впереди ещё долгий период улучшений и доработок. И без статистики тут не обойтись.</p>
5 <p>Разработка многих игр не кончается после релиза - впереди ещё долгий период улучшений и доработок. И без статистики тут не обойтись.</p>
6 <p> vlada_maestro / shutterstock</p>
6 <p> vlada_maestro / shutterstock</p>
7 <p>Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.</p>
7 <p>Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.</p>
8 <p>Даже когда разработчики тщательно прорабатывают игру, она всё равно может получиться не очень удачной. История может оказаться слабой, а геймплей - не таким удобным, как казалось при создании концепта.</p>
8 <p>Даже когда разработчики тщательно прорабатывают игру, она всё равно может получиться не очень удачной. История может оказаться слабой, а геймплей - не таким удобным, как казалось при создании концепта.</p>
9 <p>И это нормально: в игру нужно поиграть, чтобы понять, нравится она вам или нет. Однако к тому моменту, когда вы создадите первую версию игры, ваш глаз уже замылится. Вы будете знать все механики как свои пять пальцев, поэтому они будут казаться вам очевидными и простыми.</p>
9 <p>И это нормально: в игру нужно поиграть, чтобы понять, нравится она вам или нет. Однако к тому моменту, когда вы создадите первую версию игры, ваш глаз уже замылится. Вы будете знать все механики как свои пять пальцев, поэтому они будут казаться вам очевидными и простыми.</p>
10 <p>Вот только ваши игроки увидят игру впервые - и им может быть сложно, потому что вы решили, что будет здорово открывать инвентарь тройным кликом на персонажа.</p>
10 <p>Вот только ваши игроки увидят игру впервые - и им может быть сложно, потому что вы решили, что будет здорово открывать инвентарь тройным кликом на персонажа.</p>
11 <p>Во время разработки определить недочёты можно с помощью плейтестов: вы набираете группу людей, которая не участвовала в создании игры, и просите их поиграть.</p>
11 <p>Во время разработки определить недочёты можно с помощью плейтестов: вы набираете группу людей, которая не участвовала в создании игры, и просите их поиграть.</p>
12 <p>При этом желательно наблюдать за тем, что они делают и как потом комментируют свои впечатления, - это поможет вам понять, насколько удобен и понятен геймплей вашей игры.</p>
12 <p>При этом желательно наблюдать за тем, что они делают и как потом комментируют свои впечатления, - это поможет вам понять, насколько удобен и понятен геймплей вашей игры.</p>
13 <p>Если же игра уже вышла, то тут поможет сбор статистики. В этой статье мы разберём работу с данными на конкретных этапах - от продумывания того, какая статистика может понадобиться, до внесения изменений в игру.</p>
13 <p>Если же игра уже вышла, то тут поможет сбор статистики. В этой статье мы разберём работу с данными на конкретных этапах - от продумывания того, какая статистика может понадобиться, до внесения изменений в игру.</p>
14 <p>Сбор статистики зависит от того, что у вас за игра: жанр, платформа и так далее. Мы будем рассматривать её на примере мобильных раннеров<em>(от англ.<strong>run</strong>- бежать).</em></p>
14 <p>Сбор статистики зависит от того, что у вас за игра: жанр, платформа и так далее. Мы будем рассматривать её на примере мобильных раннеров<em>(от англ.<strong>run</strong>- бежать).</em></p>
15 <p>Допустим, мы разрабатываем игру, где надо управлять персонажем, который бежит по узкой дорожке, уклоняясь от препятствий. Для игры у нас будут следующие препятствия:</p>
15 <p>Допустим, мы разрабатываем игру, где надо управлять персонажем, который бежит по узкой дорожке, уклоняясь от препятствий. Для игры у нас будут следующие препятствия:</p>
16 <ul><li><strong>пропасть</strong>- нужно перепрыгнуть;</li>
16 <ul><li><strong>пропасть</strong>- нужно перепрыгнуть;</li>
17 <li><strong>обвалившаяся слева, справа или по центру дорога</strong>- нужно оббежать;</li>
17 <li><strong>обвалившаяся слева, справа или по центру дорога</strong>- нужно оббежать;</li>
18 <li><strong>заграждение сверху</strong>- нужно проскользить снизу;</li>
18 <li><strong>заграждение сверху</strong>- нужно проскользить снизу;</li>
19 <li><strong>заграждение снизу</strong> - нужно перепрыгнуть.</li>
19 <li><strong>заграждение снизу</strong> - нужно перепрыгнуть.</li>
20 </ul><p>Уровень генерируется случайным образом. Препятствие появляется раз в пять метров. Шансы встретить любое из препятствий равны.</p>
20 </ul><p>Уровень генерируется случайным образом. Препятствие появляется раз в пять метров. Шансы встретить любое из препятствий равны.</p>
21 <p>ВАЖНО! Оценивайте как единичные случаи, так и среднюю статистику. Например, если только 1 игрок из 100 постоянно умирает, а у остальных нет проблем, - то всё в порядке.</p>
21 <p>ВАЖНО! Оценивайте как единичные случаи, так и среднюю статистику. Например, если только 1 игрок из 100 постоянно умирает, а у остальных нет проблем, - то всё в порядке.</p>
22 <p>Какая статистика тут понадобится, чтобы мы могли улучшить игру? С ходу в голову приходят следующие варианты.</p>
22 <p>Какая статистика тут понадобится, чтобы мы могли улучшить игру? С ходу в голову приходят следующие варианты.</p>
23 <p>Если игрок не может справиться с первым же препятствием, то это даже не тревожный звоночек - это уже набат. Такое нужно определять до того, как ваш проект доберётся до аудитории.</p>
23 <p>Если игрок не может справиться с первым же препятствием, то это даже не тревожный звоночек - это уже набат. Такое нужно определять до того, как ваш проект доберётся до аудитории.</p>
24 <p>Исключение - если игра специально задумана как очень сложная.</p>
24 <p>Исключение - если игра специально задумана как очень сложная.</p>
25 <em>Flappy Bird</em><p>Если игрок проиграл при первой попытке, а потом у него начало получаться - это неплохой результат. При том условии, что он не умер в самом начале. Опять же это зависит от самой игры.</p>
25 <em>Flappy Bird</em><p>Если игрок проиграл при первой попытке, а потом у него начало получаться - это неплохой результат. При том условии, что он не умер в самом начале. Опять же это зависит от самой игры.</p>
26 <em>Trap Adventure 2</em><p>Это знание поможет вам понять, могут ли игроки справиться с определёнными препятствиями. Если большинство игроков проигрывает на одном и том же виде препятствий, значит, препятствие нужно доработать.</p>
26 <em>Trap Adventure 2</em><p>Это знание поможет вам понять, могут ли игроки справиться с определёнными препятствиями. Если большинство игроков проигрывает на одном и том же виде препятствий, значит, препятствие нужно доработать.</p>
27 <p>Несмотря на то что каждое из препятствий появляется с вероятностью 25%, это не значит, что их будет поровну. Вполне возможно, что игроку будут попадаться одни и те же варианты либо все, кроме одного, - это нормально, так работает теория вероятности. То, что вам в прошлый раз выпал орёл, ещё не значит, что дальше будет решка.</p>
27 <p>Несмотря на то что каждое из препятствий появляется с вероятностью 25%, это не значит, что их будет поровну. Вполне возможно, что игроку будут попадаться одни и те же варианты либо все, кроме одного, - это нормально, так работает теория вероятности. То, что вам в прошлый раз выпал орёл, ещё не значит, что дальше будет решка.</p>
28 <p>Вы можете изучать и другие данные, но для этой статьи будет достаточно четырёх переменных - иначе мне придётся писать книгу.</p>
28 <p>Вы можете изучать и другие данные, но для этой статьи будет достаточно четырёх переменных - иначе мне придётся писать книгу.</p>
29 <p>Далее мы поговорим подробнее, как ещё проанализировать все эти данные и к каким выводам можно прийти. Но сейчас выясним,<em>как это лучше реализовать</em>.</p>
29 <p>Далее мы поговорим подробнее, как ещё проанализировать все эти данные и к каким выводам можно прийти. Но сейчас выясним,<em>как это лучше реализовать</em>.</p>
30 <p>Итак, вы определились с тем, какую статистику собирать. Первое, что нужно теперь сделать, - проконсультироваться с юристами. Узнайте, насколько законно хранить такую информацию, составьте политику конфиденциальности, позаботьтесь о том, чтобы данные были обезличены, и так далее. Только после этого можно идти дальше.</p>
30 <p>Итак, вы определились с тем, какую статистику собирать. Первое, что нужно теперь сделать, - проконсультироваться с юристами. Узнайте, насколько законно хранить такую информацию, составьте политику конфиденциальности, позаботьтесь о том, чтобы данные были обезличены, и так далее. Только после этого можно идти дальше.</p>
31 <p>Так как локации генерируются случайным образом, они состоят из заранее подготовленных блоков. К каждому блоку можно прикрепить информацию. Эту информацию будет получать специальный скрипт, который будет активироваться при контакте с блоком.</p>
31 <p>Так как локации генерируются случайным образом, они состоят из заранее подготовленных блоков. К каждому блоку можно прикрепить информацию. Эту информацию будет получать специальный скрипт, который будет активироваться при контакте с блоком.</p>
32 <p>Например, в этом скрипте могут храниться следующие переменные:</p>
32 <p>Например, в этом скрипте могут храниться следующие переменные:</p>
33 <ul><li><strong>lastBlock</strong>- последний блок, которого коснулся персонаж;</li>
33 <ul><li><strong>lastBlock</strong>- последний блок, которого коснулся персонаж;</li>
34 <li><strong>blocksCount</strong>- общее количество блоков;</li>
34 <li><strong>blocksCount</strong>- общее количество блоков;</li>
35 <li><strong>xxxBlocksCount</strong> - количество блоков определённого типа<em>(название подставляется вместо xxx);</em></li>
35 <li><strong>xxxBlocksCount</strong> - количество блоков определённого типа<em>(название подставляется вместо xxx);</em></li>
36 <li><strong>attempts</strong> - количество попыток за текущую сессию<em>(она начинается с запуска игры)</em>или за всё время.</li>
36 <li><strong>attempts</strong> - количество попыток за текущую сессию<em>(она начинается с запуска игры)</em>или за всё время.</li>
37 </ul><p>В конце каждой сессии или после каждой попытки можно отправлять информацию в базу данных - нет смысла хранить это всё на устройстве игрока.</p>
37 </ul><p>В конце каждой сессии или после каждой попытки можно отправлять информацию в базу данных - нет смысла хранить это всё на устройстве игрока.</p>
38 <p>После этого можно приступить к визуализации данных.</p>
38 <p>После этого можно приступить к визуализации данных.</p>
39 <p>По цифрам может быть достаточно сложно ориентироваться. Чтобы анализировать данные было проще, их нужно отсортировать и представить в виде графиков.</p>
39 <p>По цифрам может быть достаточно сложно ориентироваться. Чтобы анализировать данные было проще, их нужно отсортировать и представить в виде графиков.</p>
40 <p>Для этого можно использовать различные инструменты, но можно и попросить разработчиков создать для вас платформу для аналитики. Этот вариант даже лучше, потому что вы сможете получить именно те возможности, которые вам нужны. Главное тут - наличие разработчиков.</p>
40 <p>Для этого можно использовать различные инструменты, но можно и попросить разработчиков создать для вас платформу для аналитики. Этот вариант даже лучше, потому что вы сможете получить именно те возможности, которые вам нужны. Главное тут - наличие разработчиков.</p>
41 <p>Например, статистику столкновений по препятствиям можно представить в виде круговой диаграммы:</p>
41 <p>Например, статистику столкновений по препятствиям можно представить в виде круговой диаграммы:</p>
42 <p>Выше показана статистика за всё время, но лучше делать более точные запросы. То есть вы можете посмотреть, с какими препятствиями сталкиваются игроки разных уровней.</p>
42 <p>Выше показана статистика за всё время, но лучше делать более точные запросы. То есть вы можете посмотреть, с какими препятствиями сталкиваются игроки разных уровней.</p>
43 <p>На диаграммах выше можно увидеть, что с преградами сверху одинаково часто имеют проблемы как опытные игроки, так и новички. С другими препятствиями ситуация немного другая: новички часто сталкиваются с преградами снизу, но со временем они перестают быть проблемой.</p>
43 <p>На диаграммах выше можно увидеть, что с преградами сверху одинаково часто имеют проблемы как опытные игроки, так и новички. С другими препятствиями ситуация немного другая: новички часто сталкиваются с преградами снизу, но со временем они перестают быть проблемой.</p>
44 <p>Можно углубиться ещё дальше и проверить, какие блоки встречаются во время разных попыток:</p>
44 <p>Можно углубиться ещё дальше и проверить, какие блоки встречаются во время разных попыток:</p>
45 <p>Здесь видно, что игрок успел преодолеть достаточно большое количество препятствий разных типов и только три преграды сверху. Это может значить, что первые два раза он справился с этим препятствием случайно, а на третий уже не смог. То есть вполне вероятно, что игрок просто ещё не научился правильно решать эту задачу.</p>
45 <p>Здесь видно, что игрок успел преодолеть достаточно большое количество препятствий разных типов и только три преграды сверху. Это может значить, что первые два раза он справился с этим препятствием случайно, а на третий уже не смог. То есть вполне вероятно, что игрок просто ещё не научился правильно решать эту задачу.</p>
46 <p>Причин может быть несколько:</p>
46 <p>Причин может быть несколько:</p>
47 <ul><li>такие блоки встречаются очень редко;</li>
47 <ul><li>такие блоки встречаются очень редко;</li>
48 <li>пройти блок можно только благодаря удаче;</li>
48 <li>пройти блок можно только благодаря удаче;</li>
49 <li>что-то не так с управлением.</li>
49 <li>что-то не так с управлением.</li>
50 </ul><p>Дальше на основе своего анализа вы можете попробовать внести какие-то изменения.</p>
50 </ul><p>Дальше на основе своего анализа вы можете попробовать внести какие-то изменения.</p>
51 <p>Когда у вас появятся предположения о том, какие изменения нужно внести, сделайте отдельную версию игры для проведения плейтестов. Соберите новую статистику и узнайте, были ли ваши правки полезны, или же они ухудшили ситуацию. Вносите изменения и проводите испытания до тех пор, пока результат не будет удовлетворительным.</p>
51 <p>Когда у вас появятся предположения о том, какие изменения нужно внести, сделайте отдельную версию игры для проведения плейтестов. Соберите новую статистику и узнайте, были ли ваши правки полезны, или же они ухудшили ситуацию. Вносите изменения и проводите испытания до тех пор, пока результат не будет удовлетворительным.</p>
52 <p>Дальше уже можно работать над версией для релиза - и тут нужно быть осторожным. Опытные игроки могли привыкнуть к старому управлению, поэтому с новым у них, скорее всего, возникнут проблемы. Чтобы этого не произошло, предупредите игроков об изменениях.</p>
52 <p>Дальше уже можно работать над версией для релиза - и тут нужно быть осторожным. Опытные игроки могли привыкнуть к старому управлению, поэтому с новым у них, скорее всего, возникнут проблемы. Чтобы этого не произошло, предупредите игроков об изменениях.</p>
53 <p>После этого вас ждёт ещё одна итерация уже описанного процесса: снова сбор статистики, анализ, правки. Так ваша игра со временем будет становиться лучше и лучше, что поможет ей привлекать новых игроков, не теряя старых. Хотя, конечно, уповать только лишь на статистику не стоит - есть и другие важные факторы.</p>
53 <p>После этого вас ждёт ещё одна итерация уже описанного процесса: снова сбор статистики, анализ, правки. Так ваша игра со временем будет становиться лучше и лучше, что поможет ей привлекать новых игроков, не теряя старых. Хотя, конечно, уповать только лишь на статистику не стоит - есть и другие важные факторы.</p>
54 <p>Нужно подходить к разработке игр комплексно, чтобы добиться хорошего результата. А для этого надо постоянно<a>учиться</a>и набираться опыта.</p>
54 <p>Нужно подходить к разработке игр комплексно, чтобы добиться хорошего результата. А для этого надо постоянно<a>учиться</a>и набираться опыта.</p>
55 <a>Научитесь: Профессия Геймдизайнер с нуля до PRO Узнать больше</a>
55 <a>Научитесь: Профессия Геймдизайнер с нуля до PRO Узнать больше</a>