[Из песочницы] Как я создавал мобильный файтинг под iOS
Глава 1. Спасибо, Майкл Дудикофф В детстве я любил мечтать о том, кем же я стану, когда вырасту. Какой путь выбрать: космос или океанские глубины? Нет, я хотел создавать игры. Почему игры? Я рос во времена, когда разум любого мальчишки был отравлен компьютерным бумом и первыми консольными баталиями. Шли годы, мечта моя спала медвежьим сном, задавленная трудовыми буднями. И вот, однажды…Март 2014. 7 утра в обычном московском спортзале. Поднимаю гантели, подавляя сонное недовольство разговорами с местными хохмачами. Тут в нашу беседу внезапно вклинился ОН.
Мальчики и девочки, рожденные на заре СССР, хорошо помнят гнусавый одноголосый перевод с затертых видеокассет. И вот один из обладателей того голоса появляется на экране ТВ, подвешенного к потолку. Конечно, я сразу узнал легендарного Майкла Дудикоффа, героя киноэпопеи «Американский ниндзя».Майкл напомнил мне, как забавно в старых фильмах ниндзя кидали сюрикены. Стопка звездочек в одной руке, другой наяривают по ней скользящими движениями, чтобы поразить противника меж глаз.
Разверзлись небеса и луч небесного света ударил мне в голову! А что если вместо стопки сюрикенов у тебя на ладони смартфон, а второй рукой ты скользишь по экрану, пуляя реалистичные сюрикены в соперника. От меткости каждого броска зависит уровень нанесенных сопернику увечий. В то же самое время в тебя летят не менее смертоносные звездочки. Увернуться нельзя, но можно устранить соперника первым и «выжить». Каждый проведенный бой увеличивает игровой опыт и личный навык. Набирая опыт, получаешь возможность пользоваться сюрикенами с большей поражающей силой. Полный набор для веселого досуга.
В роли соперников — только живые люди. Юзеры из любой точки земного шара. Круто сражаться с друзьями, но можно сразиться и с незнакомцем. Такая вот минутная поножовщина один-на-один.
Круто то, что «вылетая» из экрана одного смартфона, сюрикен, не меняя заданной траектории, прорывается сквозь пространство и время на экран соперника. Виртуальная реальность в действии. Драйва добавит уникальный саунд и анимация.
Так родилась идея нарядного тайм-киллера. А чуть позже на свет появился малыш Hattori.
Глава 2. В дорогу, нам пора, дружок Чтобы создать хороший и качественный продукт, необходимо преодолеть много трудностей, пройти череду обязательных этапов. И каждый этап должен быть воплощен профессионалом в своей области. Только в этом случае из кирпичиков построится крепкий дом, а не хлюпкая хибара.
Техническое задание. Начинающие стартаперы часто увлекаются описанием хотелок. Успешные составляют детальный план, шаг за шагом излагая ключевые особенности. Правильное ТЗ — лучший помощник для получения идеального результата.
Инициируя проект, я не особо располагал свободной наличностью для делегирования этого этапа. Да и кому доверишь создавать «скелет», если целиком организм видишь только ты?
Проектирование. Нельзя доверять проектирование дизайнеру или полагаться на себя. Если только вы не профессиональный дизайнер-проектировщик, который засыпает с мыслями об идеальном юзабилити. Этот как раз тот этап, качественное выполнение которого в будущем позволит сэкономить уйму ресурсов.
Проектирование нужно и ВАЖНО делать ДО этапа дизайна. Чем лучше будут прототипы, тем лучше программисты и дизайнеры сделают ваш проект. Уже существующие прототипы, в свою очередь, на этапе дизайна можно будет обновлять.
Дизайн. Нужен подходящий дизайнер. Человек, который любит игры, энергичный, находчивый и с вашего позволения, стильный. Человек, который круто рисует и сможет воплотить все мои идеи. А сверху накидает еще гору своих.Первого кандидата я выбрал интуитивно. А интуиция еще та стерва.
Возможно, вы заметили отсутствие гениальности в этих работах. И уже задались вопросом «как же так вышло»?
Я нашел дизайнера. Иван зацепил меня своим портфолио на одном из фриланс сайтов. Мне понравилась его реакция на описание игры, казалось, он сможет сделать что-то крутое. Я был так вдохновлен!
Как это часто бывает, восхищение очень быстро сменилось разочарованием. После первых эскизов стало понятно, что парень совсем не хочет думать, вообще не интересуется играми, а тема ниндзя и Востока в целом от него далека.
По моему мнению, хороший дизайнер не страшится вдумываться в задачу, развивать ее, привносить что-то свое. Иван же не хотел вникать в чужую идею. Я сделал выводы. Сказал Ивану «сайонара» и двинулся дальше.
Я могу бесконечно рассуждать о поисках дизайнера. Это мой любимый этап. Когда благодаря таланту и эрудиции другого человека фантазии приобретают форму.
После Ивана было еще несколько человек, пробовавших свои силы. Но в голове то и дело звенело: «Это не то! Твоей игре нужно по-другому».
Спустя время и десятки вариантов пришло четкое понимание дизайна будущей игры. Лаконичная, но не слишком простая, с учетом современной действительности, без мультяшности и детсада. Мне во многом помогал мой главный цензор — любимая жена. У нее отличное умение с первого взгляда цепко подмечать неявные недостатки и выдавать трезвое суждение. Да-да, знаю, я подкаблучник.
Потратив последние запасы маны на «призвать дизайнера» получилось следующее:
— Привет Лех. Вот наша идея. Я хочу, чтобы она выглядела вот так! Что думаешь? — Ок. Давай сделаю, как считаю. А ты мне скажешь, лучше это или хуже того, что ты хотел.
Это было первым звоночком. Дизайнер ядерный. В хорошем смысле этого слова.
Предложенная концепция оказалась очень крутой. Отвечала всем моим представлениям об игре. Живо и не мультяшно. С горящими глазами.
Алексею я предложил партнерство в проекте, очень уж понравился. Как раз один из нужных кирпичиков для построения крепкого жилища.
В чужих историях я очень люблю читать о создании иконки. Эту маленькую, но важную деталь нельзя недооценивать. История про нашу драматична и полна интриги.
Много дней и ночей длилась битва за иконку. Споры продолжались не дольше, чем вечность. Мнения разделились. Я даже начал искать для нашей малышки личного дизайнера. Те, кто нравились, стоили целую толпу Бенджаминов Франклинов. Я уже был готов выйти на улицу и развлекать толпу песнопением, дабы собрать нужную сумму.
Мы даже поругались с Лехой. Казалось, он не слышит меня. Я думал, дойдёт до убийства. Ежедневные холивары не давали результата, как и конструктивные обсуждения. Мои аргументы не убеждали.
В итоге, другой дизайнер нарисовал хорошую иконку, которую мы приняли (левая в нижнем ряду), а потом заменили на предложенную в самом начале (вторая слева в верхнем ряду). Да простит меня Леха за потраченные нервы.
А какая по нраву вам?
Кодинг. Леонид — давний друг, с которым мы встретились на одном из проектов. С тех пор не разлей вода. Мы партнеры, поэтому программирование, слава те хоспади, стоило ровно ничего. Партнеры заполонили весь проект.
Первая трудность: Леонид никогда не кодил под iOS. Вторая: отсутствие нужных железок. Нас спасло умение Леонида учиться со скоростью летящего сюрикена. Помогло еще и то, что остался грязный и тормозной мак от другого проекта. Земля ему пухом.
Кстати, после нескольких месяцев работы Леонид принял волевое решение купить новый мак. На собственные деньги! Леонид верил в наш успех, и это не могло не радовать.
Кому-то может показаться, что мой друг странный. И это так. Но сие заключение не отменяет факта, что он крутой программист и хороший человек.
Изначально я хотел найти других исполнителей. Компанию-разработчика мобильных приложений. Но хорошо то, что хорошо кончается. Уверен, на выходе я бы получил тучу вложенных средств и отсутствие гарантий крутого результата.
Тут я хотел вставить монолог программиста про архитектуру проекта. Короче. Только нативный код. Только хардкор.
Был еще интересный случай. Игра чуть было не погибла. Вместе с Леонидом…Вы уже начали сопереживать ему, думая, что он заработался? Леонид скушал абрикосовую косточку, когда делал себе чудо полезный коктейль. Мир чуть было не лишился хорошего человека, а мы потеряли месяц разработки. Берегитесь абрикосовых косточек.
Контент. Для воплощения в игре соответствующей атмосферы нужен хороший контент. Каждое слово и буква имеют значение — от этого зависит восприятие. Контент наполняет игру, бежит по ее венам.
Везде, где есть буквы, вы должны создать нечто потрясающее. Это должно быть не слишком сложно, но и не косноязычно. Не слишком длинно. Читабельно и с юмором.
Важно помнить: если получится успешный продукт, понадобится полная локализация. Рекомендую делать локализацию, когда контент на родном языке будет отточен также остро, как сюрикены в игре.
Переводить нужно все: тексты на скриншотах, название игры, ключевые слова, описание игры в аппстор, название всех элементов внутри игры. Я подготовил таблицу, которая упростила и ускорила процесс.
В таблице собраны все ключевые языки. Колонки рядом имеет смысл оставить для статуса на текущий момент. Второй блок предназначается для самих переводов. Ключевые слова я сделал в отдельной таблице, в которой я оценивал траффик и уровень конкуренции по каждому слову. Очень трудозатратное действо, если подходить с умом.
Мы столкнулись с забавной трудностью: утвердив понравившееся название кнопки на русском, мы попытались подставить его на немецком…метровое сочетание букв явно не втискивалось в текстовое поле, задуманное нашим дизайнером.
Самое время поговорить О ШРИФТЕ.
****** подкрался незаметно. Как оказалось, на этапе дизайна никто не подумал про локализацию уникального шрифта. По неведомой трезвому разуму причине, дизайнер начал выстраивать визуальный ряд используя латиницу. Подобрал подходящий общей эстетике шрифт. Когда же мы выставили русский язык, игра начала ругаться уродливыми буквами. Все поехало. Удивлению не было предела.
Откуда взять кириллицу для шрифта, который нам так полюбился? Казалось бы, иди бери другой шрифт, у которого есть кириллица. Но кем мы будем, если пойдем попсовым путем.
Решено! Рисуем кириллицу и другие символы для текущего шрифта. Для правильного восприятия продукта любым пользователем, очень важно, чтобы текст корректно и тождественно выглядел на разных языках. Итог: в моей команде появился новый дизайнер, специалист по шрифтам.
Каждая буква, каждый символ отрисовывается, обтягивается и утверждается. После того, как все буквы и символы готовы, требуется потратить еще немного маны и «призвать специалиста», который создаст файл шрифта. Да-да, для этого нужен отдельный человек.
Звук. Любая игра без крутой озвучки — как отпуск в подмосковном пансионате. Вроде и отдых, но за эти деньги лучше к океану.
Когда мы добрались до звука, игра была практически готова. У меня было и есть четкое понимание, что, если делаешь качественный продукт, не гоже брать готовые звуки и музыку. С этих мыслей начался поиск таланта.
Музыкальное сопровождение — одно из тех направлений работы, в котором у меня был практически нулевой опыт. Пошел к фрилансерам и в очередной раз столкнулся с русской бедой «делаю мало, ленюсь много, хочу денег». Не исключаю, что я не там искал.
Если вы по-настоящему горите своим проектом, будьте готовы собирать информацию по крупицам, отделять зерна от плевел, сутками торчать на тематических форумах. Терпение и труд профессионального звуковика найдут.
Я попробовал капнуть за бугром и мне повезло. Изучая понравившиеся проекты, наводил справки и вышел на нужного человека. Молодой композитор, самородок с родины Юля Томтена.
Я поведал ему про магию сюрикенов. Идея его зацепила, согласился работать вместе. Композитор сам привлек актёра для голосовой озвучки, и уже через месяц у нас были звуки и музыка в нужном формате с желанной атмосферой. Все уникально, написано специально для Hattori. Я был в экстазе.
При работе над звуковым сопровождением очень важно описать все в деталях. В какой момент какой длительностью какое событие происходит. Расскажите композитору о своих предпочтениях и желаемой стилистике. Вы — тот человек, у которого должно быть общее видение ситуации и четкое понимание, ЧЕГО ВЫ ХОТИТЕ. Только в этом случае, результат доставит оргазмические ощущения.
Крайне важно, чтобы звук не сильно влиял на размер приложения. Но и качество нельзя терять. Для этого мы использовали формат m4a. Остальные форматы отвалились сами, по разным техническим причинам. По словам Леонида, при создании приложений очень непросто сделать озвучку, чтобы она корректно и качественно работала. Я ему верю.
Видео. «А при чем тут видео» — спросите вы. С недавних пор Яблочко внедрило такую модную фичу, видео превью. Острая катана, как и сюрикен, надежный спутник воина-тени, а качественное видео — высокой конверсии.
У вас есть всего 30 секунд, чтобы показать все преимущества игра. Потенциальные юзеры — народ строптивый и требовательный, поэтому было принято решение непременно видео делать.
Описанные в яблочном гайде требования и поиски в Рунете ясности не внесли и ответов не дали. Метод оттоптанных грабель показал:
— Геймплей нужно показывать вертикально; — Без дикторского голоса; — Без посторонних объектов, тем более самого айфона; — Длительность не более 30 секунд; — Размер исходника не более 500 мб; — Формат исключительно MOV с ProRes кодеком; — Соотношение сторон под актуальные устройства; — Строго не более 30FPS; — Без лишней воды, динамично показать суть; — Залить видео можно только если у вас мак и последняя версия браузера с ОС.
Кстати, оговорюсь: соблюдение всех требований обязательно. В противном случае вы можете столкнуться с ситуацией, когда ваше видео в релизе НЕ появится.
Еще одно маленькое приключение. Один достойный ниндзя, за время разработки, стал исключительно преданным фанатом. И снял для нас нецензурную версию трейлера для вирусного продвижения в сети. Получилось красиво и дало определенный опыт. Страждущие могут оценить творение на сайте.
Глава 3. Продвигай меня полностью, полностью продвигай Главная цель продвижения — нарастить критическую массу пользователей. Для чего? Чтобы ежедневно получать тонны органических скачиваний. Вначале, вы работаете на продвижение. Потом, продвижение работает на вас.
Нужно было выбрать максимально эффективные и экономически выгодные средства продвижения. Мой выбор пал на:
— ASO. Оптимизация приложения для максимизации его конверсии. Названия, ключевые слова, переводы на другие языки. Ключевые слова на других языках. Тут мне очень помогли статьи на хабре и чудо сервис sensortower.com
— Публикация обзоров. Нужно отобрать исключительно живые ресурсы, на которых есть целевая аудитория. Не стоит использовать готовые сервисы, которые предлагают разослать ваше приложение всему миру журналистов. Это далеко от правды и низкоэффективно. Тут нужен индивидуальный подход к каждому отобранному ресурсу.
— Паблики. Игра массовая, поэтому нам интересны места массового обитания людей с нужными устройствами. Паблики очень хорошо вписываются в эти условия.
— Летсплееры. Игроки, которые записывают и комментируют свой игровой процесс. Выкладывают на тубах свои сюжеты и собирают громадные аудитории. Этот сегмент подходит нам по причине охвата и целевой аудитории.
Эти методы должны помочь игре достичь критической массы пользователей, которая сможет сгенерировать необходимый для дальнейшего развития доход от встроенной в игру рекламы.
Чтобы разобраться в продвижении, вы должны знать ответы на конкретные вопросы. Какова главная цель вашего приложения? Цель по продажам? Цели по прибыли? Цели по ценам? Какой объем вашей целевой аудитории? Кто составляет вашу целевую аудиторию? Кто главные конкуренты? Какие плюсы, минусы, возможности и риски есть у приложения? Какими способами можно продвигать ваше приложение?
Четкий план и следование ему приведет к желаемому результату. Все остальное — оправдания собственной лени. В обязательно порядке, сайт и пресс-кит.
Глава 4. Финансы поют романсы О доходах говорить рано. Да и отдельная история нужна для таких рассказов. Я подготовил удобную таблицу, в которой отражены расходы.
Основные затраты были на дизайн и звук, при том, что дизайнер стал нашим партнером, а композитор пошел на встречу и дал хорошие условия оплаты в рассрочку.
Мой опыт подсказывает, что за такие деньги, вероятность создать подобный по качеству продукт — мизерная. Могли бы сделать быстрее если бы не форс мажоры в виде постоянной занятости ключевых лиц и абрикосовой косточки. Полученный за это время опыт — бесценен.
Глава 5. Зима близко Чем бы я хотел подытожишь все вышесказанное? Игрушка получилась «вкусная», сочная красотка со своим характером.
Играть с живым соперником, в другой точке земли — это что-то фееричное, ощущения непередаваемые. Это не тот случай, где вы на двое суток зависли на полях доты. Тут достаточно молниеносного порыва, сносного коннекта и минуты (если сможете оторваться…) свободного времени. Автомобильная пробка? Очередь у врача? Скучная лекция? Вызываешь соперника на бой и видишь, как летят сюрикены — значит, кто-то наяривает по экрану с бешеной скоростью, пытаясь выбить из тебя всю душу. И вы, как два…ЭЭЭ…странных чувака, дергаете руками с улыбающимися физиономиями.
Самое крутое, на мой взгляд, это игра с друзьями. Ищешь его в поиске, ну или выбираешь из списка тех, кто поблизости. И понеслась! Когда мы тестировали игру с Леонидом, нашим легендарным программистом, он меня уделал. За 15 секунд. Я был вне себя. Это раздуло во мне дикий соревновательный дух.
Я стал тренироваться. Тут ты уже стремишься добраться до улучшенного сюрикена, дабы наказать выскочку. Кстати, приятный бонус — руки болят после игры. Вот вам и физкультура.
Честно говоря, мы безумно радовались, когда увидели реакцию первых очевидцев наших ниндзя-баталий. Весь вагон наблюдал за нами, когда мы решили проверить работоспособность Hattori в метро. Показал игру в спорт зале — тут же столпилась куча посетителей. Смотрели, почему я так странно себя веду, машу руками как ошпаренный.
Закончить эту историю пока не получится. Верю, что это начало чего-то большего. Рад, что удалось воплотить свою идею именно такой. Надеюсь, что и вы сможете прочувствовать всю вложенную в игру любовь и душу. Потратите не один час на бои с друзьями. И конечно, эта история окажется для вас полезной. Если история будет воспринята сообществом положительно. Обязуюсь написать следующую, которая раскроет подробно вывод в ТОП и рассказать больше про технические моменты продукта.
Аригато. Сайонара, и до новых встреч online.
[embedded content]