История создания первой игры на Unity — от идеи до релиза
Добрый день! Я — инди-разработчик (с недавнего времени), 2 года назад, будучи пожарным, пришла в голову мысль создать свою игру на Android. Из опыта было только создание карт под игровые движки Gold Source и Source (на них построены старые добрые: Counter-Strike, Half-Life и многое другое), взяв волю в кулак, решил что я обязательно справлюсь и занялся штудированием интернет-поисковика Google.
Надеюсь, данная статься поможет тем, кто очень хочет, но так и не решился испробовать свои силы в разработке мобильных игр. В статье приведу множество ссылок, которые тем или иным образом помогли мне разработать игру, не имея при этом никакого опыта и знаний в данной сфере.
Осторожно, под катом gif-изображения.
Подготовка
Будучи очень далеким от IT-сферы, строго для себя понял, что первым делом нужно изучить основы программирования, чтобы в дальнейшем понять, смогу ли я хоть что-нибудь, или все-таки нет. Решил приобрести книгу по программированию. Критерием выбора было разжеванная теория с большим количеством примеров её применения. Так, первая книга, которая открыла для меня C++ стала: «Объектно-ориентированное программирование в C++, Р. Лафоре». Лично мне в книге понравилось наличие увесистой теории, объясняющей многие непонятные ранее мне термины, но, после заметил, что многие опытные люди были категорически против данной книги как стартовой точки в изучении программирования. Так или иначе, изучив за месяц всю книгу, попутно выполняя некоторые задания в конце каждой главы, словил себя на мысли, что все довольно хорошо получается и пора двигаться дальше.
Следующим пунктом был выбор движка на котором я смог бы с уверенностью начать разработку. Выбор пал несомненно на Unity, благодаря большому сообществу, высокой популярности, обилию огромнейшего количества обучающих статей — по моему мнению, это лучшее, что можно найти на рынке, особенно для инди-разработчика.
Пришлось прикупить ещё одну книгу по программированию: «Справочник C#, Д. Албахари, Б. Албахари» по причине того, что в Unity основной язык — C#. Благо, знания основ C++ помогли с легкостью обуздать основы C# и смело начать изучение непосредственно Unity.
Для себя решил, что лучшим толчком для создания первой игры будет попытка сделать что-то по аналогии уже готового проекта, а не пытаться высматривать тонну отдельных уроков как сделать то, как сделать это. К моему счастью я наткнулся на Survival Shooter tutorial от Unity, в котором по шагам описывается создание Top Down шутера. Это было как раз то, что я и хотел создать. Найдя переозвученные на русском языке уроки (к сожалению сейчас уроки удалены автором по неизвестной мне причине), я начал делать шаг за шагом свою первую игру.
Первая сцена, запущенная на мобильном девайсе, радости тогда не было предела, сейчас же этот скриншот вызывает только умиление.
Собрав свой Survival Shooter по урокам на YouTube, встал вопрос по созданию своего контента, а именно встал вопрос моделирования. Сразу для себя решил — никаких пиратских 3d Studio Max, в следствие чего сразу же наткнулся на Blender. Изучал основы 3д-редактора по данному видео-курсу. Выбор пал именно на видео-курсы, т.к. они позволили очень быстро начать практиковаться, чего довольно сложно добиться, начиная изучение с книги (но несомненно признаю, книги — лучше). Благо, был кое-какой опыт создания карт для Counter-Strike, Half-Life, что позволило с легкостью начать моделировать уже через пару дней.
Теперь, полностью вооружившись инструментами, я начал разрабатывать игру. По сути, первое время я только и делал, что слал запросы «как сделать ту или иную вещь в Unity», так, со временем начал обрастать полезными знаниями.
Не хочу быть похожим на других
Зомби-шутеров нынче тьма тьмущая. Не хотелось быть каким-то клоном. Встал вопрос того, что же можно сделать такого, чего нет у других. Было принято решение добавить в игру возможность остановки времени. Так, игрок мог остановить время, перестрелять зомби и как ни в чем не бывало продолжить свое передвижение.
Проблемой было то, что все это я придумывал на ходу и сразу же брался за реализацию, пропуская этап планирования. Не допускайте моих ошибок, перед тем, как начать разрабатывать игру, заранее продумайте все до мельчайших деталей, не делайте игру наобум. Моей проблемой было отсутствие какого-либо плана, спеки, или же каких-то выделенных этапов разработки. Все делалось в «реалтайм», придумал, что хочу что-то сделать и сразу же пытался это реализовать, наивно полагая, что я уже все учел в своих размышлениях. Подобная методология разработки, а вернее — её полное отсутствие, привели к тому, что игру приходилось множество раз переделывать, отбрасывать старые идеи, добавлять новые возможности к тому, что не особо то и адаптировано для улучшения (похоже на Agile, но нет, это было «отсутствие опыта»). Как результат — игра разрабатывалась почти полтора года.
Костыли, они такие костыли
По причине полного отсутствия навыков программирования, код получился ну очень «костыльным». Сейчас мне просто стыдно, смотря на свою локализацию текста, которая делалась через оператор if -> else, либо же иные вещи, на которые без Facepalm не посмотреть. Вносить какие-ибо изменения было очень трудно, т.к. в коде присутствовало очень много зависимостей, при которых изменение одной строчки могло повлечь к поломке множества других скриптов. Старайтесь описывать скрипты таким способом, чтобы было как можно меньше зависимостей между ними. Очень полезной будет ознакомление с данной статьей на хабре, в которой описываются различные способы взаимодействия скриптов в Unity.
Тестирование
К вопросу тестирования я подошел не столь должным уровнем. Игра релизилась без предварительного бета-тестирования. Я не хочу сказать, что в финальный билд ушло куча багов, отнюдь, проблема была совсем в ином — после релиза посыпалось множество комментариев о том, что игра банально сложная. На YouTube вылилось множество видеороликов, в которых люди попросту не могли пройти первый уровень. Мне казалось, что они играют большим пальцами ног, но тут была лично моя вина. Тестируя продукт на протяжении всего периода разработки, я не заметил, что научился проходить уровни чуть ли не с закрытыми глазами, в результате чего постоянно подбрасывал усложнения, чтобы игра не казалась слишком легкой. По сути, это очень негативно повлияло на первое впечатление об игре и как результат — её последующий провал. Обязательно перед релизом проведите бета-тестирование. На данный момент в Google Play очень просто сделать закрытое или открытое бета-тестирование. Даже банально перед релизом дайте человеку поиграть некоторое время, чтобы в дальнейшем избежать проблем с играбельностью и сложностью продукта. Для себя строго решил, что игра на начальном этапе должна быть очень легкой, чтобы не отпугнуть игроков.
Монетизация
Выбрав неверную монетизацию: бесплатная урезанная + полная платная я загубил игру считай на корню. Причиной выбора столь устарелой связки было отсутствие опыта, т.к. я банально не знал как встроить рекламу в продукт, как реализовать внутриигровые покупки и как результат, решил пойти по пути наименьшего сопротивления, которое не требовало от меня каких-либо технический знаний. Для себя стойко решил, что на данный момент это худшее, с чего стоило начать. Считаю лучшим вариантом: бесплатная с внутриигровыми покупками и мотивированной рекламой, но здесь опять-таки очень важен баланс между назойливой рекламой и невозможностью пройти уровни без вложений.
Музыка, звуки
Немаловажную роль играет звуковое сопровождение. Большинство звуков и музыки для игры я покупал на audiomicro.com, о чем сейчас немного сожалею в силу дороговизны. На данный момент я бы рекомендовал следующие ресурсы:
— diforb.com. Великолепен для озвучки игрового меню. Выбрав необходимый сет, вы с легкостью сможете создать звуки нажатия, перелистывания и применения различных опций. Пользоваться можно бесплатно, все что от вас требуется — указать ссылку на ресурс где-нибудь в игре.
— freesfx.co.uk. Хороший бесплатный ресурс различных звуков. Благодаря удобному поиску можно с легкостью найти звуки выстрелов, перезарядки и многое другое. Как и с предыдущим, пользоваться можно бесплатно, только не забудьте указать ссылку на ресурс в игре.
— melodyloops.com. Очень хороший ресурс музыки. Платный, но по сравнению с другими, треки здесь очень дешевые. Я смог приобрести 25 композиций за 130$, получив лицензию на неограниченное количество копий. Очень удобный поиск, выбрав понравившийся трек, вы можете отфильтровать список похожих, что поможет Вам очень быстро найти нужные Вам композиции.
Раскрутка
Подобравшись к завершающей стадии разработки, встал вопрос в рекламе игры. Никаких ресурсов на платную раскрутку у меня не было, поэтому выбор пал сугубо на бесплатные методы. Благо, информации по этому поводу достаточно много, приведу некоторые ссылки на статьи с Хабра, которые помогли мне в решении данного вопроса: раз, два. В основном я писал на различных форумах, посвященным играм на андроид, что в конечном итоге дало следующие цифры:
Бесплатная версия игры за период июнь 2016 — январь 2017
— По внешним ссылкам: 1 353 просмотров / 478 установок
— Play Market: 9 674 просмотров / 1 457 установок
— Всего: 11 065 просмотров / 2 101 установок
Платная версии игры за период июнь 2016 — январь 2017
— По внешним ссылкам: 1 919 просмотров / 15 установок
— Play Market: 46 432 просмотров / 214 установок
— Всего: 48 457 просмотров / 246 установок
Как видим, платная версия игры имеет очень большое количество просмотров, это связано с тем, что попасть в новинки платных приложений гораздо легче, чем бесплатных, достаточно 5-10 покупок и игра уже будет занимать сотые позиции, что дает приток просмотров в Google Play. Была надежда, что пользователи будут переходить со страницы платной версии игры на бесплатную, чтобы предварительно проверить что из себя представляет игра, но, к сожалению, как мы можем видеть по статистике, просмотров бесплатной версии гораздо меньше, чем платной.
Релиз
Релиз оказался плачевным, вполне играбельная для меня игра, оказалась нереально сложная для других. Из-за игнорирования бета-тестирования на реальных игроках, пришлось очень не сладко после релиза. Полностью была переделана система управления. Изначально игрок автоматически стрелял при наведении взгляда на врага, что полностью убивало ощущение стрельбы. Игроки порой не понимали, как тут стрелять?! Поэтому было принято решение полностью переделать управление на новый лад. В новой версии автоматическая стрельба была заменена на ручную, что гораздо приукрасила игровой процесс.
Как я уже говорил, ещё одним камнем была сложность. Пришлось переделывать огромный кусок игры, внедряя легкую, среднюю и тяжелую уровни сложности, чтобы угодить как можно большему количеству игроков.
В конечном итоге — я упустил свой шанс более-менее раскрутиться за первые 30 дней, когда игра находилась в «Новинках». Люди просто покупали и возвращали платежи в силу неиграбельности и высокого уровня сложности. Только после множества апдейтов количество возвратов резко сократилось, но было уже поздно, на 31-й день игра пропала с новинок и как результат — количество просмотров, как и собственно скачек камнем рухнуло вниз. Но, самое главное — я смог получить бесценный опыт, пройдя от этапа идеи и закончив это дело суровым релизом, что несомненно радует. Теперь, имея весь этот опыт, уже с большей уверенностью занимаюсь разработкой второй игры, о результатах которой планирую написать уже после релиза. Спасибо и удачи Вам в начинаниях!