ХОБА! Или 6 лет коту под хвост

Часто можно услышать такой совет для начинающих инди-девелоперов: не делай свой Fallout, а начни вхождение в индустрию с маленькой мобильной игры. Эта статья о том, что даже создание такой маленькой мобильной игры может растянуться на годы при неправильном подходе к разработке. В этой статье я постараюсь очень жизненно описать все, с чем пришлось столкнуться на протяжении 6 (шести, Карл!) лет создания одной такой игры: от идеи до полноценного релиза.

Немного о себе

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

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

Мы - стареющая пара веб-программистов (или, как модно говорить - full-stack java developers) и кошка, оба имели хорошо оплачиваемую работу и приличный стаж. Работали удаленно из Череповца (Россия) на забугорную компанию, получали хорошую зарплату и жили, как короли в нашей маленькой уютной деревне.

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

ХОБА! Или 6 лет коту под хвост

Почему игры? В общем-то, тут история как у всех: первая приставка Dendy с любимой игрой Somari, потом старенький комп с Doom и Warcraft, из-за которого пришлось-таки прогуливать школу, и на котором я сделала свою первую игру на паскале - смесь пакмэна и змейки. Ну и конечно же, из-за любви к играм пришлось выучиться на программиста, но из-за увлечения линуксом во время учебы, игры как-то забылись на долгое время, и дальнейшая карьера уже скатилась в веб.

Как появилась идея

Идеи для первой игры не было вообще, и тут я допустила первую классическую ошибку инди-разработчика (на самом деле - вторую, первая ошибка была в том, что я уволилась с работы): не проанализировав рынок мобильных игр, выбрала для разработки первое, что пришло в голову. Так как в тот момент мы уже некоторое время путешествовали по Канаде, я уже успела соскучиться по своей любимой кошечке, и основываясь на этих чувствах, решила, что буду делать какую-нибудь игру о своей кошке.

ХОБА! Или 6 лет коту под хвост

Но с другой стороны, кому как не разработчику-одиночке делать игры о том, что их волнует в первую очередь, а не гнаться за трендами, делая очередной матч3. Так ведь и рождаются шедевры, верно? Верно! Но не всегда. ;)

Более того, на тот момент у меня даже не было девайса ни с Android, ни с iOS, у меня была нокия с Symbian, и вообще тогда мне не нравились мобильные игры, и телефон использовался только для звонков и СМС. Но с чего ��ще начинать инди-разработчику, как не с маленькой мобильной игры, так ведь?

Выбор инструментов

Техническая часть

Выбор движка усложнялся тем, что я все никак не могла определиться, будет ли это 2D или же 3D игра. Единственное, о чем тогда я точно знала - игра будет о котике, который прыгает и что-то ловит. Всё.

​Первый и единственный “прототип” игры в виде гифки.

В итоге, мне приходилось прыгать от одного движка к другому, т.к. каждый движок был ориентирован на что-то одно (либо 2D, либо 3D). И так продолжалось до тех пор, пока я по списку движков не дошла до.. Угадайте что? Да! До Unity, конечно же. На Unity я сразу же создала два проекта - один для 2D, другой для 3D, и немного поигралась с каждым. 2D формат на тот момент показался мне попроще, поэтому решила остановиться на нем.

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

  • Использование системы контроля версий (сначала у нас был Subversion, потом мы перешли на Git) - в какой-то момент умер мой рабочий ноут, и если бы не Git, то пришлось бы попотеть, восстанавливая проект. Так же, благодаря этому, мой муж легко смог присоединится к разработке (а потом отсоединиться..и снова присоединиться.. таки эротика какая-то).
  • Использование нормальной среды разработки, такой как Visual Studio или Visual Studio Code, - где можно нормально настроить и подключить систему контроля версий, настроить hot keys и прочие плюшки, которые ускоряют и упрощают процесс написания кода. Mono Develop в этом плане - абсолютно бессмысленная фигня, не советую слишком долго на нем засиживаться.
  • Система управления проектами - да, звучит дико для маленькой инди-игры, но на самом деле очень сильно помогает не уходить в сторону от поставленного плана и в принципе не забыть, какие на данный момент есть задачи. Например, если, тестируя игру, видишь баг, то лучше сразу его занести в такую систему, чтобы о нем потом не напомнили игроки после релиза. Сначала у нас была Assembla - удобна тем, что можно сразу к ней подключить систему контроля версий и через коммиты управлять задачами. Но для маленького проекта она показалась слишком громоздкой, поэтому перешли на Trello - в нем можно очень быстро создать задачу, и так же легко эту задачу потом переносить куда-то или закрывать. Сразу же там можно создать некий лист TODO перед релизом, например: не забыть убрать тестовые кнопки с уровней перед релизом, не забыть включить продукты и подобная чушь, которая, конечно же, возникает из-за плохой организации проекта.

Прошлый опыт разработки так же мне подпортил малину в самом начале: я пыталась построить архитектуру проекта своей игры на основе тех паттернов, которые используются в веб-проектах, например, MVC. НИКОГДА НЕ ПЫТАЙТЕСЬ ЭТОГО ПОВТОРИТЬ. Много времени мне понадобилось, чтобы понять, что проект игры может быть абсолютно уникальным, и лучше не следует его как-то натягивать на существующие стандарты. Самое простое для начала - просто начать делать игру, и тупо ничего пока не организовывать. А потом уже, в процессе разработки, потихоньку начать формировать свою архитектуру. Это совет для тех, кто делает свою первую игру, конечно же. Мне такого совета очень не хватало первое время. Да и вообще пока не встречала ни одной статьи о том, как правильно создавать архитектуру игровых проектов. Если у кого-нибудь есть ссылочки на подобное, поделитесь, пожалуйста!

Арт

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

Конечно же, каждый инди-девелопер всемогущ и вездесущ.​
Конечно же, каждый инди-девелопер всемогущ и вездесущ.​

Это та ошибка, из-за которой на игру ушло почти 6 лет жизни. Да, действительно, когда-то в детстве я училась в художественной школе, но с этого самого детства и карандаш в руки не брала, зато гонору у меня было, хоть отбавляй.

После нескольких дней скрипа и пыхтений над бумажкой, вот что у меня получилось:

Почти портрет мужа.​
Почти портрет мужа.​

По хорошему, тут нужно было бы остановиться и подумать, где найти художника или как облегчить артовую часть разработки. Может сделать 3D игру из бесплатных ассетов? Или закадрить художника за процент от игры? Но такими вопросами, как правило, задаются взрослые и опытные люди, но никак не великие гении от БОГА, которые все могут САМИ.

По стилю мне хотелось, чтобы было как в французских мультиках и комиксах а-ля "The Rabbi's Cat" от художника Joann Sfar:

Joann Sfar
Joann Sfar

Или как в русских комиксах-мультфильмах-играх "Братья Пилоты":

ХОБА! Или 6 лет коту под хвост

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

Забавно, что во время создания арта я вступила еще на одни инди-грабли. Угадайте, что самое первое я стала рисовать? Да! Главное меню, конечно же! Все так делают! Особенно, когда не умеешь рисовать, то нужно начинать с того места, которое игроки увидят первым и будут видеть его чаще всего! Самый ужасный первый арт в самое видное место. Ну и на главном герое, конечно же, надо учиться рисовать, и первую анимацию тоже делать на нем. В общем, я ничего не перерисовывала впоследствии, так что можно наблюдать весь прогресс обучения рисованию по ходу игры.

По поводу инструментов для рисования добавлю пару слов. У меня был старенький планшет Wacom Graphire 4, который мне подарил гениальный дизайнер-коллега с прошлой работы. Рисовать на нем было не очень удобно из-за весьма скользкой поверхности, но со временем привыкла. Быстрые наброски делала в Photoshop, а финальный арт в векторе в Illustrator. Почему в векторе? Потому что вектор можно легко масштабировать без потери качества и менять цветовую гамму, если вдруг что-то не понравилось - очень удобно!

Музыка

Звуки кошек все настоящие. Половина из них - записи мявков моей любимой кошки-картошки. Она глухая, поэтому очень разговорчивая, и любит поговорить по-громче, как правило. Остальная половина кошачьих звуков и все другие звуки взяты с freesound.org и zapsplat.com. В игре можно открыть окно с информацией об игре, где можно увидеть перечень всех авторов звуков и музыки, которые есть в игре.

Все звуковые эффекты прошли обработку и были так или иначе мной смиксованы в очень клевой программе Audacity (open-source и бесплатная). Как-то я даже купила пакет всяких разных программ для работы со звуком и видео на GOG, перепробовала много всего, но ничего удобнее Audacity так и не нашла.

Особенно хочется сказать про музыку. Основные музыкальные темы были взяты у очень клевого композитора Eric Matyas. Сомневаюсь, что он прочитает эту статью, но все равно большое ему спасибо за такую уникальную музыку!

Как разработка влияла на жизнь, и жизнь на разработку

1-й год

Первый год для меня был простым: я в основном занималась программной частью, изучала особенности разработки на Unity и всякое такое, полола грядки в деревне у родителей, а муж зарабатывал деньги.

2-й год

На второй год муж посмотрел, как я ничего не делаю, захотел так же и внезапно уволился! Второй год моей эпопеи с игрой мы оба сидели без денег и без работы, я занималась игрой (в основном артом), он пилил свой стартап. Помимо этого, в этот год черные семена западной бездуховности дали первые всходы и мы решили иммигрировать - стали собирать документы, продавать все наживное и учить английский для экзамена.

Котю тоже нужно было кормить.​
Котю тоже нужно было кормить.​

3-й год

На третий год мне надоело есть капусту с гречкой и я стала периодически фрилансить, как php программист-верстальщик. Денег это приносило мало, но я смогла себе заработать на кофе с конфеткой. К сожалению, процесс разработки игры на время фриланса приостанавливался. Во вторую половину третьего года мы с мужем поменялись местами, уже он фрилансил, а у меня появилось больше времени на игру. Поэтому, удалось зарелизить бета-версию, в которой была только половина уровней, в Google Play. Кроме того, муж сдавал экзамен по английскому для иммиграции и мы продолжали собирать деньги и документы. Этот год был очень тяжелым как морально, так и физически. Но было несколько забавных моментов:

  • В этот год мы подались на конкурс GTP Indie Cup, ничего не выиграли, никто из жюри в игру не играл, и судили только по видео-ролику. Если бы я знала об этом, то заранее бы сделала хороший ролик. По факту, у нас на этом видео было показано было лишь пару минут геймплея пустого уровня с туториалом. Зато в этом конкурсе от жюри был первый приятный фидбэк о том, что арт похож на Братьев Пилотов.
  • Мы часто слушаем подкаст "Как делают игры" (большое спасибо за подкаст Сергею и Михаилу, подкаст ооочень интересный, но нам он не помог избежать многих ошибок, несмотря на то, что вы часто говорите о подобных ошибках в своих выпусках). На этом подкасте в тот год разыгрывался билет на DevGAMM за лучший вопрос. Мне очень хотелось получить этот билет, и я в последний момент дрожащими ручками и очень нервничая задала свой вопрос. В итоге вопрос ничего не выиграл, но я пролежала всю неделю с больным (видимо от нервов) животом не в состоянии даже выйти из дома.

4-й год

На четвертый год мне, как любой девушке, захотелось маленькое черное платье, и я, ради денег, конфет и шмоток, бросила разработку игры на предпоследнем уровне и нашла очень классную работу как Unity девелопер. Игра, в итоге хоть и недоделанная, помогла мне полностью уйти из веба в разработку на Unity. В этот год мы поменяли квартиру на более маленькую (потому как проели некоторую часть денег для эмиграции и нужно было быстро их восполнить), подали все документы на иммиграцию, и ожидали одобрения от канадских офицеров. В этот год у нас в игре появился постоянный игрок, который прошел все имеющиеся на тот момент уровни и ждал финальную комнату. Каждый месяц он напоминал о себе и говорил, что все еще ждет.. Так продолжалось месяцев 4-5. Но игру я все никак не могла доделать из-за новой работы, которая занимала у меня примерно 12-14 часов в день. В итоге, за весь год по игре ничего не сделано, и мы потеряли нашего постоянного игрока.

Вернись, я все доделалала!​
Вернись, я все доделалала!​

5-й год

В начале пятого года в январе мы запустили рекламную кампанию для игры. У нас игра без последнего уровня как в открытой бете, так и в продакшене. После этой кампании у нас появилось 100 новых пользователей и первые 3$! Ура, жизнь удалась! Также в этот год нам пришло долгожданное разрешение на иммиграцию от иммиграционных офицеров. Я уволилась с работы и продолжила быстро доделывать свою игру. Хотелось ее доделать до переезда в Канаду (конечно же ничего я не доделала). Началась суетная “паковка чемоданов”, распродажа и дарение всего добра, которого итак почти не осталось, и вот это вот все, из-за чего, ну вы понимаете, да? (на игру времени было мало).

Наконец-то в начале лета мы уехали в другую страну, доделали игру и решили ее наконец-таки зарелизить. Но оказалось, что в гугле нельзя так просто взять и поменять адрес (и страну) в аккаунте разработчика. Единственный способ это сделать - создать новый аккаунт разработчика, что нам и пришлось сделать. Далее гугл заблокировал игру на старом аккаунте, чтобы перенести его на новый. Так же с нашей стороны нужно было перенастроить все сервисы, которые были завязаны на старый аккаунт и на старый email. После переноса игры на новый аккаунт, мы немного поправили тексты, скриншоты и иконку для игры, из-за чего гугл начал доолгую (около недели) проверку этих новых текстов и скриншотов и не снял блокировку с игры. Это все мракобесие продолжалось примерно месяц.

Переезжать в другую страну - плохо. По возможности старайтесь избегать этого.​
Переезжать в другую страну - плохо. По возможности старайтесь избегать этого.​

Об игре CatPow

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

Изначально, кстати, ведьма задумывалась принцессой из Марио, к которой он так и не дошел. О чем можно было бы догадаться по различным отсылкам на уровнях игры. Но эту часть ее биографии пришлось оставить у себя в голове.​
Изначально, кстати, ведьма задумывалась принцессой из Марио, к которой он так и не дошел. О чем можно было бы догадаться по различным отсылкам на уровнях игры. Но эту часть ее биографии пришлось оставить у себя в голове.​

Жанр сложно определить: можно сказать, что по простоте освоения основной механики и управлению это casual. С другой стороны, каждый уровень имеет различные тактики прохождения, так что обычным "закликиванием" нельзя добиться успеха везде, нужно выработать некую стратегию, основанную на поведении врагов и расходе собственных ресурсов, и ее придерживаться. Сейчас в Play Market ради эксперимента поставлен жанр action - просто потому, что другие жанры подходят еще меньше. Я для себя определила название жанра как hardcasual = hardcore + casual. :)

Hardcasual.​
Hardcasual.​

Так же в игре есть прокачка персонажей - это немного от rpg, и своя сюжетная линия, как в adventure. Если у вас получилось точно определить жанр сей игры, поделитесь своими мыслями в комментариях, пожалуйста!

В игре конечное и не очень большое количество уровней, поэтому, чтобы увеличить время прохождения, все они (кроме туториала) весьма хардкорные. В каждой новой комнате играть становится сложнее, поэтому, судя по статистике, очень мало людей прошли до последнего уровня.

Изначально балансом сложности занимался мой муж, а он - довольно хардкорный игрок. Затем я проверяла то, что он наделал, и, если с 20го раза не могла пройти - то уменьшала сложность.

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

Покупай консервные банки за пуговицы и прокачивай скилы (как-то по-наркомански это все звучит, однако).​
Покупай консервные банки за пуговицы и прокачивай скилы (как-то по-наркомански это все звучит, однако).​

На скрине видно, что нигде нет текста (кроме кошачьих имен). Игра как бы задумывалась так, что нигде не будет текста вообще, потому что мне лень было делать локализацию. В итоге, пришлось страдать от того, что нужно было как-то в картинках рассказать игроку о происходящем, о кошках, об их навыках и вот этом вот всем. Как это получилось - судите сами. Я бы не рекомендовала повторять это, и сама никогда больше такого делать не буду, только если уж совсем для простых игр. По-моему, гораздо проще сделать локализацию.

Монетизация: в основном, через рекламу. Если игрок проигрывает, то может посмотреть рекламу, после чего получает еще половину энергии и может на ней доиграть уровень. А еще можно купить кота. Но пока никто не покупает, почему-то.

Купи кота..​
Купи кота..​

В игре есть одна фича, на которой мы хотим выехать на окупаемость: Instagram котики. Т.е. есть котик, который на самом деле существует, и у которого есть страничка в Instagram. Пока у нас только один такой котик, он мой и он бесплатный. Мы хотим написать владельцам страничек котов в Instagram и заарканить их подключиться к нашей игре. В игре такие коты будут платные, а их хозяева будут получать % с продаж их кота. И еще будет профит с того, что так или иначе они расскажут о нашей игре на своей странице в Instagram - дополнительная реклама.

Иногда мы пробуем-с различные способы монетизации того, чем занимаемся, и один из таких экспериментов - это создание и продажа мерча через такие магазины, как Redbubble и Society6. Вот пример одного такого:

ХОБА! Или 6 лет коту под хвост

А еще в игре есть финальный мультик. Да! Пройди игру и увидишь финальный мультик, прям как в детстве :’) !

Хотелки

Какой могла бы быть игра, будь у меня 100500 миллионов долларов и еще 6 лет на разработку:

  • Динамические тени. Очень хотелось такой пафосной подсветки снизу и динамических теней на стенах. На втором уровне у меня даже получилось это сделать, используя хитрый шейдер и 3D юнити свет. Так как процесс тестирования был построен так же гениально, как и остальные части разработки: тестировала игру я на топовом телефоне (на тот момент, да и сейчас он еще ничего) Google Nexus - и на нем летало все зашибись. Позапускала еще первый уровень на парочке слабеньких телефонов пенсионеров-родителей, да и решила,что хватит, пожалуй. Очень странная статистика приходила после запуска в открытое бета-тестирование - мало кто из игроков проходил дальше второго уровня. Ну, я подумала, что игра - говно, да и Бог с ней. Так было, пока мой Google Nexus не помер. После этого у меня появился Samsung Galaxy и я продолжила свое основное тестирование на нём. Оказалось, что на втором уровне из-за всех этих динамических теней игра просто вылетает! Год (год, Карл!) игра была с этим багом в открытой бете.. Пришлось эти тени убрать, конечно же. Да и нафик они не нужны, на самом деле, потому что на них все равно никто не обращает внимание в процессе игры (они отрисовывались на стене за основной сценой).
  • Разрушаемые объекты. Основной посыл игры в том, что те кошки, которые ведут активный ночной образ жизни, своей чрезмерной активностью могут порушить некоторые предметы в доме. Многих кошководов это бесит, а игра “извиняет” это поведение кошек тем, что они на самом деле по ночам истребляют зло и защищают своих хозяев. На основе этой идеи хотелось расставить по уровню разрушаемые объекты. Например, кошка, прыгая на вазу, может ее уронить и разбить.
  • Если бы были разрушаемые объекты, то в конце уровня хотелось сделать анимацию или комикс, на котором в комнату заходит бабушка, видит эти разрушения и хватается за голову - и так после каждой комнаты-уровня. В финальном мультике рассказать, что эта бабушка все поняла и простила. Без этого основная идея игры не всем понятна, как мне кажется.

  • Шеринг ачивок или другого доступного контента игроком в соц. Сетях - в Facebook и Instagram. Код уже написан, но нет арта для нужного UI.
  • Больше уровней. Изначально было запланировано очень много уровней: как уровней вокруг дома и у пруда, так и еще столько же уровней, сколько есть сейчас, но в подвале дома с магией и демонами. В этих уровнях хотелось раскрыть больше игровых механик, управления и вот это вот все. Сложность в том, что к каждому уровню придется рисовать целую комнату, а это занимает у меня очень много времени, так как арт дается мне со скрипом.
  • Дополнительные супер-способности и предметы, помогающие пройти уровень. Например, пластиковый пакет, который защищает от эффектов воды, или супер-способность “громогласный мяу”, который уничтожает всех текущих врагов на сцене. Уже почти все это было реализовано в коде, но пришлось убрать.

Какие обновления планируются:

  • Добавить туториал, объясняющий интерфейс основного меню: сейчас очень мало игроков догадываются, что можно нажать на консервные банки и тем самым тратить пуговицы и прокачивать навыки.
  • Немного модернизировать монетизацию: вместо покупки одного кота, покупать пакет, в который входит: кот, отключение рекламы, дополнительная энергия.
  • Перерисовать UI на уровнях - прогрессбар энергии, в первую очередь.
  • Сделать первую сцену с домом и воротами и главное меню, где комнаты, немного поярче, а то сейчас слишком темно.
  • Зарелизиться под iOS.
  • И больше котиков, конечно же!

На этой игре наша эпопея в гейм-индустрии не заканчивается. Сейчас мы доделываем еще одну стратегически-математическую карточную мобильную игру (ищем для нее художника, кстати, за % от продаж). Помимо этого у нас есть вагон и маленькая тележка идей различных игр, начиная с маленьких мобильных, заканчивая огромными мирами triple-A игр. Как-то вот так. Оставайтесь с нами и всем спасибо за внимание! :)

ХОБА! Или 6 лет коту под хвост

Ссылки:

350
140 комментариев