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>