Опыт создания и публикации игры сразу на 3 платформы

d0c169b7dbcb811ad14ef0984c55f2ad.pngЭто история о создании совершенно необычной игры (доводы ниже) на Game Maker Studio и ее публикации сразу в 3-х основных российских «сторах».Механика ZugaLand, как и прошлая наша игра, в первую очередь опирается на инновационную игровую механику. На этот раз, мы надеемся, нам удалось создать еще и систему монетизации, гармонично и тесно связанную с этой механикой, поэтому опишем этим моменты подробнее.В начале 19 века некий граф предлагает вам отправиться к далеким островам в поисках древних амулетов. Под вашим управлением оказываются 2 героя на выбор, которых нужно перемещать между зонами, соединёнными тропами (вокруг непроходимые джунгли). Герои не могут разворачиваться на полпути, а также источают свой запах вдоль троп (оранжевые линии), который улавливают различные хищники.f6d940012eb32e764fa910f455d3b34f.pngНаслаждаться пейзажами мешают различные противники: крысы, крокодилы, кабаны, волки, гиены, обезьяны и т.д. — каждый из которых имеет свою уникальную и неизменную логику поведения, что позволяет с определенной точностью прогнозировать их будущее перемещение.87bd95d6e3b6fcf471d538689fc250f1.png

Все герои обладают очками «силы», которые необходимы для различных действий: копать, преодолевать преграды и т.д. Основная задача каждой миссии — найти и откопать хотя бы 1 амулет из 2-х. Местоположение амулетов в локации зашифровано на обрывках карт: 3216f75bb7d4632069a9467a05143690.pngВ данном случае амулет №1 расположен в одной из зон с 4-мя прилегающими тропами (маркеры »1» обозначают зоны, подходящие под данное описание).Второй амулет зарыт в одной из зон, которая находится между рекой и зоной с 3-мя тропами (маркеры »2»).

Подсказки разнообразны, но все они сформированы по общему принципу: «в зоне со стольким-то количеством троп», «по соседству с тем-то объектом». Дополнительная задача — разгадывать древние тайны, добывая супер-амулеты. С определенной миссии в каждой зоне с амулетом игрок найдет цифровую подсказку, указывающую «в скольких зонах от данной зоны по кратчайшему пути скрыта тайна». Звучит непросто, но на примере сразу станет ясно: 069bd149443399233820a498f2b627de.pngВ данном случае оранжевые циферки справа от зон с героями указывают на то, что супер-амулет находится где-то в 2-х зонах от текущего местоположения героев.Голубыми »2» отмечены все зоны, где согласно подсказке в зоне Джека (ковбоя) может быть супер-амулет.Отсекаем из данной выборки зону с зыбучими песками и зону с крестом (уже копали), к оставшимся зонам по аналогии добавляем зоны, на которые нам указывает подсказка в зоне профессора и смотрим пересечение получившихся вариантов (найдите эту зону сами или сразу пролистывайте вниз).

Откопав супер-амулет, его еще придется и разгадать: повторить указанную фигуру (квадрат в данном случае), соединив в правильной последовательности крутящиеся спирали: ba67d8eb0646a945e7f16aedac3443d0.png

Выполнение вышеперечисленных задач осложняет не только обилие разнообразных хищников, но и время — штрафом за слишком долгое прохождение локации для игрока является ночь (временной индикатор внизу экрана указывает время суток). Перемещаться ночью придется используя зрительную память (в приведенном примере герой освоил книгу «факелы», что расширило его зону видимости ночью): e8c33b12cce60d02abd07253b3e1737b.png

Чтобы сделать геймплей более гибким в плане сложности, мы решили позволить игроку потерять 1 героя и пройти миссию, но правило «один амулет в одни руки» является хорошим мотиватором переигрывать локацию раз за разом для сохранения обоих героев, чтобы вынести из миссии оба амулета.

Система управления Большим вызовом стало создание системы управления под задуманные игровые возможности с учетом ограниченности размеров экрана. Привожу сразу 4-ый итоговый вариант реализации: после «тапа» по зоне система сама смотрит, какой из юнитов может переместиться в данную зону, и автоматически его туда отправляет: f2ba2d1114059532b575b4c1d9673d84.pngМонетизация Игра бесплатная, но с внутриигровыми покупками. Мы долго думали над разноплановой системой побуждений и ограничений для игрока приобрести что-то в нашей игре и обязательно сделать это гармоничной частью игрового процесса (без пресловутых кристаллов в качестве премиум валюты, которые по причине привычности для игрока пихают в любой игровой сеттинг).Итак, по плану мистера Гру (слуги графа, который возглавляет экспедицию) у вас есть 7 недель (попыток) на прохождение каждого участка (миссии). Справившись раньше, можно потратить оставшиеся недели на свое усмотрение.fba8f42c9cc8f216c521de5f2efdfd20.pngИгрок прошел миссию с 3-го раза, добыв 1 амулет (осталось 4 недели).Если же на прохождение какой-то миссии игроку требуется больше недель (попыток), придется выплатить неустойку мистеру Гру в валюте. Если валюты нет, дуй выменивать за реальные деньги на корабль пиратов или воспользуйся альтернативным способом ее получения — приглашай в игру друзей. (справедливо только для WP и Android –версий игры так как правила Appstore не позволяют использование иных механизмов начисления внутриигровых ресурсов нежели как через стандартный сервис IAP).Упрощенная схема бизнес-процессов игры выглядит так: 30a0b6ed0166715a9881277a7a42e7f9.png

А вот основные ограничения/побуждения для игрока купить валюту (премиум ресурс): 190a3ed4eb574001b19720a324d2a95f.png

Помимо вышеперечисленных явных мотиваций есть более глубокие, например: у игрока достаточно недель для чтения книг, но амулетов хватает на приобретение книги только для 1 героя (пока один читает, второй просто бездействует — обидно). Таким образом, игрок заглядывает в магазин аборигенов, чтобы обменять валюту на амулеты и, если валюты не хватает, вполне закономерно желание чуть-чуть выменять ее у пиратов, чтобы купить книгу второму «простаивающему» юниту.

Большинство книг открывает игроку действительно уникальные возможности, а не просто производит количественное увеличение параметра N — это побудило нас сделать систему контекстной рекламы этих возможностей. Например, алгоритм показа игроку рекламы книги «факелы» срабатывает на событие смерти героя игрока ночью от хищника, учитывая количество ее предшествующих показов. Предложение прочесть «помощь аборигенов» (укажет треть зон на карте, где точно нет амулетов) выскакивает после нескольких безуспешных раскопок подряд. И т.д.

Техническая реализация Для создания игры решили использовать Game Maker Studio, так как игра в 2d + был опыт работы с этим конструктором.Для облегчения разработки уровней был создан редактор в версии GM8.0, так как он больше «дружит» с внешними файлами, чем GM Studio.

Одной из задач было формирование игровых карт. В рамках ее решения было создано несколько версий алгоритма для правильного заливания деревьями фона вокруг зон и троп. Сначала на холст наносился задний фон, реки и деревья с последующим сохранением этого в файл .png. При 50 миссиях такие фоны стали занимать 35 мегабайт, что стало неприемлемым (по нашим планам установочный файл не должен был превышать 50 Мб.). После этого мы попробовали полностью перенести генерацию расположения деревьев на начало уровня, но это вылилось в 10 секунд ожидания, что смертельно для игры такого жанра.

Лучшим решением оказалась предварительная генерация расположения деревьев в редакторе, сохранение этого расположения в отдельную структуру данных и генерация изображения фона по заранее просчитанным данным перед началом уровня.

Вообще же технических аспектов и граблей возникало так много, что все не описать в рамках статьи, да и нет смысла: если есть какие-то вопросы, спрашивайте в комментариях — ответим.

Один из важнейших выводов при использовании GMS в разработке: обновляйтесь осторожно. Создатели GMS любят вносить изменения в свой продукт, которые не имеют должного упоминания/описания (бывало, вообще не упоминаются). Поэтому хорошенько взвесьте все «за» нового апдейта.

Еще один важный момент: в отличие от Android и IOS сборок, сборка под Windows Phone не взлетела на устройствах с 512 мб. на борту (не помог даже запрос дополнительной памяти через манифест). Прожорливость ли это платформы или же дело в упаковщике — мы не знаем.

В итоге разработка игры заняла около 8 месяцев работы 3-х человек.

Публикация и продвижение Аналитика В качестве сервиса для аналитики Game Maker Studio предоставляет возможность использовать Flurry и Google Analytics. Мы решили остановиться на решении от Гугл. В итоге: Для IOS и Android версий все работает отлично Для Windows Phone — устройства данные отправляли (видели их на шлюзе нашего роутера), но у себя в аналитике мы их не видели. После долгих мытарств на ГМС форуме подсказали, что в случае WP статистику нужно создавать для сайта, а не мобильной игры. Как заставить это работать в итоге так пока и не разобрались. Сервисы IAP При реализации сервиса «внутриигровых покупок»: Для Android-версии игры — проблем не встретили; Для IOS-версии игры — Все хорошо, но для проверки работоспособности покупок нужно создать аккаунт тестового пользователя в itunes connect и не вводить его данные в тестовое устройство до самого момента попытки совершения на нем покупки (обратите внимание, что после добавления нового пользователя его активация заняла в нашем случае около 3-х часов). Для Windows Phone — до GMS версии 1.3 (вышла в середине марта) никак не могли заставить их работать. Теперь все работает, но заметили еще особенность: после публикации новой версии на маркет: на самом маркете указано, что обновление опубликовано, с телефона — тоже видно, что приложение опубликовано (обновилось описание, версия и т.д.), но на самом деле еще некоторое время сам xap. грузится старый. Вот такая вот деталь… Продвижение В качестве средств продвижения мы решили использовать несколько совершенно разных каналов: Рассказать о себе в тематических медиа (публикация промо-статей). Посты в группах в соцсетях (реклама группы и самой игры в группах соц.сетей). Оффлайн реклама (самый интересный и спорный формат — о методах и результатах расскажем по итогам). Если переход на нашу страницу через веб-сайты мы бы еще могли отследить, используя различные трекер-системы, то с оффлайн рекламой это не сработает. Поэтому мы решили сделать централизованный сервис на нашем сайте для ввода промо-кодов (распространенные по разным каналам промо-коды позволят нам отследить эффективность каждого канала). Конечно же, не все 100% людей воспользуются своим промо-кодом, но мы предполагаем, что эта цифра будет на уровне 60–70%, что, по крайней мере, позволит судить об эффективности каналов в сравнении друг с другом.

Так же на сайте мы реализовали централизованный сервис по предоставлению игрокам игровой валюты за «приглашение друзей», «вступление в нашу группу в соц.сетях» и т.д. (мы не стали это делать через API соответствующих сервисов для Game Maker, так как не для всех сервисов в GMS существует данный API, а так же набор возможных действий в отличие от веб-версии там ограничен).

Конкретные методы и цифры мы раскроем в следующей статье, имея уже какие-то результаты рекламной кампании.

Итог Пока не имея конкретных цифр успеха/не успеха нашей игры на данный час среди многочисленных игроков, пользуясь моментом, все же позволю себе следующие заключения: С помощью Game Maker Studio можно создавать и выпускать кроссплатформенные профессиональные 2d-игры. Придумывать и создавать игры с новыми незаезженными гейм-механиками для мобильных платформ сегодня, возможно, нужно (первая наша игра также основана на инновационной механике, хотя серьезно не доработана из-за временных ограничений проекта). Долой игроделов, начинающих разработку игры с мысли: «Эх, целых два выходных — запилю-ка я игрульку…», «еще пяток игр — и получится ровно тысяча!», «я же программист — напишу игру!» и заканчивается очередной angry- , flappy- birds клонами (накипело). В виду высокой конкуренции и насыщенности «сторов», создавать качественные, интересные (определение интересных смотри пунктом выше) и успешные мобильные игры сегодня в одиночку практически больше невозможно. С учетом следующего материала, где мы поделимся итогами запуска игры с ее продвижением по различным каналам (в том числе оффлайн) и отслеживанием эффективности этих каналов, надеюсь, многим будет полезен наш опыт и мнение.Будем очень рады вопросам и замечаниям по игре. Спасибо.

© Habrahabr.ru