CEO в ION digital
19 января в 13:41

Разработка → Первая игра для iOS и первые трудности. Как не опустить руки и довести дело до релиза из песочницы

С автомобилем по жизни


Еще с юношеских лет автомобили – моя страсть. Я мог часами напролет читать автожурналы, рассматривать фото с последних автосалонов и автовыставок. Я буквально провожал взглядом каждый новый автомобиль проезжающий мимо меня по улице. Именно моя любовь к машинам и стала основополагающей при выборе моей первой профессии. Еще в студенческие годы я устроился журналистом в молодой автомобильный журнала. Уже через год я работал редактором отдела одного из лучших европейских журналов об автомобилях. Этот был бесценный опыт. Я узнал как создаются продукты, в частности еженедельные печатные издания. Во время работы в автопрессе я понял, что команда должна работать как единое целое. Каждый участник проекта – это незаменимая шестеренка в слаженном большом механизме. Только так, и никак иначе, на выходе получится качественный продукт.

От продакшена к продукту


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

Поиск идеи не был длительным и отчасти стал стечением обстоятельств. Мы как раз закончили один небольшой некоммерческий проект – иконку для iOS приложения.

image

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

Например:
  • “нужно изменить цвет, сделать немного поярче, сейчас как-то тускловато”
  • “знаете нашим клиентам вряд ли понравится этот шрифт”
  • “а вы можете сделать наш логотип побольше, а то его практически незаметно”


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

Ничего не бывает случайно


Так вот, у нас на руках есть красивая проработанная иконка и не более. По счастливому стечению обстоятельств, к нам в студию устроился молодой iOS разработчик. У него в копилке были несколько игр, одна из которых однотапавая гонка с собиранием ачивок. Не долго думая, мы сложили все компоненты в единое целое и получили концепцию увлекательной игры. За неделю прорисовали графику, еще за неделю проработали физику. И казалось, что вот-вот и нас ждет успех, а миллионы поклонников уже потирают руки в ожиданни нового хита. Однако, мы даже не представляли, что такое game development и что еще нам предстоит сделать, и чему еще прийдется научиться.

Запланированные сроки на разработку игры естественно сместились. Потому как запланировать те вещи, о которых не знаешь, достаточно трудно: адаптация под все устройства начиная с iPhone 4 заканчивая iPad Pro, настройка встроенных покупок, множество настроек звуковых файлов, подключение и настройка облачного сервиса для дополнительных автомобилей и многое другое.

Подводные камни и как вписаться в дедлайны


Графика нам далась легко. Над проектом работало два дизайнера паралельно: один отвечал за арт часть проекта, второй спроектировал сам интерфейс взаимодействия. Мы были вдохновлены новым направлением и воодушевлены тем, что сами разрабатываем игру. Командный дух взлетел до небес.

image

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

image

Поэтому мы приняли решение, что самое время звать кого-то в помощь. И мы подключили к проекту опытного iOS разработчика для решения более сложных задач и для общего код ревью. Дело пошло веселее, однако мы все равно были очень ограничены в сроках, потому как хотели запустить игру до рождественских праздников. Как многим известно, в этом году с 22 декабря весь штат сотрудников iTunes Connect уходил на праздничные каникулы. Это означало, что если мы не зальем игру до этой даты, то можно считать, что мы потеряли праздничное время на американском App Store, а активность людей в это время на маркете очень большая. И даже более того, нам нужно было успеть закончить работу над игрой за 5-7 рабочих дней до праздников. По-скольку, по статистике в этот конкретный период срок проверки приложений составлял 5-7 рабочих дней (мы ориентировались на данные с Appreviewtimes), то дедлайн автоматически сместилася на 15 декабря.

image

И мы-таки успели. Дело оставалось за малым – придумать название. Конкуретность в свере гонок очень высокая, выбрать простое имя оказалось достаточно сложно. И мы решили не гнаться за коротник названием. Может это была наша ошибка, время покажет. Мы остановились на ёмком, но исчерпывающем названии OldStyleRacing . При выборе имени нужно учитывать все необходимы требования по дальнейшему продвижению игры и посадочной страницы игры. Мы даже усели сделать маленькую, но эффектную лендинг страницу для нашей игры osr.iondigi.com, благо опыт разработки веба позволил нам сделать это быстро и с минимальными затратами.

Новые трудности и новые решения


Нам казалось, что все, что зависит от нас мы уже сделали. Но это было бы слишком просто. Как обычно, мы попали на нововведения и обновления правил. Это не первый случай в практике нашей компании, когда мы не успеваем сдать проект по старым правилам и нормам. Мы получили reject. А суть реджекта заключалась в следующем: у нас в игре используется промежуточная валюта в виде монет. Их можно собирать в самой игре, а можно пойти по простому пути и купить монеты во встроенном магазине методом in-app purchase. За эту внутреннюю валюту можно купить новые автомобили или стайлинг своего текущего авто. Так вот, до не давнего времени покупки за внутренюю валюту не требовали восстановления, в отличии от обычных встроенных одноразовых покупок (non-consumable purchases). Но сейчас пункт 10.6 App Store Review Guidelines гласит о том, что теперь одноразовые покупки даже за внутренюю валюту необходимо возобновлять.

image

Пути решения этой проблемы мы видели следующие:

  • Сделать регистрацию пользователей в игре. Именно этот способ нам рекоменновал Apple. Однако, регистрация достаточно большой кусок работы, а нам хотелось как можно быстрее заэпрувить игру. Тем более пользователи не очень охотно регистрируются в подобных приложениях.
  • Второй способ – это синхронизация через icloud. Он стал для нас приоритетным, поскольку позволяет пользователям незаметно и без лишних телодвижений восстановить покупки.

Мы для пущей уверености уточнили в Центре решений Apple, подходит ли данный способ. Каждый вопрос занимал от 12 до 24 часов. Но я так понимаю, это стандартный промежуток времени для ответа от App Store.

После подтверждения, мы приступили к доработкам. И 21 декабря залили новый билд с возможностью восстановления покупок за внутренюю валюту. Теперь нужно было сделать так, чтобы нашу игру проверили за один день. Я полез на Хабр за помощью. Нашел замечательную статью на тему “Ускоряем проверку ваших iOS/Mac приложений в iTunesConnect с недели до одного дня”.

Сделал все все рекоммендации по Способу 1, написал запрос Expedited App Review. Форма отправки запроса на ускоренную проверку приложений находится по адресу developer.apple.com/appstore/contact/appreviewteam/index.html.

И действительно сработало. OldStyleRacing проверили на следующий рабочий день, но, к сожелению, этот рабочий день был 29 декабря.

Новая сфера всегда неизвестность. Можно читать море статей, расспрашивать всех знакомых, занимающихся этим же, “лопатить” кучу блогов, в надежде найти хоть немного полезной информации. Но любой анализ и советы даже самых опытных профессионалов не сравнятся с личным опытом. Для меня этот проект стал своего рода обучающим. Теперь осталось научиться продвигать приложения на маркетах.
Олег Мищенко @olegion
карма
14,0
рейтинг –6,4
CEO в ION digital
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (10)

  • 0
    Такое ощущение что они аппрувили приложения без разбора — ибо, имхо, наше первое приложение на cordova не заслуживало попадания в маркет (по крайней мере как пишут другие пользователи о модерации)
    15го декабря в 23.57 по МСК загрузили
    21го по МСК в 17:20 начали проверку, в 18:18 уже было ready for sale

    апдейт так вообще за два дня 15-17 прошёл
  • +1
    Очень был удивлен увидев у вас абсолютно не измененные модельки автомобилей, да еще и с фирменными логотипами. Помню как наш legal-check отдел гонял наших художников за любые совпадения с реальными моделями, если не было предварительно получено разрешения от бренда.
    Как эта проблема решалась у вас?

    /правка орфографии
    • 0
      Добрый день! Мы изменяли логотипы брендов, в некоторых случаях очень серьезно. Например, если говорить про Mustang, то в данном случае на логотипе не лошадь, а кентавр. На других моделях также изменены цвета и форма. Может силуэты похожи, но это всего лишь один из признаков схожести. Хотя я согласен, что для многих брендов этого достаточно для судебного разбирательства.
      Что касается автомобилей, то они изначально имеют странный вид и искаженные пропорции не совпадающие с оригиналами. В любом случае, изображения автомобилей мы можем изменить в любой момент, они не зашиты в приложение.
      • 0
        Ну на мустанге явно просматривается их фирменный логотип. Очень надеюсь что вас не зацепит, просто в качестве «дружеского совета».
  • 0
    Разве 10.6 гласит о том что нужен restore для consumables? возможно, я что-то упускаю, но вам явно написали что car colors это не consumable и поэтому их нужно восстанавливать
    • 0
      Все верно, цвета автомобилей это non consumable и поэтому их нужно восстанавливать. Просто раньше покупки совершенные за внутренюю валюту не считались non consumable и соответственно не требовали restore.
      • 0
        Да, прочитал формулировку еще раз и все понял, спасибо :)
  • 0
    мне казалось что позволять востанавливать покупки (restore purchase) требование года так с 2013 года.

    уверен не на 100%, но на разве purchase items не хронятся в itunes connect, и нужно просто добавить метод чтобы restore purchase и он там выдаст по Apple ID (без необходимости реализации iCloud)
    • 0
      там non-consumable покупка за игровые монеты (consumable), что не дает возможности стандартными средствами сделать рестор.
  • 0
    Какие в итоге получились трудозатраты / временные затраты / бюджет проекта? Если там полтора месяца, то руки опускать точно рано, мне кажется.

    Предпринимаете ли какие-то шаги по продвижению проекта (кроме «хабраэффекта»)?
    Планируете ли добавить рекламную монетизацию (не увидел в тексте вкручивания видеоофферов, поэтому предположил, что их там пока нет)?

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