Инди
Adam Jensen
1042

Мой путь от мечты до релиза в App Store. Выпуск первой инди игры в соло. Vol. 1

В закладки
Слушать

Я верю, что мобильный жанр достоин занять свою нишу и не быть урезанной копией других платформ. Поэтому я стараюсь делать такой продукт, который бы идеально подходил под смартфоны и захватывал не меньше, чем "большие" игры.

Недавно я выпустил свой первый проект для iOS. Это вертикально скроллящийся платформер с управлением в одно касание.

Из особенностей то, что каждый день попадаешь в уровень который доступен только в этот день и пройти его в другой раз не получится. Играть совсем не сложно и прохождение занимает не много времени. Вообщем попробуйте, если будет что сказать то жду комментариев. [ссылка на игру]

Сегодня расскажу о том, как именно мне это удалось в одиночку. А в следующей части расскажу подробнее про саму разработку, как менялась игра и как менялся я как геймдизайнер.

О себе

Я проработал около трех лет в мобильной игровой студии. Одну половину этого срока - геймдизайнером, другую ASO специалистом. Закончил ин. яз. и до начала своего проекта не умел программировать и рисовать.

Почему мобильные игры?

Мне никогда не нравились мобилки; тем более, что никогда не увлекался смартфонами и познакомился с техникой Apple уже на этапе iPhone 5s. Дело в том, что, когда я искал работу, лет семь назад, все найденные вакансии были в мобильном геймдеве, но я решил, что лучше туда, чем в условный супермаркет. Со временем, я начал играть на мобилке, где по работе, а где интереса ради, и так я натыкался на крутые проекты, полюбил их и проникнутся философией мобильного гейминга.

Начало своего проекта

Выбор проекта: хотелось сделать что-то простое для первого опыта и то, что нравится мне. Решил взять основную механику от уже существующей игры, которая перестала идти на iPad мини и чем меня сильно бесила, добавить “обвеса”, сюжета и т.д. и т.п.

Выбор движка: Решив, что если не смогу заработать на App Store то выпускать на Google Play смысла тоже нет, а если заработал на одной площадке, то - хватит и с одной. Поэтому движок не обязан быть кроссплатформенным На тот момент очень много игр жутко тормозили на устройствах от Apple, перегревали его, разряжали в ноль и всех их объединяло одно - Unity. Я же хотел делать игру, которая летает и поэтому вместо кроссплатформенной Юнити решил делать нативно в Xcode, ведь тогда только появился и развивался 2д движок SpriteKit от Apple и их новый язык Swift.

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

Обучение программированию

По образованию я лингвист(английский и немецкий) и это очень сильно мне помогло в обучении. Летом 2014 Apple выпускает Swift Playgrounds для iPad, это такая штука где код нужно составлять из пазлов текста и этот код заставляет совершать действия персонажа в игре. В то время я еще работал и мог брать планшет домой и иногда вечерами или по пути на работу в автобусе проходил эту “песочницу” и все казалось довольно просто. После этого я нашел официальный тутор от эпл “делаем приложение для готовки”, чтобы его сделать нужен Mac. Купил БУ Mac mini и вставил 8 гб оперативки и решил оставить ССД, который остался от старого хозяина(который сгорит через год и похоронит десятки туториальных проектов, наработок и мой незавершенный проект т.к. я решил не сохранять все в iCloud). Как же я был рад, что у меня появился дома мак! Сделал этот проект приложение про готовку и дальше начал читать книгу про Swift от Ray Wenderlich страниц так на 800. Я ее почти закончил, но готов сказать, что это было тратой времени, когда у тебя нет опыта программирования читать общую информацию про язык наверное бессмысленно. Просрать два месяца - чек.

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

Дальше я выбираю еще одну книгу от Ray Wenderlich “2d iOS Games by tutorials” и начинаю шаг за шагом выполнять все, что в ней написано. Поначалу это выглядело очень тупо, перепечатывание строк кода из книжки в Xcode, но со временем я привык, а еще со временем начал понимать, что пишу. Процесс изучения этого материала был очень сложный и дело не в книге (на самом деле это очень крутая книга, тоже страниц на 700), а дело в том, что изучать программирование оказалось сложным занятием. Плюс ко всему сложности добавляло то, что я обучался один и мне не у кого было спросить и делал это уставший после работы и на выходных. Спустя наверное месяц самообучения я думал, что никогда в жизни у меня не получиться это понять и что программисты какие-то боги. Сложность еще была в том, что книга была написана под устаревшую версию Свифта и мне в процессе обучения приходилось исправлять ошибки, которые мне выдавал Xcode, что вызывало у меня отдельное чувство “тревоги”. Был ступор, я чувствовал себя тупым и беспомощным, таких моментом в моей жизни было не много, наверное это одна из самых сложных вещей с которой мне довелось столкнуться. Но я не сдавался, перечитывал страницы по несколько раз, перечитывал код, возвращался назад по главам и через пол года я осилил эту книгу и мог сказать, что я понимаю почти все в этой книге и могу приступать к своему проекту. Но, так для профилактики, решил поделать еще парочку туториалов в интернете, что заняло не много времени.

Спустя, наверное, месяц самообучения я думал, что никогда в жизни у меня не получиться это понять

Подытожив, хочу сказать, что когда я брался за Swift Playgrounds вся эта идея с программированием казалась для меня фантастикой, а самостоятельно разбираться, что такое IDE, библиотека, движок, фреймворк и т.д. поначалу может быть тяжеловато, но с этим прийдется разбираться, ведь программирование, как оказалось, это не просто писать текст в блокнот и обычно не достаточно знать базовые методы языка, а необходимо изучать всю экосистему. Этот опыт для меня, как геймдизайнера, многое дает, понимание всех этапов и как, что работает, помогает четче формировать игровые механики и доносить их до людей, помогает понимать сколько стоит та или иная фича в реализации.

Этот проект послужил площадкой для обучения и забавно видеть как менялся код за годы разработки, но моя личная гордость это ноль “варнингов”!

В игре есть только один баг, который я не могу пофиксить, и связан он, как мне удобно думать, с не самой совершенной системой 2д физики. А так, я очень полюбил программировать, ведь результат ожидаем и прогнозируем, в отличии от геймдизайна. А Swift, как язык, оказался очень крутой и лаконичный.

Арт

Сюда я так же отнесу и интерфейсы; с них и начнем, ведь потратил я очень много времени, около полу года. Это было время прокрастинации и получения урока. Перед стартом своего первого проекта я мечтал, что у меня все будет круто, идеально, вау конфетка. Наверное многие замечали за собой, как я за собой, играя в другие проекты, что-то нравится, а что-то - нет и сразу появляется вот эта мысль, как бы сделал ты. Периодически листая Pinterest появляются крутые интерфейсы и у меня даже одно время была теория разработки игры отталкиваясь от UI/UX, т.е. сначала придумываем оригинальный UX, а под него уже механики. На то время интерфейс Clash Royale был очень свежим и крутым и очень многие его копировали, я тоже накидал его в скетче довольно быстро, но решил не заимствовать чужое и придумать, что-то крутое, не чуть не хуже, но свое. Я переоценил себя. У меня не было опыта дизайнера и художника, плюс я столкнулся с проблемой, что обычно, когда мы что-то представляем крутое в голове это значит, что мы ничего не представляем, даже размытого образа на бумаге нет. Вот буквально минуту назад ты видел много крутых картинок в интернете и полон вдохновения, открываешь программу и не можешь нарисовать не единого сантиметра. Я сидел и каждый день пытался придумать стиль, выкидывал вариант за вариантом и все было отстой и именно тогда я словил демотивацию потому, что время уходило, а перспективы на что-то стоящее стремились к нулю.

В итоге получилось то что получилось.

Минус в том, что он не игровой, а больше про приложение. Большую часть работы сейчас не найти в проекте, потому что была вырезана целая сцена с выбором уровней и механика с сюжетом.

Урок для себя я извлек такой, если ты новичок и только учишься, то лучшей идеей будет взять референс и переделать его под себя. Кажется какой-то прописной истиной, но что поделать с наивным творцом внутри себя.

Если ты новичок и только учишься, то лучшей идеей будет взять референс и переделать его под себя

А теперь основное: наполнение проекта объектами, анимациями и эффектами. У меня был самый дешевый планшет для рисования и платный фотошоп. Найти обучение подобное тому, что я нашел по программированию у меня не получилось. Конечно я посмотрел какие-то мини курсы по цвету, свету и композиции, но это ничего мне не дало. Каких-то хитростей я не знаю, поэтому нужно просто брать и рисовать пока не получится что-то более или менее, хотя помню в университете я ради интереса занимался срисовыванием, или как это правильно называется, возможно этот процесс поможет набить руку. Рисовать оказалось еще сложнее, чем делать интерфейсы, ведь UI это набор прямоугольников с текстом, а в рисовании еще добавляются круг и треугольник, вообщем формы посложнее. Сложность еще была и с выбором стилистики, мне хотелось что-то наподобие Mirror’s Edge, но это были лишь эмоции и в голове, а тем более “на бумаге” это никак не формировалось. Это сейчас с готовым проектом может казаться, что это был незначительный этап, но я скажу, что когда ты не умеешь рисовать и нужно сформировать привлекательный визуальный стиль проекта то это, по меньшей мере, мучительно сложно. Ненавижу рисовать, хотя люблю залипать на крутые работы на Artstation’е, но все таки потребление контента далеко не тоже самое, что его производство, между ними пропасть. Для себя пришел к заключению, что рисование это творческая работа, как пение, если душа поет, то все получается, если ты “дед инсайд” то тут гг.

Вот так выглядела первая версия, которая была в сторе несколько месяцев.

Она меня не устраивала и я наконец то додумался делать рендеры 3д объектов, в моем случае MagicaVoxel и все пошло пободрее. Но если забить на рисование и использовать только рендер, то прийдется также делать всех персонажей с анимациями тоже, что дофига делов, даже больше чем 2д покадровая отрисовка. Самый дешевый вариант это скелетная 2д анимация, которую можно сделать очень “примитивной” как в Bowmasters и как мне кажется уже теперь, это не такой уж и ужасный вариант.

Рисовать и анимировать врагов и главного персонажа оказалось еще сложнее, чем элементы окружения. Сложность в том, что обычно, когда придумываешь какого-то персонажа, он гуманоидной формы, а рисовать людей и животных очень сложно, особенно делать покадровую анимацию с ними. Меня хватило только на главного героя и из-за того, что он один в игре живой, она кажется немного мертвой. К “мертвости” еще добавляет, то что все движущиеся враги роботы и дроны, а это один архетип что-ли и жизнь в них весьма условная. Плюс, когда я продумывал арт, то решил, что было бы неплохо упорядочить все элементы формами и цветом, это должно было по моей задумке упростить читаемость игры для мобильных геймеров и снизить порог входа. Так прямоугольные формы - безопасные, треугольные - опасные (поэтому наверное лучше было бы вместо кристаллов сделать круглые монетки). Голубые цвета - по ним можно бежать, оранжевые - движущиеся, красные - смертельные. Я не исключаю, что идея правильная, но ограниченность моего “мастерства” превратила ее в не сочетающуюся палитру детского рисунка, что наверное упрощало картинку, но делало ее скучной.

Когда через несколько месяцев я решил переделать объекты окружения, то выбрал базовые цвета травы, земли, кирпича и коробок, но сохранил неумение выбирать яркость, контрастность и насыщенность. Не знаю относится ли это к арту, но одной из причин переработки объектов послужили габариты. Эту деталь я полностью упустил из вида на старте, но суть в том, что платформеры желательно разбивать на тайлы и все элементы должны следовать им. В пикселях это 8, 16, 32, 64, 128, 256. Когда все элементы мира отражают эти размеры, то собирать уровни гораздо легче и, я думаю, они становятся более читабельными.

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

Систему частиц(партиклы) изучать не пришлось, просто играешься с рычажками, но очень легко перекрутить не туда куда нужно и все сломать.

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

App Store

Залить и выпустить игру в сторе для меня было просто. Во первых я сталкивался с этим на работе, во вторых я знал английский. Английский понадобился в создании аккаунта, оформлении разных онлайн документов в сторе, создании странички и отправки на проверку. Плюс если гуглить разные странные вопросы на эту тему, то на английском гораздо больше шансов найти ответ. Но это техническая часть, а вот креативная (промо материал в стор: скрины и иконка) заслуживает отдельного внимания и стоит почитать статьи на этот счет. Из личного опыта, с иконкой могу посоветовать проанализировать схожие игры, сделать много вариантов и дать проголосовать родственникам и друзьям. Желательно сделать скриншот экрана телефона с множеством иконок других игр и вставить вместо одной из них свою. Со скриншотами похожая ситуация, главная идея, как мне кажется, гиперболизация основных эмоций игры и крутых особенностей. Я делал несколько вариантов скринов и иконок и результат сразу отражался на загрузках. Думаю, что менять их нужно пока не будет достигнут максимальный результат по конверсии просмотра страницы в установки.

Описание в магазине считаю максимально бесполезной частью и тратить деньги на его локализацию не советую.

Ключевые слова. На них я собаку съел на работе и был полностью готов на своем проекте, хотя меня конечно и передернуло немного, уж больно много я их сделал в свое время. Как конкретно я их делал не расскажу, но скажу, что бездумное использование сервисов типо Sensortower и AppAnnie даст нулевой результат. Об актуальности ключевиков в 2020 мне судить тяжело, я не работаю в студии с трафиком, аналитикой и ASO, но что-то мне подсказывает, что при нулевых бюджетах смысла в них нет, какие-то загрузки каждый день конечно будут, но заработать на этом вряд ли получится. Что поделать, индустрия выросла, правила игры изменились. Если раньше можно было просто выпустить игру и заработать, потом можно было сделать нормальную игру и заработать, потом можно было сделать ASO или получить фичер и заработать, сделать клон или еще что и именно в то время лет шесть назад идея выпустить свой проект в одиночку не казалась такой глупой, то сейчас все чаще появляются новости когда не один человек что-то сделал, а как бывшие сотрудники с огромным опытом из Blizzard, Riot или любых других компаний, организовали свою студию, собрали денег, выпустили проект и не заработали. Я всегда сравнивал игровую индустрию с кино, у них схожие этапы взросления, но киноиндустрия уже в финальной своей стадии и мечтать ворваться туда инди-киноделом в наши дни, как минимум смешно, а игровая индустрия за какие-то 20 лет почти догнала ее и запрыгнуть на уходящий поезд уже мало кому удастся. Фух... Вот так на меня действуют ключевики, сразу чернуха пошла. Значит время на сегодня заканчивать.

Один в поле не воин.

Если бы у меня не было поддержки со стороны близких мне людей, то ничего бы не получилось. Вернее даже бы не началось. И дело даже не в финансовой стороне вопроса(хотя конечно же это важно), а в том чтобы твои идеи и желания находили поддержку у тех кто рядом. Желаю чтобы у всех был такой человек и чтобы вы сами были им для кого-то! У меня было два переломных момента с которыми я в одиночку не справился бы: 1. Когда устав в конец от очередной тяжелой и почти бесплатной работы я сказал, что всегда хотел делать игры и даже пару лет назад изучал 3д макс и баловался в анриале и край энджине, то тут же получил ответ без раздумий “увольняйся и ищи работу в этой сфере”. Вообщем то я и отправил вакансию “хочу быть геймдизайнером без опыта” с последующим трудоустройством. Иначе я бы утонул в вопросах где брать деньги или а как же меня возьмут без опыта и т.п. 2. Когда через три года я хотел уйти с этой работы, чтобы делать свою игру. Мне действительно повезло найти такого человека. Я не хочу писать про личную жизнь и старался сделать это максимально нейтрально, но надеюсь, что у меня удалось выразить свою благодарность.

P.S.

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

{ "author_name": "Adam Jensen", "author_type": "self", "tags": [], "comments": 14, "likes": 37, "favorites": 54, "is_advertisement": false, "subsite_label": "indie", "id": 211952, "is_wide": false, "is_ugc": true, "date": "Thu, 17 Sep 2020 08:38:11 +0300", "is_special": false }
Объявление на DTF
0
14 комментариев
Популярные
По порядку
Написать комментарий...
6

А за моральную поддержку в первую очередь всегда необходимо благодарить своего кота :) он единственный никогда ни в чём не упрекнёт и не осудит )))

Ответить
4

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

Ответить
0

Спасибо. Не выпустил на андроид в основном из-за того, что не хотел работать на Unity.

Ответить
1

Действительно "достойная" игра для мобилы

Ответить
1

Прям крик души. 

Ответить
0

А сколько времени всего ушло от задумки до выпуск в стор?

Ответить
2

Около трех лет

Ответить
0

0_0

Ответить
0

Как же она плохо выглядит..

Ответить
0

Сколько времени заняла реализация и по сколько часов в день корпел над этим? Берем не дни, когда ты учился прогать, а именно дни, когда прогал целенаправленно) 

Ответить
0

Тяжело сказать. Прогать это меньше половины дел. Обычно это больше 10 часов. Проснулся и сел за комп работать и пока не ляжешь спать. Но не всегда получается не отвлекаться. Допустим программирование заняло пол года рабочих дней по 8 часов, еще пол года арт, но это не значит, что сейчас бы у меня ушло столько же времени на такой проект, думаю по меньшей мере делить на три.

Ответить
0

всем бы такие скромные мечты

Ответить
0

Как обычно, обо всём по немногу и ничего по загрузкам\финансам.

Ответить
0

Рискну предположить, что загрузки-финансы поют романсы... 

Ответить

Комментарии

{ "jsPath": "/static/build/dtf.ru/specials/DeliveryCheats/js/all.min.js?v=05.02.2020", "cssPath": "/static/build/dtf.ru/specials/DeliveryCheats/styles/all.min.css?v=05.02.2020", "fontsPath": "https://fonts.googleapis.com/css?family=Roboto+Mono:400,700,700i&subset=cyrillic" }