ТЕКСТ: НИКИТА NARMO ДЕНИН. Раздел приложений и игр для детей в App Store заполнен множеством продуктов, но при всей его насыщенности качество большинства продуктов оставляет желать лучшего. Поэтому мы решили исправить эту ситуацию и создать красочную и добрую книгу-игру, которую дети могли бы проходить вместе с родителями перед сном.
Сказано — сделано, и не далее как вчера интерактивная книга «Виксы» была одобрена цензорами Apple и выпущена в свободное плавание.
Персонажи и сценарий были продуманы заранее, и к началу разработки мы уже точно знали, что хотим получить в конце. Была прорисована анимация главных героев и подготовлены фоны для первых экранов. Пришло время определяться с инструментарием.
Подготовка
Мы обратили внимание на Corona SDK — платформу на базе языка программирования Lua, которая позволяет делать сборки приложений с одной кодовой базой для платформ iOS и Android. Собрав тестовые сцены и оценив возможности, мы приобрели лицензию и с головой погрузились в работу.
Corona хороша тем, что на разработку тратится гораздо меньше времени, если сравнивать с нативными средствами (Objective-C для iOS и Java для Android). Но вместе с тем многие вещи, которые можно решить простыми средствами в «родном» инструментарии, в Corona требовали долгого и вдумчивого чтения документации и бессонных ночей, проведенных за клавиатурой.
Проблемы и их решения
Первой (и одной из немногих) проблем стало наше желание поддерживать прошивки с версии 4.0, чтобы не игнорировать пользователей со старыми устройствами. Для этого пришлось откатиться на стабильную версию Corona (изначально мы работали с daily builds, ежедневными сборками, которые несут в себе новые функции и возможности). После чего обнаружилось, что методы, которые мы использовали для переключения между сценами, отсутствуют в стабильной версии.
Сорок минут погружения в себя — и было найдено решение, которое оформилось в виде модуля, реализующего простой механизм переключения между сценами. В дополнение к нему был создан алгоритм, который позволил реализовать имитацию перелистывания страницы при переключении между сценами.
Производительность
Следующим препятствием на пути к успеху стала проблема производительности. Если на iPhone 3GS/4/4S и iPad 2 всё работало без проблем, то на iPad’ах первого поколения мы столкнулись с периодическими вылетами и тормозами. Большая часть времени, ушедшего на создание книги, была потрачена как раз на оптимизацию и ускорение работы приложения. В конечном итоге нам удалось добится плавности переходов, не жертвуя при этом насыщенностью и детализацией игровых сцен.
Портирование на iPhone
Так как изначально создавалась версия для iPad, после её завершения перед нами встала задача подгонки игровых экранов под размеры экрана iPhone. Несмотря на то, что кодовая база едина для обоих продуктов, из-за разницы в соотношениях сторон нам пришлось разделить проект на две ветви и заняться небольшими исправлениями, связанными с перестановкой элементов на сценах. Но эта задача оказалась не такой сложной, какой казалась на первый взгляд, и перенос на iPhone оказался практически безболезненным (чего нельзя сказать о переносе на Android, но это уже совсем другая история).
Работа со звуком
С высоты завершённого проекта эта часть выглядит самой простой. Некоторое время было потрачено на изучение поддерживаемых форматов — и в конечном итоге, после пары-тройки экспериментов, мы остановились на формате CAF со сжатием IMA4. Corona в сборках для iOS поддерживает форматы CAF и WAV, но так как WAV — формат без сжатия, то при его использовании мы получили бы пакет в 200 мегабайт, что не лучшим образом может сказаться на отзывах от будущих пользователей.
После конвертации исходных WAV-файлов в одноканальный CAF со сжатием IMA4 мы получили выигрыш в размерах файлов от 4 до 8 раз. Решение свести звук в один канал было принято по простой причине: редко кто пользуется наушниками в процессе игры. Тем более, что в нашем случае за устройством будут находится как минимум два человека — родитель и ребёнок — и вряд ли кто-нибудь из них станет пользоваться наушниками в этот момент.
Тестирование
— Так как мы делаем продукт для детей, то и на тестирование его нужно отдавать детям.
Это решение было принято единогласно, и ближе к финальной стадии мы стали давать нашу книгу на растерзание маленьким бета-тестерам. Некоторые сцены проходились буквально за десять секунд, некоторые (например, сцена с качелями) не удавалось пройти совсем. На основе этих наблюдений и отчётов от родителей тестировщиков мы вносили изменения и начинали новый цикл тестирования. В конечном итоге нам удалось достичь баланса между простотой и интересом. Некоторые наши тестеры до сих пор проходят игру снова и снова.
Книга
В тот момент, когда проект начал приближаться к завершению, мы решили выпустить короткую книгу, рассказывающую о мире, в котором живут наши герои. Эта книга стала нашим первым опытом работы с iBooks Author. К сожалению, этот инструмент довольно примитивен и не позволил нам реализовать все задумки в полном объёме, но это с лихвой компенсировалось скоростью создания книги: она была закончена буквально за пару дней. Единственным весомым недостатком оказалось то, что книги, созданные с помощью iBooks Author, можно загружать только на iPad. В связи с этим в наших будущих книгах мы, скорее всего, будем использовать другие инструменты, чтобы расширить круг поддерживаемых устройств.
К сожалению, русскую версию книги опубликовать пока не удалось, так как магазин iBookstore не поддерживает публикацию книг в России. Но мы надеемся, что в ближайшее время эту проблему удастся решить.
Финал
Нашей целью было создать что-то уникальное, красивое и доброе. Была придумана история, нарисованы персонажи и их анимация, интерьеры и пейзажи — и конечный результат превзошёл все наши ожидания. Сейчас мы вынашиваем новые идеи, и мир и персонажи, которых мы создали, отправятся за новыми приключениями.
Конкурс
В связи с публикацией нашего приложения мы хотим сделать подарок будущим маленьким пользователям и объявляем конкурс. Призовой фонд — 5 (пять) промокодов к нашей книге.
Для участия в конкурсе нужны только карандаш (фломастеры, краски — что угодно, чем можно рисовать) и бумага. Вашим маленьким гениям нужно лишь нарисовать свой самый волшебный сон, а вам — отправить по адресу [email protected]. Работы будут приниматься до 21.00 25.05.2012 Мск. В 22.00 Мск мы объявим победителей.
В письме, помимо самого рисунка, укажите, какую версию вы хотите получить в качестве приза: для iPhone или для iPad.
iPad: $1.99 [iTunes link]
iPhone: $0.99 [iTunes link]
iBookStore (USA): Free [iTunes link]
Победители
Милана, 3 года
Миша и Мила
Катя, 4 года
8 комментариев
Форум →Озвучка от Оптимуса Прайма. Покупаю ;)
Здравствуйте, как можно свзаться с разработчиками данной игры, хотелось бы задать несколько вопросов?
@renegate, Пишите на [email protected].
@Никита Narmo Дёнин, спасибо. Написал, жду ответа!
Приложение класс! Но в немецком языке “Виксы”, дословно переводится как “Задроты”, поэтому у немецкого пользователя будет ржач до потери памяти… :-)
@Дима НеБилан,
Хахаха! Но я бы кстати и обратил бы внимание, если бы игрушка называлась “Задроты”
Ооо, тоже разрабатываю на короне! Все думал почему в дев сторе ни разу не упоминалась
да могу подтвердить. Викса на немецком и есть Задрот. я сам живу в Германии и у нас на работе мы наших немчиков научили по русски общатся, только почему то вместо задрот им нравится больше Драчила.
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Почему в iOS 17 не работает NameDrop, чтобы делитьcя контактами по воздуху
Как перенести фото с одного iPhone на другой
Почему iPhone стал сильно греться
Как в MacBook с процессором M1/M2 переназначить кнопку F4 со Spotlight на LaunchPad
Как включить защиту украденного iPhone в iOS 17.3
Как настроить экранное время на каждом iPhone и iPad отдельно
Что делать, если iPhone не видит AirPods
Легкий способ запретить iPhone выходить из приложения