Русский
Русский
English
Статистика
Реклама

Игры для android

ALT CITY Online. Как я в одиночку создавал GTA Online для мобильных устройств. Часть 2

17.01.2021 20:13:46 | Автор: admin

Привет Хабр! Это вторая статья по разработке моего проекта ALT CITY: Online, суть которого кратко можно описать как ГТА Онлайн для мобильных устройств. Если вы не читали первую часть, то она тут.

Во второй части: главные сложности разработки игры с открытым миром на Unity, как появилось более 9000 игроков, ожидающих игру, первая встреча с хейтом и запуск тестирования игры. Приглашаю пережить со мной все эти события, которые произошли за последние 4 месяца.

Реакция на прошлую статью

Как человека, который никогда до этого не писал статьи отклик на первую статью меня порадовал. На Хабре она собрала почти 13к просмотров, а на DTF 7к. Более того, статья даже попала в дайджест AppTractor. Учитывая, что читаю я его часто, было приятной неожиданностью обнаружить там свою статью:

Приятно, что тема вызвала интерес у хабровчан, среди многочисленных комментариев были действительно обоснованные вопросы/претензии, которые касались оформления статьи, потом того, что на видео непонятно, что происходит (это действительно так, в этот раз будет лучше). Все это прочитал, спасибо, что помогаете делать лучше.

Но больше всего я удивился, когда обнаружил на одном популярном портале по разработке игр тред с обсуждением написанной мной статьи. Вот там было интересно. Люди обсуждали статью, даже не удосужившись прочитать ее, но зато напихали мне знатно. Было там что-то из разряда чувак делает первую игру и уже решил делать гта, совершает классическую ошибку, на Unity сделать такую игру не сможет. Ну, ок.

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

В общем, учитывая, что изначально я сильно сомневался, стоит ли вообще писать что-то, сомнения были напрасны - затраченные усилия 100% стоят полученной отдачи. Поэтому всем начинающим разработчикам я рекомендую рассказывать про свои проекты, хотя бы потому, что это даст вам шанс понять, насколько вообще интересна ваша игра, получить первый фидбек по ней. Это действительно ценная информация.

С момента публикации прошлой статьи произошло очень много всего. Но обо всем по порядку.

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

Во-вторых, была тщательно проработана механика персонажа - настроены анимации, механика прыжков (вычисление того, какой высоты препятствия перед персонажем и какую анимацию при каких обстоятельствах надо включить), система модификации персонажа, синхронизация состояния игрока между устройствами (тут есть много разных подходов, но суть в том, что ты всегда балансируешь между точностью синхронизации состояния и количествомотправленных пакетов на сервер и соответственно с сервера на другие устройства).

Показательное видео проекта, октябрь 2020

В-третьих, была добавлена система, которая позволяет ограничивать количество игроков, которые должны получить обновление состояния конкретного игрока (или другого сетевого объекта). Пример - игроку на одном конце карты не нужно знать, что делает игрок на другом конце карты. Сервер посылает каждому игроку только нужную для каждого игрока информацию.

В-четвертых, были наконец добавлены бандлы (Asset Bundle - способ хранения ассетов в Unity с возможностью подгрузки в уже готовые билды). Это позволило также увеличить скорость итераций на iOS устройствах - это было критично, так как скорость билда для iOS достаточно медленная.

Как можно заметить, огромная часть работы была направлена на ускорение разработки и самого пайплайна. Прямо как завещал Генри Форд :)

И это дает свои плоды. Но это далеко не все, что было сделано.

Одно из последних изменений, произошедших в игре - это улучшенная оптимизация. Благодаря муторному профайлингу удалось выявить, что вызывало огромное количество фризов (фриз - ситуация, когда игра на доли секунд замирает), почему отрисовка давалась настолько тяжело и на что уходили сотни мегабайт оперативной памяти. Ниже вы можете посмотреть небольшое видео, которое я записал для участников нашей группы ВКонтакте про оптимизацию. Если вкратце, производительность игры (на минимальных настройках графики) на примере телефона Redmi Note 7 была увеличена с 15-20 кадров в секунду до >30 кадров в секунду. Было убрано огромное количество фризов. То есть по сути до оптимизации играть на данном телефоне было невозможно. Сейчас можно играть без проблем.

Конечно, те, кто разбираются, обратят внимание, что в кадре нет кучи других игроков, авто и т. д. Тесты, которые я проводил, показывают, что 20-30 игроков в кадре не рушат игру, не делают ее неиграбельной. Авто тоже меняют историю не кардинально. Но реальные тесты, которые, я надеюсь, уже скоро будут проводиться, покажут, где и какие проблемы имеются.

Также наша группа ВКонтакте набрала хорошие обороты - в ней уже больше 9 тысяч человек (без накрутки, естественно), участники достаточно активно комментируют новые публикации, участвуют в обсуждениях, предлагают свои идеи, за что им большое спасибо!

Не могу не рассказать о том, что на сайте ALT CITY: Onlineоколо 5000 человекоставили свои адреса электронной почты, чтобы первыми узнать, когда выйдет игра!

Но не все было так радужно, конечно же. Первая и, наверное, самая большая неприятность - перенос начала открытого бета тестирования и соответственно перенос релиза игры. Проект такого масштаба я делаю первый раз в жизни, поэтому вполне ожидаемо некоторые этапы в реальности заняли сильно больше времени, чем предполагалось. Честно говоря, ощущения не из приятных - на тот момент игру уже ждали около 3 тысяч человек, которые буквально каждый день спрашивали про игру. Можете представить их эмоции, когда им сказали, что игра переносится. Поэтому да, такой просчет я допустил, и это было очень гадкое чувство. И, забегая вперёд, я допустил такой просчёт позже ещё раз.

Вторая неприятность (даже, скорее, сложность) - объём работы, который нужно было проделать для подготовки игры к тестированию к новой дате - 29 декабря. Конец ноября и весь декабрь (плюс чуть чуть январь) я работал день и ночь напролёт прерываясь только на сон и еду. Вот в буквальном смысле. До этого я думал, что много работаю, но этот месяц показал мне, что такое на самом деле много работать. Это был самый настоящий месяц дикого кранча. Марафон на износ. Но я его прошёл, и считаю успешно - уже 29 декабря у меня на руках был готовый к тесту билд. Ну на тот момент я так думал.

Запуск тестирования ALT CITY: Online

29 декабря, в дату предполагаемого запуска закрытого теста игры, при беглом тестировании (на другое тестирование времени просто не было) я заметил очень неприятный баг - некоторые игроки не были видны друг другу. Хромала синхронизация. Эта проблема не была видна при тестировании на двух клиентах, но когда я стал тестировать одновременно 5-6 клиентов, эта ошибка проявилась.

Пришлось в срочном порядке решать эту проблему. Решил я ее за несколько дней, что уже сделало невозможным запуск теста 29 декабря, как я озвучивал ранее. А ведь предстояло ещё получить одобрение магазинов, ведь даже одобрение тестовых версий может занимать до недели. На деле в Google Play одобрение заняло порядка 4 дней, а в AppStore - около суток. Но я не хотел запускать тест только одной платформы, поэтому пришлось ждать. С горем пополам, 8 января все версии уже были одобрены и я был готов запускать тест.

Этот день был напряженным - с утра появилась проблема со входом в игру через ВКонтакте, причём она появляется примерно у половины пользователей. Соответственно о проблеме я уже узнал в процессе запуска теста. Другая проблема была с загрузкой бандлов с сервера - андроид версия почему-то не хотела их загружать. Все это надо было срочно решать. Спасло то, что обновления в сторах проверяются максимально быстро - от получаса до часа. После того, как я убедился, что все готово, предстояло вручную разослать приглашения всем, кто оставил свои адреса. Да, можно было бы сделать общедоступную ссылку, но по некоторым соображениям было принято решение добавлять тестировщиков вручную.

После запуска теста выявилось много багов, но один из них был критичным даже для текущего состояния игры - со временем на месте спавна фпс падал до 2. Из-за этого в группе можно наблюдать сообщения о плохой оптимизации игры, хотя причина на самом деле оказалась в том, что сервер не удалял вышедших игроков и они грузили систему. Обновление сервера, сделанное буквально за 5 минут, решило эту проблему - даже не пришлось обновлять клиент.

Так вот, на днях был успешно запущен первый этап теста - была запущена тестовая версия игры, сервер и обработано порядка 450 заявок на участие в закрытом тестировании. На момент написания статьи уже 3 дня как идёт тестирование - люди играют, изучают карту. Сервер я кстати не отключаю, даже сейчас можно подать заявку на тестирование, получить приглашение стать тестировщиком, скачать игру и поиграть самому.

Изначально планировалось запустить сразу открытый тест игры. Причём предполагалось, что состояние игры будет близко к релизному варианту. На деле некоторые вопросы заняли сильно больше времени, чем предполагалось, и пришлось адаптироваться под сложившуюся ситуацию: было принято решение запускать игру в несколько этапов. Вначале было решено запустить закрытое тестирование основных механик, тестирование синхронизации игроков и общей стабильности программного продукта на девайсах. Задача собрать как можно больше информации об ошибках игры, о ее стабильности, и прочно зафиксировать текущий результат. Это первый этап тестирования. Второй этап - открытое тестирование предрелизной версии игры. И третий этап - релиз игры на русскоязычных рынках. Так называемый софт лонч.

Справедливости ради, игра на данный момент является скорее демо версией конечного варианта, так как геймлпейные механики в ней на данный момент отсутствуют - они находятся в разработке и запускать их даже в закрытое тестирование в данном состоянии нельзя. Несмотря на это, я вижу, как в игру постоянно играют люди, в сообществе идёт активное обсуждение. Только за 3 дня было выявлено порядка 50 различных багов, что кстати может только обрадовать - тестирование идёт успешно. Кстати, порядка 95 процентов найденных багов - мелочи, которые исправляются за неделю работы. Самое главное, что несмотря на все вышесказанное, я получаю большое количество очень позитивных реакций!

Отдельное спасибо хочется сказать каждому, кто потратил время и установил себе тестовую версию ALT CITY: Online и подробно пишет о найденных багах. Благодаря вам я имею возможность сделать игру на самом деле качественной на базе той информации, которую вы мне предоставляете!

А теперь собственно подробное видео о том, в каком состоянии игра на момент 17 января 2021 года, а именно та самая первая закрытая тестовая версия:

Основные технические сложности при реализации

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

Так вот. Сложности при создании мобильной онлайн игры в открытом мире можно разделить на две сферы - работа самого открытого мира и нетворкинг. Сегодня мы остановимся на первой части.

1. Оперативная память.

Если игра подразумевает большой открытый мир, а большим в случае с Unity считается все что занимает больше 4000 юнитов на 4000 юнитов (обычно это эквивалентно 16 кв. км), то в вашем мире будет огромное количество ассетов и скорее всего вы не сможете загрузить их разом в память и использовать - просто не хватит оперативной памяти. Так что надо думать, как стримить объекты по мере перемещения персонажа по миру. Тут много разных подходов со своими плюсами и минусами. Как правило, смотрят в сторону разбиения основной сцены на кучу маленьких сцен, и потом подгружают их по мере перемещения игрока. Но это только один способ.

Другой вопрос, касающийся оперативной памяти, состоит в том, что на iOS устройствах часто (я бы сказал всегда) бывает очень сложно понять, что именно потребляет память. Профайлер Unity показывает, что игра потребляет например 500 мб, а XCode показывает все 700-800 мб. И все бы ничего, если бы не странная работа самой системы iOS - в своих приложениях вы можете использовать максимум половину от всей оперативной памяти устройства, чтобы вашу игру гарантировано не убила система.

Если потребление увеличивается, то появляется большая вероятность, что игра просто вылетит. Например, в моих тестах на iPhone 7 (у которого 2 гб оперативки) игра вылетает уже при использовании 1.2-1.3 гб. Но это опять же раз на раз не приходится. Поэтому в моем случае мы имеем устройства, которые вполне неплохо отрисовывают геометрию и имеют мощные процессоры, но сильно ограничены в оперативке. У того же Redmi Note 7 например ситуация обратная - там 4 гб оперативки, но относительно слабые процессор и видеочип.

2. Дальность прорисовки.

Естественно, все мы хотим, чтобы с любой точки на карте мы могли видеть самые отдаленные объекты и части местности. Как правило, для этого используются LODы (уровни деталей), но мы снова упираемся в проблему с оперативкой - чем больше лодов на объекте, тем больше он весит, больше занимает места в оперативной памяти.

3. Floating point precision.

Эта проблема связана с тем, что при нахождении какого-либо объекта дальше чем примерно 2000 юнитов от начала координат, начинаются проблемы с точностью вычислений. Вообще, все называют разные цифры, с каких эта проблема начинается, но на моем опыте это в районе 2000 юнитов от начала координат. Чем обусловлена эта проблема? Она обусловлено тем, что тип данных, который используется для вычисления координат, теряет точность при больших числах. Какие проблемы это может вам принести? Да огромную кучу проблем, на самом деле. Дерганные анимации, мерцающие тени, дергающиеся меши. Проблем действительно много. Решение у этой проблемы есть. Если вкратце - при пересечении определенной координаты сдвигать весь мир в центр. Сделать это можно, но сложно. Причем интересный момент, что на разных устройствах проблемы, связанные с floating point precision, могут возникать, а могут и не возникать. Например, в редакторе Unity и на айфонах даже без сдвига мира на очень отдаленных координатах никаких проблем я не замечал. А вот на Redmi Note 7 все вышеуказанные проблемы появились. Я не понимаю, почему так происходит, поэтому если у кого-то есть ответ на этот вопрос - буду рад почитать.

4. Террейн.

Если вы делаете игру в большом открытом мире (выше мы дали определение большого мира), то скорее всего вам придется использовать тайлы террейна. Дело в том, что для красочного и насыщенного мира вам скорее всего придется использовать встроенные террейны от Unity. Они всем хороши, но когда дело касается их асинхронной нагрузки, начинают возникать неприятности. Если на террейне слишком много деревьев, это может привести к фризам. Если на террейне слишком много деталей, это может привести к фризам.

Часто от террейнов уходят к обычным моделям, но это делает невозможным использование деталей (травы, например). Может и есть какое-то решение для этого, но я искал его неделю, пробовал разные варианты и ничего не нашел. Но это все полбеды.

Другая большая проблема, касающаяся террейна - найти и настроить шейдер для террейна. А после того, как ты его нашел и настроил, надо проверить, как он работает на разных устройствах, работает ли вообще. И надо еще быть готовым к тому, что он будет постоянно ломаться.

5. CPU Spikes.

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

6. Рендеринг.

Казалось бы, чем отличается отрисовка в играх с открытым миром и в играх со статичными небольшими уровнями? А много чем. Во-первых, учитывая то, что скорее всего будет использоваться сдвиг мира в начало координат, мы не сможем использовать встроенный Occlusion Culling. Таким образом, отрисовка геометрии сильно утяжеляется. Во-вторых, мы не можем использовать запекание света, так как мир будет подгружаться динамически. То есть тени тоже будут динамическими, а отрисовка теней это тяжелый процесс. Я уже не говорю о невозможности использования статического батчинга. Думаю, объяснять тут не нужно, почему использовать его не получится.

7. Собственно само моделирование мира.

Это не то чтобы большая проблема, просто требует очень много усилий, проработки и умений пользоваться определенными инструментами. Как правило, процедурная генерация помогает создать местность, затекстурировать ее, расставить базовые объекты (деревья, например).

Это самые главные проблемы, с которыми столкнулся я при разработке ALT CITY: Online, и с которыми с вероятностью 99% столкнется любой, кто тоже захочет создать игру в большом открытом мире на Unity. Возможно, какие-то проблемы я упустил, но это вот прям основное.

Что дальше?

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

Но на данный момент мне стало абсолютно очевидно, что в одного проект я возможно и вытяну, но результат очевидно будет далёк от того, который я представлял себе, начиная разрабатывать ALT CITY: Online. Поэтому последние недели я тщательно изучаю вопрос, как мне правильно разделить работу над проектом и какие конкретно специалисты мне нужны, чтобы сделать весь объём работ качественно и быстро. Проект на глазах превращается из казалось бы безумной идеи во что-то осязаемое и большое. И меня это радует. Вместе с этим проектом расту и я сам. И это крутое ощущение.

Заключение

Спасибо, что уделили время на прочтение данной статьи. Я постарался максимально подробно передать все, что произошло с проектом за последние полгода.

Это не последняя статья, будет еще как минимум две статьи, посвященных данной игре. Это только начало большой истории под названием ALT CITY: Online!

Пишите, о чем хотелось бы вам почитать в будущих статьях. Также буду рад услышать ваши мысли после прочтения данной статьи.

Если вас заинтересовала игра, и вы хотели бы первым узнать о ее релизе, то вы можете:

  1. Вступить в нашу группу Вконтакте, туда я выкладываю новости об игре;

  2. Оставить вашу почту на сайте. Мы отправим вам письмо, когда игра выйдет. Всем, кто оставил там свою почту, полагается жирный бонус на старте игры.

Как писал выше, сейчас я плотно занят набором команды, в первую очередь ищу талантливых программистов, которые умеют и любят выстраивать и прописывать логику, знают основные паттерны проектирования, умеют работать в команде. Любить игры с открытым миром - обязательно. Знание C# очень желательно, но не обязательно. Опыт работы с движком Unity желательно, но не обязательно. Если вы находитесь в Волгограде, и вы уверены, что сможете сделать этот проект лучше - жду ваше резюме по адресу altcityonline@gmail.com. Речь идет о фулл тайм работе в классном офисе в центре города. Наша цель - оперативно и качественно доработать проект до релизного состояния и запуститься в ближайшее время, после чего будем делать много интересных штук для ALT CITY: Online! Будем завоевывать мир вместе :)

Подробнее..

Как конвертировать праздники в прибыль для разработчика и радость для игроков

28.07.2020 18:07:12 | Автор: admin


Праздники это всегда high season для бизнеса. Маркетологи придумывают различные активности, чтобы не упустить момент и получить максимум прибыли. Разработчикам мобильных игр праздники также открывают широкое поле для экспериментов.

Прибыль достигает своего максимума в Черную Пятницу и период Рождества и Нового года: так, в 2019 году геймеры по всему миру потратили на мобильные игры $277 млн за Рождество, а жители США за Черную Пятницу $70 млн, побив рекорд предыдущего года. Во многом на эти доходы влияют внутриигровые ивенты и спецпредложения.

Но как удерживать пользователей в игре в остальное время года, когда нет таких ярких и всеми любимых праздников? И как соблюсти баланс между затратами на подготовку этих самых ивентов и прибылью?

Давайте посмотрим, как распределить праздничные ивенты по календарному году и привлечь пользователей к спецпредложениям. Внутри статьи вас также ждет календарь праздников и советы, на что обратить внимание при подготовке ивентов.


Для чего вообще нужны ивенты?


Ивенты это отличная возможность привлечь новых пользователей креативным контентом, а также вернуть старых пользователей в игру и увеличить свою прибыль

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

Также ивенты связаны с увеличением среднего чека пользователя. Праздничная атмосфера побуждает пользователей охотнее тратить деньги и игровые ресурсы, которые они накопили до праздников.

Для разработчиков подготовка к серьезным ивентам может стать настоящим стрессом. Поэтому нужно готовиться к праздникам заблаговременно, так как Новый Год все равно наступит, а ивенты сами себя не подготовят.

Советуем составить ивент-план на полгода или год, чтобы знать, какие события нужно подготовить заранее. Ваша команда должна рассчитать силы не только на основные обновления, но и на дополнительные внутриигровые ивенты.

Если ваши игроки из разных стран со всего мира, важно заранее подготовить переводы нового контента. Так как объем таких текстов как правило небольшой, а языков для перевода может быть много, удобнее переводить их в сервисе профессионального перевода Nitro.

При этом вам не надо искать 10-20 переводчиков для каждого языка, а достаточно отметить нужные языки галочкой. Nitro работает с переводами от одного слова, и вы получаете готовые переводы в течение 24 часов, а иногда всего за пару часов. Идеально для перевода небольших обновлений!



Какие праздники выбрать и как это сделать?


Очевидно, что Рождеством и Черной Пятницей праздники не ограничиваются, к тому же эти праздники наиболее популярны у американских и европейских пользователей, а ведь есть еще многообещающие аудитории Латинской Америки и Азии.

Самое простое, что вы можете сделать, это приурочить ваши внутриигровые ивенты к популярным праздникам, которые отмечаются практически везде: Хэллоуин, Черная Пятница, Рождество/Новый год и Китайский Новый год.

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

Однако учитывайте уместность ивента в контексте вашего приложения: в ванильной романтической игре вряд ли будет уместен Хэллоуин в его классическом понимании. Зато можно обыграть эту тему в лайтовой версии: милые тыковки, симпатичные летучие мыши, забавные монстрики.

Логичнее всего будет подбирать праздники с учетом географии пользователей. Так, в большинстве азиатских стран (кроме Японии) Новый год по лунному календарю главный праздник в году. Пасхальные ивенты популярны у европейских и американских пользователей, но будут неуместны в глазах арабской аудитории.

Обратите особое внимание на развивающиеся рынки, которые сейчас растут огромными темпами и поэкспериментируйте с ивентами, созданными специально для них. К этим рынкам относятся Латинская Америка, Юго-Восточная Азия, Ближний Восток.

Пользователи из арабских стран известны высоким ARPPU (Average Revenue Per Paying User). Во время мусульманского праздника Рамадан, который длится месяц, арабские пользователи оставляют в играх существенные суммы совсем как англоговорящие игроки в рождественские праздники.

Вот небольшой календарь праздников, которые подскажут идеи для нового контента в игре:

Зимние праздники
25 декабря Рождество (Католический мир)
31 декабря/1 января Новый год (почти все страны, кроме Азии)
Январь-февраль Лунный Новый год/Праздник Весны (Китай и Юго-Восточная Азия, но в Японии Новый год отмечают 1 января)
14 февраля День Всех Влюбленных (почти все страны, кроме Азии)
Февраль-март Китайский фестиваль фонарей
Февраль-марта Бразильский карнавал

Весенние праздники
17 марта День Святого Патрика (Ирландия и англоговорящие страны)
Март-апрель Ханами, праздник цветения сакуры (Япония)
Апрель-май Рамадан (арабские страны)
Апрель Пасха (США, Россия, Европа)
29 апреля 5 мая Золотая неделя в Японии, длинные выходные вроде майских праздников в России
Май-июнь Фестиваль Драконьих Лодок (Китай)

Летние праздники
20-е числа июня Мидсоммар, праздник середины лета (Швеция и Финляндия)
Начало июля недельный Праздник огней (Куба)
7 июля/7 августа яркий и романтичный праздник Танабата (Япония)
20 июля День Друга (Латинская Америка)

Осенние праздники
Сентябрь День середины Осени (Азия)
Сентябрь-октябрь Октоберфест (Европа)
1 октября День КНР (Китай)
27 октября фестиваль огней Дивали (Индия, Малайзия)
31 октября Хэллоуин (США)
11 ноября день Холостяка, время крупнейших распродаж (Китай)
Конец ноября День Благодарения и Черная Пятница, время распродаж (США)

Как вы могли заметить, многие праздники имеют плавающие даты, да и длиться могут не один день. Так, Черная Пятница обычно не ограничивается одним днем: распродажи могут начаться уже в День Благодарения (в четверг), а закончиться в понедельник, который уже получил название Cyber Monday специальный день для онлайн-распродаж. А уж праздники вроде Хэллоуина и Рождества могут отмечаться в играх на протяжении нескольких недель.

В Японии есть День Девочек (3 марта) и День Мальчиков (5 мая), как и в России 8 марта и 23 февраля. Но будьте осторожны с подобными праздниками в западных странах, где некоторые радикально настроенные пользователи могут негативно воспринять праздник для мальчиков.

Многие праздники имеют свои конкретные символы и их можно использовать в праздничных скинах: разноцветные фонари (Рамадан), цветущая сакура, пасхальные кролики и шоколадные яйца (в западной культуре) и т.д. Также праздники могут послужить инфоповодом для распродаж.

Будьте внимательны с переводом текстов, когда вводите новых персонажей для праздничных ивентов. Так, команда Narcade решила ко дню св. Валентина подарить герою игры-коту подружку. Влюбленную кошачью парочку звали Тиа и Миа. По именам непонятно, кто из них кот, а кто кошка, а ведь это важно при переводе на языки типа итальянского, испанского, русского Хорошо, что ребята из Narcade не забыли оставить комментарий переводчику к их заказу в Nitro, что Тиа кот, а Миа кошка.

Как можно отмечать праздники внутри игры?


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

World of Warcraft проводит ежегодный Тыквовин. Тыквовин является внутриигровой версией Хэллоуина и отмечается с 18 октября по 1 ноября. В это время в игре появляются новые персонажи, тыквовинские сладости, костюмы и так далее.

Стоит отметить тонкий момент праздничных ивентов. Цель разработчиков мобильных игр развлечь игроков интересным свежим контентом, но при этом выиграть от этого больше, чем потратить на разработку. Как правило, компании обычно закладывают в план максимум 2-3 крупных ивента в год, поскольку они долго готовятся и дорого стоят.

Однако игроки ждут новых развлечений хотя бы раз в месяц. Поэтому можно использовать второстепенные праздники или вообще придумывать свои. Например, это может быть День Рождения игры, День солнцестояния, международный день пирата, и т.д.

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

Примеры ивентов из игр


  • В Dota 2 и Overwatch есть новогодние режимы, созданные специально для зимнего периода: Холодрыжество и Охота на Йети.
  • В World of Warcraft к Октоберфесту во вселенной игры появился в Хмельной фестиваль. Также в этой игре создавали ивенты к Международному дню пирата.
  • В World of Warcraft проходит любовная лихорадка, которая основана на реальном празднике Дне Святого Валентина.
  • В World of Tanks проходит акция Купальская ночь, по мотивами ночи на Ивана Купалу. Цветок открывает замки ко всем сокровищницам.
  • В Mad GunZ есть зимнее оружие, которое пользователи могут приобрести только во время зимних каникул.
  • В игре Magic Jigsaw Puzzles придумали ивент Зимняя история. Суть собирать праздничную валюту, продвигать упряжку навстречу Санте и собирать призы.


Как привлечь пользователей к ивентам?


Сделать ивент это полдела. После его создания важно привлечь пользователей, чтобы они делали внутриигровые покупки и участвовали в вашей активности.

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

Несколько примеров пушей, которые могут натолкнуть вас на креативные мысли для вашего приложения:

SUMMER SALE Summer is the best time of year! Don't miss the best summer offer: everything is 50% off!

The hottest offer these warm summer days: get twice as much stuff for the same price!

HARVEST FESTIVAL The end of summer is the most abundant season. It's time to harvest everything is 50% off!

HALLOWEEN brings scary good prices: everything is 50% off! Price Crash!

BLACK FRIDAY Don't miss a very good deal: you get twice as much stuff for the same price!

2) Соцсети. Рассказывайте о вашем спецпредложении/ивенте в соцсетях, проводите приуроченные к праздничному ивенту конкурсы, чтобы привлечь еще большую аудиторию.

3) Текст Whats New. Не забудьте красочно рассказать о новых фичах в тексте Whats New. Это вернет в игру старых пользователей и привлечет новых.


Duck Rockets продвигают в соцсетях новый контент для Bon Voyage

Вместо выводов


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

Богатые на праздники осень и зима уже не за горами, поэтому начинайте продумывать ивенты уже сейчас. А чтобы вы могли быстро и удобно переводить тексты для ивентов и спецпредложений, мы дарим вам $20 бонусный купон в сервисе профессионального перевода Nitro. Создайте аккаунт по этой ссылке, и на вашем счету окажется $20. Не откладывайте на потом: 30.09.2020 купон превратится в тыкву.

Об авторе

Статья написана в Alconost.

Nitro служба профессионального перевода онлайн на 35 языков. Создана компанией Alconost. Переводчики-носители языка, заказ от 1 слова, онлайн-чат со службой поддержки.
50% заказов готово в течение 2 часов, 96% менее чем за 24 часа.

P.S: Nitro хорошо подходит для перевода небольших текстов. Если вам нужна локализация или перевод проекта посерьезней, добро пожаловать в Alconost.
Подробнее..

Из песочницы Как я создал мобильную игру для своего ребёнка

03.11.2020 14:09:04 | Автор: admin

Немного предыстории


С играми я знаком с самого детства, еще помню ходил каждый день к соседу, чтобы весь день играть в Марио и танчики, а после того как приставка появилась у меня мы с братом, проиграли много суток напролет, знакомясь с различными играми того времени. Я застал Intel 386 и 486, SEGA и первую PS (до сих пор вспоминаю Resident evil 3 nemesis, могу наверно пройти ее закрытыми глазами), в общем, я провел прилично времени за компьютерными играми и, как я думал, имею полное право и опыт сделать что-то свое.


Создание студии по разработке мобильных игр


Звучит, конечно, круто, но по факту, что я сделал, это зарегистрировал первым делом домен в начале 2019 года с названием моей будущей студии redrockstudio.ru. Не подумайте, это не реклама, так как на регистрации домена это и закончилось. Сайт будет, но когда точно, не скажу, сделал это на перспективу, а вдруг будем успешными.


Следующее что я сделал, это оплатил 25$ за кабинет разработчика в Google Play с одноименным название как домен.


На телефоны Apple я решил по началу не делать так как нужно было покупать кабинет разработчика за 100$ и оплачивать такую сумму раз в год. (я еще даже представления не имел как делаются игры и доведу ли я это дело до конца, поэтому ни денег, ни мотивации не хватало).


А какая будет игра?


После грандиозных планов о создании студии я начал размышлять, а какую игру я хочу, и для кого она подойдет.


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


Я не смотрел что вообще есть на google play (не искал там идее, так как думал, что это меня будет отвлекать и заведет не туда), я понимал, что игра должна быть полезной как для ребенка, так и для его родителя, поэтому решил, что игра должна быть развивающей.


Так я и пришел к идее игры звуки животных, после того как я полностью придумал в голове как игра должна выглядеть я пошёл в Google Play посмотреть есть ли что-то подобное уже на просторах Маркета. Моему удивлению чего-то похожего я не нашел, да были поделки на коленке, но это далеко отличалось от того что хотел реализовать я. Увидев, что игра как мне тогда казалось будет уникальной, а значит востребованной я начал в голове уже считать заработанные миллионы.


Суть игры


Игра по сути простая как раз для детей от 1 до 5 лет


На экране телефона появляется Рандомно (случайным образом) три животных, затем задается вопрос Кто говорит?, раздается звук животного, после чего ребенок должен угадать кому принадлежит голос, если малыш угадывает, персонаж скачет (радуется), если нет, то персонаж расстраивается и так бесконечно. Если ребенок три раза ошибается, игра заканчивается и предлагает начать заново.


Первые шаги к созданию игры


Сразу хочу сказать у меня нет знаний не в рисовании не в программировании не в анимации, я от всего этого далек, единственное с чем у меня хорошо это с фантазией и визуализацией. Ну как выяснилось позднее еще доходчиво объяснять что мне нужно ( ну это лично мое мнение ).
Первым делом я стал искать 3D моделлера, так как решил делать игру в трехмерной графике, разместил задание на сайтах фриланса, желающих было очень много, но пришлось отказать от этой затеи так как это выходило очень дорого.


Что бы вы понимали моя игра строится на простой механике угадывания животных, соответственно мне нужно было ОЧЕНЬ много сделать персонажей, а средняя цена одной модели составляла 8000 рублей + как я узнал позднее мне еще нужен специалист, который сделает анимацию этого персонажа, требовалось 3 анимации на персонажа статика (когда зверек просто стоит), победа (при угадывании зверек прыгает как сумасшедший), и проигрыш (при не правильном ответе зверек расстраивается). В общем 1 модель и 3 анимации для нее мне выходили примерно в 16 000 рублей, а мне нужно минимум 20 зверей для выпуска игры, а это 320 000 рублей чисто на персонажей, а еще нужна музыка и программист.


А вообще в игре планировалось более 100 персонажей, золотая игра получалась на мой взгляд.
Тут моя мотивация куда-то ушла, я не готов был тратить такие деньги на проект, который не гарантирует мне успех. Я оставил эту затею до лучших времен.


Игру нужно сделать!


Спустя полгода, я подумал все-таки нежно довести игру до ума, если она не будет успешной в нее все равно будет играть мой ребенок (надеюсь), мне будет приятно и этого достаточно.
Первым делом я решил отказаться от дорогостоящего 3D и делать в 2D тем более я познакомился с талантливой девушкой, которая хорошо рисовала, а самое главное, она так же, как и я вдохновилась этой игрой, мы договорились если игра будет успешной 25% прибыли ее.
Но у нее было основная работа получалось рисовать 3-4 персонажа в месяц.


С музыкой все получилось быстро, нашел на фрилансе девушку, сказал что мне нужно, через неделю она прислала результат, мы обсудили что нужно поправить/добавить и все готово. ИДЕАЛЬНО!


Следующим шагом я начал искать программиста, который соберет игру на движке Unity (насмотрелся на ютьюбе что нужно делать именно на нем и был прав).


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


Поэтому начал искать фрилансера который сможет мне это сделать, но так некого кто мне понравился по портфолио не подошел (я уверен, что я плохо и не там искал).


На ютьюбе нашел канал, там парень толково обучает анимации на Dragon Bone (это бесплатная программа для создания 2D анимации) недолго думая написал ему, мы договорились 25$ за каждого персонажа, и всю анимацию в игре сделал он на Spine за что ему огромное спасибо.
С программистом было все немного сложнее, так как я не понимал сколько это может стоить, один мне говорит сделаю за 60 000 рублей, второй говорит, что сделает за 7000 рублей. Конечно я выбрал подешевле


Самое интересное что он все сделал, и оно работало, но на тот момент в игру мы добавили только 5 зверей. А когда потребовалось добавить еще он был то сильно занят, то у него не было желания, то он вообще пропадал на несколько недель. У меня даже возникала мысль заплатить 60000 руб. но где гарантии что не повторится так же.


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


Нашел парня с Екатеринбурга имеет в gamedevЕ опыт, пообещал все сделать в срок (заключили договор 50% предоплата остальное после релиза игры). Попросил он за работу 20000 рублей, я подумал дорого ну что поделать дешевле только в ущерб качеству.


Единственное увидев работу предыдущего программиста он решил сделать игру с нуля, на цену работы это не повлияло поэтому я был не против.


И вот спустя почти 2 года, мы это сделали, я нашел копирайтера, который написал описание к игре с ключевыми словами, перевели на несколько языков, сделали скриншоты игры, иконку, рекламный ролик (его сделал я, хоть где-то приложил руку).


Если кому интересно что у нас получилось [ссылка на игру удалена модератором, поскольку это нарушение правил Хабра, ищите по названию "Звуки животных. Изучай голоса зверей играя."], буду признателен оценке и отзывам, а также советам и рекомендациям по игре


В следующей статье я постараюсь рассказать, как мы решили монетизировать игру и какие совершили ошибки, а также сколько игра принесла за первый месяц публикации.
Если будет интересно обязательно продолжу писать.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru