Лирический пост о разработке мобильной игры

О чём этот пост


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

Предисловие. Краткая история


Разработкой небольших игр для Android я с переменным успехом занимаюсь уже довольно давно.


Самая первая игра была создана мною и моим коллегой ещё во времена студенчества в 2016 году. Именовалась она Universal Race (прямо как песня у Theatre of Tragedy). Это, конечно же, был учебный проект, на котором хотелось приобрести опыт в программировании и в публикации приложений на Google Play.


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

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

После публикации на Google Play, появился и фидбек от пользователей, который дал понять, что самая большая проблема этой игры – отсутствие истории, сюжета. Если взглянуть на игру со стороны игрока: да, есть определённый геймплей - летишь на корабле, уклоняясь от астероидов, окей. Можешь покупать новые корабли, "локации" для полётов. Да, в это можно поиграть некоторое время, но потом задашься вопросом:


Куда летим? Зачем летим?
И правда, не совсем ясно. Действия в игре выглядят довольно абстрактно, игроку никак не объясняется цель игры, никак не раскрывается мир игры. Интерес к ней пропадёт очень быстро.

Вторым нашим проектом стала игра-головоломка. Называлась она Trizzler. Косяком этого проекта стал просто таки ужасный саундтрек. Найденная на бесплатных стоках мелодия из музыкальной шкатулки скорее бы подошла для cutscene какой-то хоррор игры, но явно никак не для этой головоломки. Почему было выбрано именно такое звуковое оформление – не могу сказать, у меня нет ответа.

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Тем не менее, от разработки этой игры остались преимущественно хорошие воспоминания и позитивные эмоции. Подход к разработке этой игры был уже куда более серьёзным, чем в прошлый раз, дизайн экранов множество раз изменялся и дорабатывался (и на то время в моём исполнении это было лучшее, что я мог выдать). Для этой игры (к слову, написанной на libGDX) даже был отдельно создан редактор уровней в Embarcadero RAD Studio (довольно странный инструмент для человека, пишущего на java, не так ли?), который позволял создавать уровни для каждой из 3-х сложностей в игре, и при этом записывать в текстовый файл прохождение (чтобы самому и не забыть).

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

После этого проекта была ещё парочка совсем уж мелких игр. Некоторые из них не доехали до магазина, некоторые напротив. Одна из таких игр – SEQUENCE, – и сейчас находится на просторах Google Play. Игра вышла максимально простая, зато с довольно приятным графическим оформлением (по моему мнению).

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Заострять внимание на этих мини-играх нет смысла, по этому, самое время перейти к последнему моему детищу, которое уехало в прод — After the Crash. Игра представляет собой набор из 3-х головоломок, связанных правилами игры и сюжетом. Первая – игра 3-в-ряд, но с несколько изменённой механикой (двигается целиком весь ряд или столбец). Вторая (и самая интересная, по-моему) – игра, в которой нужно сопоставить символами друг к другу все элементы на доске (реализация этой игры была самой интересной). Третья – классические пятнашки.

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Этот проект в итоге стал одновременно гордостью и разочарованием. Гордостью – потому что это была самая объёмная в плане функционала и потенциального игрового времени игра в моём портфолио. А о разочаровании, пожалуй, стоит расписать более детально.

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


Что же пошло не так?


Во-первых, каждая из 3-х мини-игр очень быстро надоедала. Не было никакого разнообразия в ходе этих игр. Основной причиной этому, как я потом уже понял, было желание побыстрее выпустить релиз (что, на самом деле и не удивительно, на разработку игры ушёл почти год, и это при том, что на тот момент у меня не было постоянной работы, и я в основном уделял 1/2 - 3/4 каждого рабочего дня проекту). Вся графика (за исключением финальной прорисовки персонажа) была сделана мною в Adobe Illustrator, а на это ушло колоссальное количество времени.


Во-вторых, сюжет хоть и присутствовал, но был не до конца проработан. Причина, полагаю, та же, что и в первом пункте.


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


В-четвёртых, не продуманное продвижение игры. Во время разработки аудитория состояла только из 20-30 знакомых, которые просто время от времени запускали у себя альфа билды и что-то комментировали (и то, из этих 20-30 таких было человек 5). После релиза не было предпринято ничего, что помогло бы набрать аудиторию.

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

О новом проекте Cruise stories


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

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

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


Таким образом, на данный момент запланированы такие типы тайлов:


1. Обычный тайл - не успешное открытие обычных тайлов не несет никаких последствий, а успешное открытие пары таких тайлов будет приносить игроку минимальный бонус.

2. Серебряный тайл - при открытии пары таких тайлов, на поле автоматически будет открыта еще одна дополнительная случайная пара тайлов.

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

4. Опасный тайл - если игрок не правильно открывает пару для такого тайла, на поле закрывается одна ранее открытая пара (и далеко не всегда удастся уследить, какая же именно пара закрылась, чтобы тут же открыть её заново).

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

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

7. Чёрный тайл - игроку предоставляется целых 3 попытки открыть пару для такого, но в случае неудачи, игра закроет ранее открытую пару тайлов.

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


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


Кроме того, будет 2 типа игры: discovery и memory. Эти режимы будут чередоваться в процессе прохождения уровней.


Discovery


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

Поощрительная система: направлена на везение, от игрока не зависит. Бонусы за первую открытую пару, за несколько правильно открытых пар подряд. Есть также основное ограничение, влияющее на конечный результат - ограничение по времени. Чем быстрее игрок откроет всё поле, тем больше награду он получит.


Memory


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

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


Помимо всего этого, запланировано два режима: story mode и sandbox.


Как уже стало понятно, в story mode будет небольшая сюжетная линия, а значит - персонажи, диалоги. Мне показалось, что ведя коммуникацию с игроком по средствам диалогов (монологов) персонажей, можно довольно неплохо поднять интерес к игре.


Благодаря наличию сюжета, игру удалось разделить на несколько стейджев (левел паков). Каждый стейдж представляет собой какой-то город из маршрута круизного лайнера и содержит в себе 10 уровней, 1 из которых с типом игры memory, остальные - discovery.

Подготовка


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

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Также, схематически были нарисованы экраны игры в draw.io.

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Большую роль в организации работы на проекте сыграл опыт работы в компании. Приблизительно после того, как я выпустил релиз After the Crash, я устроился Android разработчиком в компанию. За 2,5 года работы в компании у меня накопились некоторые знания о ведении проектов, начиная от подготовки ТЗ, декомпозиции и постановке задач и до коммуникации с участниками команды. Но, тем не менее, одно дело быть разработчиком и созерцать весь процесс организации проекта со стороны, и совершенно другое – делать это самому.


Для ведения проекта (организации задач, отслеживания затраченного времени и так далее) был выбран инструмент Jira. Для небольшой команды (до 10 человек) Jira предлагает бесплатную подписку, которой хватает с головой для ведения небольшого проекта: все основные фичи, включая репорты по трудозатратам, кастомные фильтры для досок есть, а большего и не требуется.

Сам себе дизайнер


Изначально я планировал нанять художника для отрисовки фонов и персонажей. UI же решил осилить самостоятельно. С UI никаких особых трудностей не возникло, опыт работы с Illustrator и PS у меня уже был, и дело оставалось за малым – отрисовать экраны.

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Художники


А вот теперь начинается самая интересная часть этого поста – работа с художниками. Это был (и остаётся) самым сложным этапом разработки этого проекта.


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


Первым вариантом стала одна моя знакомая, которой хотелось в digital (сама она довольно неплохо рисовала на бумаге, но с редакторами опыта было чуть менее чем ноль). Тогда еще (в январе, кажется), особой спешки не было, и я подумал, что можно было бы попробовать. Я приобрёл и одолжил ей простенький Wacom Intuos S, объяснил какие-то основные вещи в PS и SAI, подсказал, где и как искать ответы на свои вопросы в интернете (на самом деле, это самая большая проблема у людей почему-то). Договорились о том, что за месяц у меня будет первый персонаж, хотя бы его прототип (учитывая полное отсутствие опыта, этот срок был как раз вменяемым, так как я не требовал hi-end графики, а это должна была быть обыкновенная простенькая картинка в таком-себе cartoon стиле). Конечно же, мы договорились и о каких-то небольших компенсациях за работу, при чём с разными вариантами: почасовка по трекингу в джире, фиксированные суммы за выполненную работу, фиксированные суммы за месяц. В итоге, это была всё-таки почасовка.


В первый месяц художница задавала много вопросов по PS, по своему ПК в целом (опытным пользователем ПК её не назвать), и в джире собралось всего 30 часов работы за месяц. Результатом был скетч персонажа, готовый не до конца. В следующий месяц работы было ещё меньше, и художница сказала, что в силу своих жизненных вопросов, она не может уделять больше времени рисованию. К сожалению, пришлось прекратить совместную работу.


Следующим вариантом на позицию художника стал мой друг детства. С ним была та же история, что и с первым художником - полный ноль в редакторах, но времени и желания было явно больше. Вопросов по редакторам было намного меньше, учился по урокам с какого-то там курса по Illustrator. Первые работы были откровенно говоря, не очень. Но со временем, я указывал ему на ошибки, он их исправлял, и спустя N недель, начали получаться уже достаточно неплохие результаты. Но, правда, только по фонам. Для отрисовки персонажей всё ещё не хватало скилла. По этому, решили, что он будет рисовать только фоны и иллюстрации для тайлов, а для создания персонажей будем искать другого человека.


Выкинув объявление в Instagram, нашлось 4-5 желающих. У них и портфолио было даже, и вроде неплохие работы. В итоге слились все до единого. При чём, довольно странным методом: некоторые из них согласились поработать, согласились с ценой, и в итоге, прямо в день начала работ говорили, что им уже не интересно, нет времени etc. В конце-концов, нашлась художница, которая сразу же показалась мне ответственным человеком, быстро отвечала на сообщения, вовремя сдала первую (и последующие) работы.


В общем, на поиск и работу с художниками ушло времени больше чем я планировал, раза в 3. А все мои пробы и ошибки на данный момент мне встали в $1K. Такой вот indie.

Заключение


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


Что же, можно было бы еще немного рассказать о проекте, но пост и так уже получается довольно объемным, по этому, если тема интересна – обязательно буду писать ещё посты.


Всем спасибо за внимание!


P.S. Также, всем, кому интересны новости по моим проектам, приглашаю в телеграм канал.

Лига Разработчиков Видеоигр

6.6K поста22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

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

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"