среда, 19 марта 2014 г.

Записки программиста #9. Баланс в игре.

Баланс, скорость прокачки, количество получаемой награды очень важно в любой игре, моя новая игра не стала исключением. До момента создания игры, я особо не заморачивался этим вопросом, но чем ближе конец разработки, тем более остро он встает, и кстати, создание начального баланса требует не малых сил и времени. Основная проблема от которого страдают большинство инди разработчиков – плохой баланс в игре. Возникает это из-за того, что кто пишет код, тот и тестирует, и как следствие подстраивает баланс под себя, в итоге получаем игру в которую очень сложно разобраться и большинство игроков отваливается сразу. Наличие обучающих уровней где все очень просто, решает часть проблем, но только частично.
Опыта в решении данной проблемы у меня не много, но я расскажу с чего начал, что выходит, а что в итоге вышло посмотрим после релиза.
Немного порыскав по просторам интернета, я нашел два графика, мастерства от времени:
  


Для создания первого графика у меня не достаточно не сил не знаний, так что я думаю стоит выбрать нечто среднее. Другими словами, линейная сложность, но уровень мастерства растет быстрее.
Но как оценивать это самое мастерство?! Решил, что стоит собрать статистику, тестировать и руководствовавшись мнением человека, кто будет тестировать, выстраивать сложность в игре, после чего проанализировать статистику и убедиться правильно ли двигаюсь.
С этого и решил начать, вначале я хотел всю статистику вынести в гугл аналитикс, он умеет строить красивые графики, прост в работе и тд, но для оценки нужных мне параметров он подходит плохо, а возможно я просто не умею его готовить, в итоге созрело такое решение: пользовательская статистика будет жить в гугл аналитиксе, а игровая, непосредственно по заездам, у меня в простой таблице, на основе собственно этой статистики и буду формировать рейтинг. План показался мне не плохим, и я стал его реализовывать, спустя некоторое время все заработало и по окончанию заезда, данные отправляются на сервер.
Тестирование решил разбить на два этапа:
  1. Полного тестирования всех карты для всех машин. (альфа тестирование)
  2. Повторное, более массовое тестирование после выравнивания баланса. (бета тестирование)

Альфа тестированием занимался я и еще пару человек. Я специально не стал давать игру всем, тк как игра выглядит и работает на телефоне и как выглядит на десктопе это две разные вещи, а хотелось в бете тесте свежий взгляд на игру.
Тестирование карт, в моем случае не самая простая задача, тк карта создается каждый раз новая, ну точнее из n-возможных вариаций, к примеру 4 и 5 карта насчитывает 57 вариаций, что увеличивает объем тестирования. Другими словами, нужно провести как минимум 57 заездов, чтобы оценить карту и так 5 карт. В этом месте я немного жульничал, тк блоки во всех картах одни и те-же. Такое решение вполне осознанное и этого вполне достаточно, для оценки перспективности игры на целевом рынке.
Для начала я решил задаться целью, что должно быть в итоге, а самое главное, как оценивать, хороший или плохой получился уровень, вот как раз в этом я полностью положился на мою девушку. Создание карты выглядело примерно так: я тестировал по отдельности блоки и наборы блоков для одного уровня сложности. После того как карта я считал готова, тестировала девушка.
Я считаю, что отдавать на тестирование на ранних этапах игру крайне важно.
В момент написания статьи, прошел период альфа тестирования и уже набралась некоторая статистика по игре:
Всего было проведено 209 заездов, суммарное время заездов составило 22756 сек, около 6 с половиной часов! В среднем для каждой машины было проведено 26 заездов, это примерно 42 заезда на каждой карте. На одной из самых больших карт было проведено 70 заездов.
Набрав какую не какую статистику, будем ее анализировать.
Машины оценивать просто, размер багажника и проходимость, она увеличиться для каждой машины, есть конечно свои особенности, но для их нормальной оценки такого количества заездов просто не достаточно.
Для оценки сложности карт, я решил использовать количество заездов и их результат.

Карта
Всего заездов
Неудачи
% неудач
1
46
5
11%
2
36
8
22%
3
20
9
45%
4
70
45
64%
5
37
22
59%



Данных для точно оценки конечно не достаточно, но по ним можно судить, что начальный баланс в игре имеется, и разработка движется в нужном направлении.
Но как оценить мастерство?!
Для этого нужно взять отдельного человека и посмотреть в зависимости от времени его средний доход монет. Но средний доход зависит на прямую от карты и от машины, на момент тестирования они все открыты, те получаемые данные не будут иметь в этом контексте значения. Это вариант хорош в релизе и на больших цифрах, и мы его обязательно оценим!
Я придумал другой способ, который не плохо подходит для тестирования. Изменение в день среднего времени раунда в игре, на конкретной машине, на конкретной карте.
Теория — это хорошо, но что выходит на практике?
Самая протестированная карта 4, на ней было 70 заездов.
Чаще всего на этой карте ездили на 7,8 и 5 машине, их и возьмем для тестирования, а также 1 машину на первой карте.

Машина
Карта
Количество заездов
1
1
29
5
4
11
7
4
29
8
4
20





Как видите это немного не то, что я ожидал! Я решил на этом месте остановиться и завершить альфа тестирование, и заняться переносом на мобильную платформу. Вернемся к этому вопросу уже после релиза. 

четверг, 6 марта 2014 г.

TruckingMania Demo

Наконец – то получилось выделить время и записать видео с геймплеем игры, это все еще пока альфа, но в целом я доволен, что выходит.