ТЕКСТ: ОЛЕГ ДЕМЧЕНКО Меня с детства интересовала разработка игр. Свои первые игры – а это были простейшие текстово-экранные лабиринты с бегающими монстрами – я начал писать приблизительно с 13 лет. Причём писал на Бейсике карандашом в блокнотике, так как доступ к советским БК 0010Ш – популярному школьному компьютеру для обучения в конце 80-х годов прошлого столетия – был весьма ограничен, школьные уроки по программированию были только в двух предвыпускных классах, а в те редкие минуты, когда всё-таки удавалось посидеть за этим волшебным устройством, хотелось скорее собственно играться, чем что-то писать. До сих пор сидят в голове въевшиеся в память «blo tt emt» – загрузка программы с учительской ЕС. Хотя перенос придуманного с блокнотика на компьютер всё-таки был, как правило, успешным.
Затем были студенческие годы, первые попытки создать свой бизнес – от программирования я отошёл на долгие годы.
Мысль вернуться к играм сидела в фоновом режиме всё это время, пока не начала активно пробиваться в сознание пару лет назад. Причём пробиваться именно в связи с экспансией мобильных устройств, так как порог вхождения в мир PC и приставок достаточно высок.
Изначально была идея купить два смартфона, один жене – iPhone, второй себе – на Android, чтобы освоить обе архитектуры и идеологии. Однако после покупки iPhone 4 жене весной 2011 года я просто влюбился iOS, и до Андроида дело не дошло.
К осени я приобрёл iMac, iPad 2, докупил два свежевышедших iPhone 4s и начал думать над идеей первого приложения. К тому моменту айдевайсы были оккупированы двухлетним сыном. Львиную долю купленных в Appstore приложений составляли детские игры и развивающие программы. Идея пришла сама собой – нужно красивое, интересное приложение для детей. Это достаточно несложно для того, чтобы я написал его сам, и, если игра будет востребована – можно будет набирать команду для следующего шага.
Мысль о том, что это будет за игра, пришла ко мне, как обычно, ночью. Я встал, взял фотоаппарат и пошёл в соседнюю комнату. В 4:18 утра родилась такая фотография:
Идея была проста – представим тетрадь, в которой ребёнок нарисовал картинку, раскрасил её фломастерами, а затем её вырезали ножницами и разрезали на кусочки. Вот из этих кусочков и нужно собирать пазлы в исходное состояние. Картинки имели вид популярного для iOS игр стиля doodle, поэтому название пришло в голову само собой, чуть позже трансформировавшись в Doozzle. После сборки – это достаточно важная деталь – картинка должна была оживать. Машинки уезжать, самолёт улетать, животные убегать.
Кроме того, обязательное условие – мультитач. Меня всегда удивляло – почему современные пазлы на iPad не поддерживают эту технологию – ведь довольно логично, что дети могут собирать пазлы коллективно или с родителями. К тому же реализация мультитача достаточно не сложная.
И я засел за книги. Русскоязычные книги, найденные мной, отставали по актуальности операционной системы iOS и среды разработки XCode года на полтора – что является вечностью, с учётом скорости развития технологий, поэтому пришлось садиться за англоязычные оригиналы. Были прочитаны:
Conway J., Hillegass A. – iOS Programming/ The Big Nerd Ranch Guide – 2011
Fairbairn C. – Objective-C Fundamentals – 2011
Strougo R., Wenderlich R. – Learning Cocos2D A Hands-On Guide to Building iOS Games with Cocos2D, Box2D, and Chipmunk – 2011
Архитектура приложения сложилась в голове довольно быстро, но реальное воплощение в коде не шло. Необходимо было время на постижение деталей – но времени не хватало, так как основные виды деятельности не позволяли выключиться из жизни на такие сроки, поэтому было решено сразу подключать команду.
Я пообщался со своим будущим партнёром, идея ему понравилась, и мы принялись за реализацию. Привлекли программиста с опытом разработки C++ и Objective-C, а также художника.
Когда мой ребёнок увидел первый рисунок для концепта игры, он сразу сказал: «Папа, я хочу это!» В другой рекламе правильности идеи я не нуждался.
К тому времени, как мы начали заниматься графикой, на горизонте замаячил iPad 3, а также слухи о его Retina-экране, поэтому было решено делать всю графику сразу под высокое разрешение.
Работа шла с перерывами, а дьявол, как всегда, скрывался в деталях. Так, от изначальной идеи, что картинка складывается из самих деталей, пришлось отказаться – при совмещении кусочков пазла, с учётом масштабирования для разных устройств, между фрагментами местами появлялись малозаметные, но портящие вид щели. Поэтому был применён другой метод – на фоновом изображении находилась полная картинка, а сверху накладывались белые контуры фрагментов, закрывающих её. Как только фрагмент пазла перемещали на правильную позицию, он вместе с фрагментом контура исчезал, и на экране отображалась исходная картинка, находящаяся на заднем фоне. По мере установки фрагментов на правильные места контуры над картинкой постепенно убирались, и в итоге оставалась только сама машинка/зверюшка, или что там было задумано художником.
Кроме того, с учётом ретина-разрешения всей графики и анимации, игра начала занимать внушительные 160 мегабайт. Частично проблему удалось уменьшить, воспользовавшись методом, предложенным на одном популярном ресурсе, но размер игры всё таки находится на достаточно высоком, по моему мнению, уровне – 110 Мб. Данную проблему можно было бы решить, перейдя на векторную графику – но нормальной библиотеки, позволяющей загружать вектор в Cocos2d (да простят меня читатели, не разбирающиеся в деталях разработки, за это нагромождение странных слов), найти пока не удалось. Хотя к следующему проекту мы планируем решить эту загвоздку.
Результат нас приятно удивил. Мы тестировали приложение на знакомых — как взрослых, так и детях, и было довольно интересно наблюдать, как даже мужчины в возрасте начинали по-детски хохотать, увидев, как собранный ими пазл вдруг оживал. Это принесло идею рекламного ролика – предложить детям, никогда не игравшим в Дузлы, собрать картинку, снимая при этом выражение их лиц.
Практика несколько отличалась от теории – при съёмке детей отвлекал сам факт того, что их снимают, и того «вау-эффекта», как я ожидал, не было, хотя всё равно получилось, на мой взгляд достаточно неплохо.
Дописав игру до стадии, когда её можно было выпускать, мы вплотную подошли к вопросу – а кто же именно должен её выпускать? Начались поиски издателей. Как оказалось, издателей довольно много. Но все они хотят выпускать взрослые игры. Ниша детских приложений среди издателей оказалась довольно непопулярна. В итоге была найдена одна довольно известная калифорнийская компания, которая заинтересовалась в выпуске игры. Однако после того, как была заключена устная договорённость об издании под их маркой, а также финансовых условий, скорость их реакции, и до того достаточно невысокая, начала резко падать. В итоге, после потраченного месяца на получение пары ответов, мы решили отказаться от издателя и выпускаться самим.
Первым местом, до выпуска игры, куда я отписал с просьбой об обзоре, был iPhones.ru. Возможно, я был одной из причин возникновения этой статьи — в общем, в размещении статьи мне было отказано, в том числе в платном варианте. Это была принципиальность Артура Малосиева, в результате чего градус моего уважения к iPhones.ru в целом значительно повысился, так как в современном рунете принципиальность — вопрос, стоящий на несколько позиций ниже финансового.
В итоге, игра прошла рассмотрение в первую же подачу в Appstore, и появилась там в Чёрную Пятницу, 23 ноября.
Продажи до раскрутки не радуют воображение — в первый день было 18, потом пошла серия по 3-6 продаж за день. Без дополнительной раскрутки приложения выйти на окупаемость представляется сложным – новые предложения действительно быстро растворяются в сотнях тысяч имён, хотя при прочих равных условиях, по результату первого дня чётко вырисовалась перспективность американского рынка – наиболее количество продаж было именно там, хотя как раз в американском AppStore приложение было быстрее всего вытеснено новыми продуктами, стремительно опускаясь в списке New.
На данный момент игра состоит из 48 пазлов – 24 технических и 24 из мира животных. Приложение универсальное, поддерживает iPhone 4 и выше, а также iPad-ы всех поколений.
iPhone + iPad: [iTunes link]
30 комментариев
Форум →И что же изменило решение Артура?
По игре: почему страницы перелистываются целиком? Это же блокнот :) Плюс как-то логичнее сдвиг экрана справа-налево при старте игры, так как сейчас по привычке кажется будто возвращаемся назад.
@Алексей, Да и смысл этого экрана? Два блокнота? Смысл сдвига понял? но перелистывание все-равно коробит.
@Алексей, *понял. Не освоюсь еще с клавой мака.
@Алексей, Ну Артур своего решения не поменял – обзорной статьи не вышло. Данная статья – в рамках Dev Story, а тут, как и было обещано при открытии раздела, демократия.
@OlegDemchenko, я б не сказал, что в Dev Story прямо уж демократия, так что поздравляю с публикацией :)
@cd_racer, Спасибо :)
@Алексей, Насчёт перелистывания согласен – туда бы другой эффект подошёл, под него уже нарисована анимация, внедрять планируем с апдейтом.
А насчёт сдвига при старте игры не понял. Сейчас мы “накладываем” на блокнот лист с выбранным пазлом, кажется никакого эффекта возврата не чувствуется. Или о чём вы?
@OlegDemchenko, я имел в виду в начале при выборе блокнота сдвигается вправо либо влево, тут понял, у вас просто 2 блокнота.
@Алексей, А, ну да. Основное окно по центру, два блокнота с пазлами – справа и слева от него.
улитака быстрее паровоза :)
красиво прикольно… мы уже к сожалению выросли
@vetok, Улитку пришлось ускорить, чтобы длина ролика вписалась в требования по статье :)
@Олег Демченко, а у вас проигрывается видео или сами делаете анимацию в Cocos2D?
@foxykirian, Анимация спрайтовая, отображается через Cocos2D.
Автор, ты молодец! Работай в том же духе!
@nickolson, Спасибо! Всей мини-команде, участвовавшей в создании игры, было приятно это прочитать! :)
Спасибо за “ДевСтори”, всегда приятно почитать истории разработки от первого лица!
По задумке – отлично, реализация – очень хорошо.
Вот вам несколько мыслей, если возьметесь за доработку )
1. Разная анимация объктов, в зависимости от потраченного на собираение головоломки времени. Анимации довольно просто делаются, и не должны отнять много времени.
2. Добавить какие-нить салюты, огоньки после собирания головоломки, можно использовать например Particle System.
3. Некоторые детали можно ставить только по две, например 2 колеса, что бы нужно было двумя руками действовать
4. “Мультиплеер” Разделить экран пополам, и кто быстрее соберет свою часть картинки – победил. Что бы дети могли посоревноваться, пока родители отдыхают ))
5. Ну и из навороченного – фотографировать камерой, автоматически разбивать фото на объекты, и собирать уже реальные снимки с камеры.
Этакий режим “конструктор”. Ребенку будет очень интересно собрать свой любимый самосвал, а не какой-то абстрактый рисунок.
Конечно тут с анимацией уже так просто не получится, видимо придется ограничиваться эффектами Particle System.
Если не возражаете, пара вопросов.
Когда вы придумали-делали это приложение, вы понимали, что оно очень “узкоспециализированное” и больших денег тут не заработать никак, если не вкладывать денег в рекламу?
Вы стали изучать программирование, но в результате все равно работу делали стороние: программист, художник и партнер? За отдельные деньги, или делали все по дружбе?
Имело ли смысл идти на затраты, или просто хотелось иметь свое собственное приложение в магазине?
И стали бы вы заново это все затевать, если бы знали что приложение в лучшем случае только себя окупит?
@aclex, Спасибо за отзыв!
1. В данный момент проблема с анимациями заключается в объёме памяти, которые они отъедают. Из 110Мб игры основную часть занимает именно анимация.
2. Да, есть такие планы – система достижений с красивыми визуальными эффектами.
3. Это усложнило бы игру – всё-таки она рассчитана на маленьких деток, плюс не вполне очевидно как объяснить ребёнку, что именно в данном случае требуется одновременный перенос частей. Главная идея игры – она должна быть максимально понятна.
4. Неплохая идея, как и версия игры по сети двумя и больше устройствами, спасибо. Появились мысли как сделать это просто, но развитие в эту сторону будет зависеть от того, насколько Дузлы смогут оправдать себя финансово, так как доработки такого уровня влекут за собой дополнительные не маленькие расходы.
5. Ну это уже другое приложение получится :) Хотя идея неплохая – но чтобы картинка была яркой и интересной для ребёнка надо её правильно обработать, плюс найти контуры самого объекта, отделить от фона и т.д. – бюджет проекта уже другой, оправдает ли он себя в такой узкой нише, как приложения для детей – не известно. Имея раскрученный бренд с несколькими популярными играми в аппсторе такое, думаю, можно было бы себе позволить.
По поводу рекламы – конечно мы понимали её важность. Именно поэтому хотели найти опытного издателя, который взял бы на себя вопросы маркетинга. Но не нашли, так что теперь осваиваем это направление самостоятельно.
> За отдельные деньги, или делали все по дружбе?
По дружбе такое не делается :) Всё стоило денег, совместная работа, в принципе, всем понравилась. Если проект Дузлов в итоге не уйдёт в глубокий минус – у нас есть ещё что предложить рынку. Концепты нарисованы, для старта ждём только подтверждения того, что это всё не зря :)
Имело ли смысл идти на затраты? Я думаю да. Это риск, но если он оправдается, то не один человек получит работу не только для кармана, но и для души :)
> И стали бы вы заново это все затевать, если бы знали что приложение в лучшем случае только себя окупит?
Даже если приложение просто себя окупит – лично для меня оно того стоило.
@Олег Демченко, Спасибо за ответ.
По анимации, как вариант, анимирование отдельных частей спрайта (колеса, глазки), если конечно у вас не так было сделано.
@aclex, Нет, у нас анимированны полностью объекты сборки, отдельных анимаций для частей по ряду причин (как возможное падение производительности и сложность сборки, так и сомнения в выигрыше размера – в связи с тем, что многие объекты меняются от кадра к кадру практически полностью) му решили не делать. Вектор – наше всё :) Но это, я надеюсь, у нас впереди.
@Олег Демченко, Ну в любом случае, удачи с новыми приложениями!
@aclex, Спасибо!
Спасибо за наводку на сайт, который сжимает картинки. Я сам разработчик и только что занчительно уменьшил размер своего приложения.
@Morpheus2002, Пожалуйста.
Понравилась игра, графическое и музыкальное оформление.
К минусом можно отнести отсутствие сложных объектов.
Дочь нашла серьезный баг – собирает машинку, двигает кусочек и случайно касается экрана в углу – игра перебрасывает ее на сборку кошки. Аналогичные переходы можно вызвать жестами типа ZoomOut двумя пальцами или держать один палец на экране в левой верхней четверти экрана, а другим “постучать” по правой нижней четверти. Срабатывает не всегда, но довольно часто, и это сильно раздражает. Перебрасывает всегда на животных! Если у вас не получиться воспроизвести – могу записать видео вечером, девайс iPad-3.
П.С. Для анимации можно использовать Флеш, так же у меня есть собственная программа для анимации(я программист). Выигрыш по памяти колосальный, пример анимации two-for-the-money.narod.ru (HTML5 + JS, есть реализация под iOS)
@am98pln, забыл сказать – если заинтересуетесь – моя программа для анимации бесплатна.
@am98pln,
>Дочь нашла серьезный баг…
Ух ты, спасибо! Воспроизвести на iPad 3 , правда, не удалось – буду очень благодарен, если сможете записать видео.
Программа для анимации выглядит интересно, поэксперементируем с ней, спасибо!
@Олег Демченко, Пожалуйста!)
Видео запишу только вечером. Может следующая информация поможет вам воспроизвести баг – я “потыкал” еще – видимо ошибка как-то накапливается, думаю, не совсем корректно обрабатывается мультитач, т.к. после перезагрузки игры баг исчез, но один раз воспроизвести я его все-таки смог.
Когда играла дочь, она сначала открыла всех животных, затем начала технику – баг начал активно проявляться после 4-го транспорта, в животных играла в хаотичном порядке – после каждого пазла всегда возвращалась на страницу выбора.
@Олег Демченко, извините, не записал видео, повторно не смог добиться регулярного появления бага
@am98pln, В любом случае спасибо за информацию, нам бага пока что не удалось поймать, будем искать ещё.
Олег, спасибо большое за игру. Можно ли изложить несколько комментариев, которые возникли после теста игры с 2-х летним сыном?
Плюсы. Это, конечно, безупречная графика игры, интересный дизайн и забавные анимации.
Места, которые для нас в игре оказались сложными. Не знаю, как для других деток такого или старшего возраста. Для нас – слишком сложно и потому не “играбельно”, если ребенок пытается играть один.
1. Большое количество деталей. Может, для младших деток сделать режим, где деталей 3-4-5?
2. Нужно прикладывать деталь с большой точностью. Например, у меня сын прикладывает правильно, но с несколько бОльшим зазором, чем предполагается в игре. В результате – деталь улетает обратно, а ребенок расстроен.
3. Мне показалось, что для ребенка интересней и полезней было бы, если бы кусочки пазла имели бы НЕ хаотичную неправильную форму. А были бы более функциональны. Т.е. собирать что-то типа конструктора – вот дверь машины, вот фары, а вот колеса. Таким образом у ребенка формируется представление о целостном предмете и его частях. А когда надо поставить на место какую-то странную непонятную загогулину – не знаю как у всех, но нам это не нравится в отличие от более простых и скучных в плане графики игр, но в которых надо собрать функциональный пазл.
Надеюсь, что мои комментарии найдут понимание, спасибо!
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Какая служба в iPhone постоянно использует геолокацию?
Стоит ли опасаться СМС из прошлого на iPhone
Как сбросить AirPods до заводских настроек
Как запретить установку и удаление приложений на iPhone или iPad
Почему не удается установить macOS на внешний накопитель
Как на iPhone заблокировать входящие вызовы с неизвестных номеров
Как в MacBook с процессором M1/M2 переназначить кнопку F4 со Spotlight на LaunchPad
Почему iPhone подключается к сети Wi-Fi не с первого раза