Как-то в марте 2012 я сходил наблюдателем на выборы президента России. Я хотел изменить этот мир к лучшему. На моем участке в Москве без видимых нарушений кандидат Путин В.В. набрал почти 50% голосов. Так я понял, что за один день мир к лучшему не меняется. Народ нужно просвещать и образовывать. И делать это надо несколько десятилетий подряд, чтобы в нашей стране получилось что-то удобное и приятное для жизни. По себе знаю, что намного легче прийти вечером с работы и не открыть книгу, а включить сериал или футбол. Погонять по экрану птичек, а не изучать иностранный язык или хотя бы поиграть в шахматы. А ведь есть еще телевизор, где кроме «Культуры» и «Что? Где? Когда?» ничего сподвигающего к
Я не учитель и не телеведущий, а программист. Благо я пишу игры для iOS, поэтому достучаться до конечного пользователя мне намного проще, чем программистам серверным или системным. Итак, я решил писать образовательные приложения. На заказ я уже написал несколько подобных. Одним из первых моих приложений была мобильная версия интернет-университета Интуит. Это серьезное приложение, где можно смотреть видео-лекции, читать лекции в текстовом виде, проходить тесты и даже получить диплом о высшем образовании. По статистике скачиваний этого приложения видно, что привлекать массового пользователя к образованию надо чем-то другим. Пример такого «другого» приложения я писал где-то в то же время, что и Интуит. Это серия игр Ерундопель, Ударник, Орфограф и т.д. Самая популярная игра из этой серии, Орфограф, продержалась больше недели на первом месте в платных играх в России. Было достаточно много образовательных игр, которые покоряли русский Аппстор подобным образом. Так что, думаю, именно этот жанр подобных простеньких образовательных игр подходит для моей цели лучше всего.
Заработать баснословных денег на таких играх конечно нельзя. «Angry birds» и «Cut the rope» всегда будут популярнее. Но будет здорово, если получится вывести их на самоокупаемость, т.е. чтобы они приносили денег не меньше, чем заказная разработка. Тогда можно будет полностью посвятить им все свое время. Кстати, в защиту птичек и ом-ном-нома, эти игры тоже вполне развивают
Первую игру я решил посвятить живописи, которой сам недавно достаточно сильно увлекся. Суть игры подсказала некогда прошедшая по рунету смешная статья про художников от californian-bi4. Я пообщался с автором статьи и она разрешила мне использовать цитаты из поста для иллюстрации. Вот некоторые приличные цитаты оттуда (самые смешные, к сожалению, нецензурные):
Если видишь на картине темный фон и всяческие страдания на лицах — это Тициан.
Если на картине много маленьких людишек — Брейгель.
Красиво, все голые, и фигуры как у культуристов после сушки — Микеланджело.
И, наконец, если все, даже тётки, похожи на Путина — это Ван Эйк.
Почитайте полную статью, она очень смешная!
Итак, цель игры простая — выбрать из 4-х вариантов, кто нарисовал находящуюся на экране картину. Если на айфоне разглядеть картины в подробностях достаточно тяжело, то на айпаде, особенно с ретина, игра раскрывается в полной мере. Картины на экране айпада выглядят потрясающе.
Писать подобную игру еще полезнее, чем играть в нее. Я узнал столько интересных тонкостей о художниках и жанрах, что теперь чувствую себя вполне прилично разбирающимся в живописи. И ходить по музеям и галереям стало намного интереснее.
Это все было немного длинное и, надеюсь, хоть немного интересное вступление. Теперь собственно перехожу к смысловой части статьи. Решил построить повествование в виде описания конкретных проблем или вопросов, которые вставали в процессе разработки, и вариантов решения, на которых остановился я. Было бы интересно сравнить с решениями, которые в этих случаях приняли бы другие разработчики. Так что пишите об этом в комментариях.
У нас есть постановка. Надо начинать продумывать архитектуру. Сложность тут одна, большой размер картин: для айпада бóльшая сторона изображения должна быть 2048 пикселей. При таком разрешении размер одного jpg около мегабайта. А если я рассчитываю на несколько сотен картин, то это становится большой проблемой.
Одним из заказчиков у меня был производитель аудиокниг. Изначально мы выпускали приложения со вшитыми в программу mp3. После выпуска около 20 книг Apple нам предложил прекратить спамить аппстор однотипными приложениями и попросил написать оболочку с in-app purchases. Тут-то мы и встали на грабли. Если хранить файлы на S3 и продавать 500мбайтную книгу за 1$, то треть берет Apple, а еще треть уходит на оплату амазона. Можно купить «безлимитный» американский shared-хостинг, вроде hostmonster но там во-первых надо платить каждый месяц, даже если продаж нет, а во-вторых могут прикрыть аккаунт, если трафик будет слишком большой. Что приведет к тому, что продажи продолжатся, а вот скачать пользователи не смогут. И это будет полный провал.
Насколько я понимаю, в iOS 6 Apple добавили возможность хранить контент, привязанный к in-app purchases, так что через год-полтора все будет сильно проще.
В случае с аудиокнигами остановились все-таки на амазоне, но даже с ним есть проблемы. У кого-то из-за плохого интернета что-то не скачивается, кто-то покупает книгу и пытается скачать её на edge. В итоге достаточно много усилий уходит на поддержку, разъяснения по почте и т.п.
Наступать на те же грабли не хотелось. Остался только вариант, когда картины лежат сразу в приложении. Минусы очевидны: через 3g не скачаешь, качается долго, места у кого-то может не хватить. Но 3d-игры по гигабайту же как-то скачивают, так что пришлось смириться.
Вопрос: где хранить изображения?
Итог: в бандле программы.
После этого я за несколько часов набросал прототип, в котором можно было увидеть картину и выбрать один из четырех вариантов. Настало время понять, реально ли вообще собрать такую базу картин и вариантов ответов. Как это делать и где хранить. Заморачиваться не стал. Завел файл-табличку в open office, которую набивал данными, а потом скриптом (в моем случае на ruby) выгружал данные из таблички в json нужного формата. Этот json при старте программы вполне быстро загружается в память. Сразу делал двуязычную программу, поэтому храню оба языка в одном месте. Тут я явно просчитался. Добавлять третий язык будет совсем неудобно. Сами файлы с картинами сохранял в отдельную папку и в файле указывал для каждой картины имя файла. Табличка в итоге выглядит примерно так:
Вопрос: как наполнять базу?
Итог: табличка OpenOffice + картинки в папке + скрипт для выгрузки в json
Когда внутренности игры были готовы, дело дошло до внешности. Как человек рачительный и самоуверенный, решил сэкономить на дизайнере. Взял в руки Pixelmator и начал придумывать экраны. Сразу предупрежу, что медведь на руку с кисточкой наступил мне еще в детстве. Самый красивый мой шедевр выглядит примерно вот так:
Но как оказалось, в простом случае рисование дизайна приложения совсем-таки наоборот не содержит в себе рисования. В интернете столько готовых частей дизайна (от фонов и шрифтов, до кисточек и готовых кнопочек и рюшечек), что достаточно как-то их умеренно совокупить и получится что-то вполне прилично выглядещее. Я конечно понимаю, что получился совсем не шедевр, но по-моему не отвратительно. Это я все к тому, что программистам не стоит бояться попробовать набросать симпатичный интерфейс. Вдруг получится? Мне еще и сам процесс в итоге понравился. Очень увлекательно.
Эскизы в итоге выглядели как-то так:
Вопрос: где брать дизайн?
Итог: нарисовал сам в Pixelmator
Вот начем я застопорился, так это на иконке. Все мои копипасты готовых картинок не давали результата, который бы можно было назвать иконкой. Так что пришлось искать помощи. Сначала я скромненько написал автору, по моему мнению, самых крутых иконок на dribble, с ненавязчивым вопросом, сколько стоит иконка у него. Он меня мягонько отослал, сказав, что сейчас в отпуске. Потом написал каким-то русским парням, у которых тоже вполне приличные работы на dribbble. Они с меня потребовали идею иконки. Я сообщил, что нужна картина в рамке с закругленными краями. Получил ценник в 15000 рублей, посоветовался с жабой и пошел искать дальше.
Где-то в это время услышал в Рунетологии про сервис рисования логотипов с помощью краудсорсинга. Оказалось такой же есть и для дизайна приложений и иконок: 99designs.com. Идея простая: вы создаете конкурс, пишете, что вам нужно. Дизайнеры присылают варианты. Если вам совсем ничего не нравится, то, вообще ничего не платя, уходите восвояси. Если что-то приглянулось — выбираете лучшую иконку и только ему платите заранее определенную цену. Я создал самый дешевый конкурс на создание иконки (199$) и стал ждать. В первый день прислали совсем треш + пару иконок от уже существующих приложений. Я расстроился, одних послал, других забанил и ушел ждать дальше. Кстати, условия конкурса были такие, что я не могу публиковать невыбранные дизайны. Придется поверить наслово. На следующий день поперло конкретно. В итоге мне 20 дизайнеров со всего мира прислали 30 разнообразных вариантов иконок. И стало реально сложно выбрать. Проблема еще в том, что выглядящая прекрасно в крупном варианте иконка, в виде иконки на айфоне выглядит блекло или непонятно. И наоборот. Если иконка хорошо смотрится в мелком виде, то крупно ей не хватает деталей. Т.к. чаще всего пользователи покупают и смотрят на иконки в аппсторе в мелком виде, то в итоге выбрал ту, которая лучше смотрелась в маленьком размере.
Наверху вторая справа — то, что я смог воплотить самостоятельно :)
Да и замысел с задумавшимся ангелом, кто же все-таки художник, мне очень понравился. Смешно, что из 20 дизайнеров со всего мира, я в итоге выбирал между украинцем и русским. Ангела нарисовал парень из Удмуртии, спасибо ему. Подводя итог, за 199$ я получил иконку, которой был очень доволен. Причем выбирал из 30 вариантов. Всем рекомендую подобные сервисы.
Вопрос: где взять иконку?
Итог: заказал на 99designs.com
Логика игры очень простая, так что особых вопросов, относящихся к программированию я придумать не смог. Я всегда пишу нативные приложения на чистом Cocoa и тут не стал изобретать велосипед. Анимации использовал стандартные, простенькие, чтобы не перегружать итак загруженный обдумыванием искусства
Мы просто выстраиваем в цепочку заранее заготовленные операции с файлами. Прикольно, что сторонние разработчики приложений могут добавлять свои операции. Так pixelmator поставляет некоторые задачи для изображений, которых не хватает в стандартной поставке.
Вопрос: как конвертировать изображения?
Итог: скрипты для Automator
И последнее. Самый больной вопрос для разработчика, про маркетинг. Большинство разаботчиков, главный из которых Umputun, считают, что маркетологи занимаются не очень-то полезным делом, я, вообще-то говоря, явный представитель этого большинства. Про результаты продвижения писать пока рано. Сейчас игра находится на третьем месте в категории образовательных игр в русском аппсторе. Это совсем смешной результат. Но я как положено заказал обзоры на всех ведущих сайтах: iguides, iphones, appleinsider. Из чуть менее крупных, но дающих результат, могу порекомендовать ipadstory.ru. Ну и разослал ссылки на игру во все тематические группы про живопись ВКонтакте. Оказывается, сейчас можно брать от 50 до 300 рублей за публикацию рекламной ссылки на стене группы. По сравнению с ценами на обзор (до 15 тыс. рублей), цены радуют :)
Контекстную или мобильную рекламу делать для платных приложений не принято. Так что больше пока ничего не придумал.
Ах, да! В игре же есть еще английский язык. Можно постараться продвинуть и не только в России. Но от подобного продвижения я сильно далек. Даже не знаю, каким сайтам стоит заказать обзоры. Попробовал заплатить 200$ сервису applaunch.us, который как раз должен разослать мой пресс-релиз нужным сайтам. Пока прошло два дня и результат нулевой. Если они ничего так и не сделают, засучу рукава и пойду рассылать по списку.
Вопрос: как продвигать?
Итог: стандартный набор, обзорные сайты, тематические группы вконтакте
Уф. Статья получилась длинновата. Соскучился я по растеканию по древу за годы в твиттере. Не судите строго. Спасибо за внимание. Надеюсь, хоть что-то полезное из нее вынести с трудом, но удалось.
И, собственно, сами виновники торжества:
«Кто художник? HD» для iPad
«Кто художник?» для iPhone
PS: Дам промокод тому, кто угадает, кто нарисовал ангелочка с иконки программы.
PPS: «Моне — пятна, Мане — люди» :)
Автор: Pilot34