«А почему бы не сделать игру?»
В декабре 2016 года одному из наших разработчиков — Глебу, пришла в голову эта гениальная мысль. Он поделился ей со мной и еще одним нашим товарищем – Димой (все мы были давно и хорошо знакомы). На тот момент мы с Глебом (в дальнейшем программисты) трудились в довольно крупной IT-компании, а Дима (в дальнейшем художник) работал дизайнером где-то на гос. службе. Мы подумали, в самом деле, почему бы и нет? Ведь у нас троих богатейший игровой опыт, уж мы-то точно знаем, как надо.
Собственно, здесь напрашивается вывод №1: «Нельзя просто взять и сделать крутую игру».
Так вот, думать, что если ты всю жизнь гамал, то знаешь, как надо делать игры — это примерно то же самое, что думать: «Раз я всю жизнь ем еду, то я точно знаю, как ее готовить».
В конце 2016 года мы приступили к выбору жанра\сеттинга. Единственное, на чем мы сошлись изначально — мы делаем игру для мобильных платформ. Концептов было придумано много, но в итоге начали делать 2D-платформер про малыша-викинга с мультяшной графикой, как самый адекватный и, на наш взгляд, просто реализуемый.
Наш художник принялся накидывать «скриншоты» игры в фотошопе и экстренно учиться азам анимации.
В качестве движка выбрали Unity3D. Просто так, без каких-либо причин, просто потому, что он был на слуху и имел режим 2D.
Итак, вывод №2: «Любой проведенный вами ресерч лучше, чем его отсутствие»
Чем больше вы узнаете про то, во что вам в дальнейшем придется окунуться, тем более продуктивной окажется ваша деятельность. Серьезно, не поленитесь и потратьте недельку на вдумчивый анализ инструментов разработки. Не лишним будет посмотреть, какие жанры\сеттинги сейчас в тренде, если у вас нет конкретных мыслей на этот счет. Это сэкономит вам нервы, время и ресурсы.
Нам, как программистам, начинающим изучать движок очень помог вот этот туториал.
А вот годные видео по Dragon Bones: раз и два.
Как только мы определились с набором инструментов — приступили к попыткам набросать хотя бы что-то, что будет похоже на игру.
В начале нашей работы, естественно, ни о каком прототипе не шло даже речи, поскольку никто понятия не имел что это и зачем это делать.
И тут уже подоспел вывод №3: «Прототипирование — это круто!»
Чем раньше мы бы поняли, что нужно прототипировать свою игру, тем больше сил и времени мы бы сэкономили. Наличие прототипа помогает сразу увидеть, что нужно менять, а что можно оставить в плане геймплея и позволяет определиться с минимальным набором ресурсов для разработки (механики, анимации, спрайты и т. д.). И самое важное — прототип дает фундамент для разработки, что избавляет тебя от попыток двигаться во все стороны сразу.
По итогу месяца наших трудов по вечерам у нас получилось вот что:
Изначально проект задумывался нами, как платформер с небольшими уровнями-головоломками. Но чем дольше мы работали над проектом, тем меньше нам нравилась эта идея. Мы поняли, что довольно трудно придумать интересные механики для головоломок, да и сами испытания, на деле, оказывались вторичными и скучными. При этом во многом мы вдохновлялись старыми играми вроде Earthworm Jim, старый Аладдин с сеги, Scocer Boy и подобными. Поэтому мы решили уйти в сторону проверенных временем механик и некоторой хардкорности.
До апреля разработка шла в довольно размеренном темпе. 23 апреля мы выложили первый геймплейный трейлер на ютуб, и этот шаг повлиял на нашу работу абсолютно неожиданно. Через пару дней с нами связался один наш знакомый, выразил свою глубокую заинтересованность проектом и сообщил о готовности поддержать нас финансово. Гребаная магия!
Мы на скорую руку обставили офис и принялись работать над игрой уже в другом режиме и более осознанно. Астрологи объявили пятидневную рабочую неделю, естественно прирост экспириенса и ошибок был увеличен вдвое.
Первая проблема, с которой мы столкнулись — нужен был эффективный инструмент для командной разработки, а также какая-то защита от наших кривых рук. Пару недель мы использовали скайп в качестве файлообменника (да, совсем как в том видео) и каждый вечер делали бэкап проекта в отдельной папке чуть ли не руками. Понятно, что долго мы этого выдержать не могли, и скрепя сердце было принято решение учиться настраивать и использовать git применительно к Unity. Все оказалось крайне просто и было освоено и настроено за пару-тройку дней.
Вывод №4: «Как можно раньше начните использовать систему контроля версий»
Даже если вы работаете один. Даже если вы художник, и вам кажется, что это технологии, близкие к инопланетным. Не буду описывать преимущества системы контроля версий в разработке, до меня это делало великое множество действительно авторитетных людей. Скажу лишь, что если бы не git, то мы бы уже умерли во время разработки от нервного и морального истощения.
В мае случилась очень важная поездка на DevGAMM в Москву. Получили новые знания, поучаствовали в шоу-кейсе и собрали фидбэк от людей из индустрии. К этому времени у нас появился еще один художник – Лена. Работа закипела, свежая кровь в команде пошла на пользу, мы смогли улучшить визуальный стиль.
После DevGAMM нас настигло пару довольно серьезных инсайтов.
Вывод №6: «Не варитесь в собственном соку»
Как можно чаще показывайте игру людям на разных этапах разработки. В процессе работы глаз замыливается, мышление костенеет, и в итоге ты перестаешь замечать банальные и очевидные проблемы. Да и в конце концов, игры делаются, чтобы люди в них играли. Было бы неплохо узнать, что думает о продукте конечный пользователь.
Вывод №7: «Нужно думать о том, как на игре зарабатывать и как ее продвигать. И чем раньше, тем лучше»
Конечно, мы думали о том, что игра должна приносить деньги, но это были мысли в стиле «Ну, прикрутим рекламу, сделаем какие-нибудь кристаллы, будем за них продавать что-нибудь. У всех работает, и у нас сработает». Оказалось, что нет. Оказалось, что зарабатывать на игре — это целое искусство, сродни черной магии. Есть масса страшных терминов, вроде ASO, Retention, ARPPU, CPI, eCPM и куча всего еще. И, что самое страшное, все это нужно понимать и уметь применять, чтобы ваша игра стала коммерчески успешной. До поездки на конференцию, мы вообще понятия не имели об этом удивительном и таинственном мире монетизации и продвижении игр.
Собственно, мы снова усилили свою команду еще одним программистом — Мишей, а также проводником в мир маркетинга — Катей. Как такового опыта в сфере геймдева у нее не было, поэтому ей приходилось продираться через весь этот ад с нуля, да еще и в одиночку.
Кстати, вот пара статей, на тот случай, если вы столкнулись со схожими проблемами.
Если не знаете с чего начать продвижение, а денег на него и вовсе нет.
Обсуждение внутриигровой экономики, которое поможет начать разбираться что к чему.
Сейчас мы продолжаем работать над Kidarian Adventures, вышли на стадию beta-тестирования и даже попали в раздел «Early access» в Google Play.
А вообще, самый главный вывод, сделанный нами за год работы — это
Вывод №8 «Разработка игр — это чертовски весело»
Мы всегда готовы к общению и хотим обмениваться опытом. Можем рассказать о скелетной 2D-анимации на бесплатном аналоге Spine (очень постараемся подготовить туториал на эту тему, если вам будет интересно) и об итогах нашего первого Бета-теста.
Комментарии (28)
DmOsinkin
09.10.2017 16:22+1самое главное (имхо для меня, как игрока) не перестараться с монетизацией игры — я так пару игр удалил с телефона — бесили уведомления и предложения с boost-комплектами))
HARDSLIME Автор
09.10.2017 16:29Монетизация — штука важная, но мы стараемся сделать ее не агрессивной, чтобы не ломать геймплей. Главное найти баланс, а это задача не из простых.
Codeminded
09.10.2017 16:54Помню ваш стенд на ДеввГамме, вы, ребята молодцы, что запустили тестовую версию. Всегда важно собирать фидбек.
К тому моменту мне казалось что вы использовали юнитевый collaborate. Или я ошибся?
HARDSLIME Автор
09.10.2017 16:56Спасибо, очень приятно, что нас кто-то запомнил.
Collaborate никогда не использовали. Даже не задумывались про него никогда :)
Prelestnaya
09.10.2017 18:40Боже, года 2 назад я столкнулась с абсолютно теми же проблемами на всех этапах разработки. Читала и вспоминала нашу тимку и первый раннер «на коленках». Только у вас, О ЧУДО, даже был дизайнер :)
Мы, правда, на свой проект забили… А вот вы реальные молодцы! И статья действительно крайне полезна всем начинающим! Удачи с проектом! :)HARDSLIME Автор
10.10.2017 11:52Спасибо за поддержку.
Только у вас, О ЧУДО, даже был дизайнер :)
И о чудо, их теперь даже двое)
Почему забили? Не хватило ресурсов или интерес пропал?
Sergo_1969
11.10.2017 12:13Расскажите пожалуйста о бесплатном аналоге Spine.
Он работает только под Unity — или под другие движки/технологии тоже?
Так-же, исходя из статьи можно сделать вывод что вы не вполне довольны выбором Unity, или, по крайней мере, не считаете его оптимальным — так-ли это?HARDSLIME Автор
11.10.2017 12:28Для анимации мы используем DragonBones — это бесплатный софт для создания скелетной анимации, который почти полностью повторяет инструментал Spine'а. Плюс есть плагин для импорта анимации в Unity и API для того, чтобы управлять анимацией из скриптов. В общем, штука крайне удобная. Еще видел плагины для кокоса и флэша на их репозитории. Мы планируем сделать туториал от нашего художника о том, как создать анимацию в DB и туториал, как эту анимацию потом использовать в Unity. Если вам интересно — дайте знать :)
Нет, Unity мы вполне довольны. В статье мы говорим о том, что выбор был сделан совершенно спонтанно и, возможно, если бы мы провели некий ресёрч на тему 2Д движков, то все могло бы пойти совершенно иначе и, возможно, быстрее и лучше.Sergo_1969
11.10.2017 16:08Спасибо Вам большое за информацию.
Урок(и) об анимации на костях может быть интересен многим — далеко не все девелоперы осознают насколько эффективен данный подход в разработке 2д игр.
Но мне лично — увы не пригодиться — я программер, а художники с которыми я сейчас работаю русским не владеют.HARDSLIME Автор
11.10.2017 18:36У нас в команде, например, художники делают только часть, которая касается анимации. Они рисуют условного персонажа, а затем делают ему набор анимаций. А потом вступают в дело программисты, потому что, как я уже говорил, вся анимация управляется и настраивается исключительно С# скриптами уже в движке.
Так что не зарекайтесь, может и вам будет полезно и интересно :)Sergo_1969
13.10.2017 13:12Насколько я понял — вы пишете конкретно игру — а не абстрактную надстройку над Unity позволяющую конфигурировать широкий ассортимент игр данного жанра. (а-то и нескольких жанров)
В нашей конторе чуть по другому — анимации во всей полноте — удел художников, программист никогда не будет «двигать кости» — в отдельно взятой анимации,
взаимодействиями занимаются конфигураторы (отдельный класс работников) — все под руководством дизайнеров игрового процесса.
А программисты пишут абстрагированный движек, выводя настройки управления наружу, в конфигурационный файл, или в редактор.
Зарекаться однако не стоит — Вы правы :) — кто знает как будет в следующей конторе :)
waxtah
12.10.2017 12:34Молодцы, всё сделали верно :) Ещё хочу поделиться парой советов. Не забывайте делать A/B-тестирование, очень помогает принять решение, какую иконку лучше использовать или какие скрины/описание сделать. У меня был рост установок в 400% за счет смены одной лишь иконки.
И ещё у вас в игре классная палитра, но я бы немного разнес немного задний и передний план (задний сделать более блеклым).
Удачи!HARDSLIME Автор
12.10.2017 12:40Спасибо вам!
Мы проводили A\B-тест скриншотов, используя возможности Google Play Developer Console, но результаты были, честно говоря, весьма сомнительные. Мы 3 недели тестили скрины, все 3 недели конверсия просмотр->установка для обоих видов скринов была примерно равная, по данным консоли. При этом, никакого вердикта нам консоль так и не дала, ссылаясь на недостаток данных. В итоге мы плюнули, заменили скрины на новые, после чего конверсия хоть и не так значительно, но поползла вверх :)
Расскажите, если не секрет, как вы проводили А\В-тест, что для него использовали?waxtah
12.10.2017 18:33Да собственно так же. Использую механизм A\B-теста в консоли разработчика.
snag.gy/J0wcVU.jpg вот пример одного из экспериментов.
Самое главное правило, поскольку это эксперимент — старайтесь делать смелые гипотезы и проверять их. Например поиграть с цветом скриншотов, попробовать сделать снимки, где камера будет близко к персонажу, или наоборот дальше от него. Попробовать поиграть с палитрой снимка. Сделать снимки где персонаж на волоске от смерти. В общем одним словом — эксперимент. :)
Nolex
13.10.2017 13:32Приятный арт, в связке с веселым геймплеем должно зайти.
Непонял к чему фраза про «фичеринг в Google Play» в заголовке. Уточните этот момент. )
afrokick
Очень странно в 2017 не использовать vcs для хоть какого-нибудь проекта. Или в довольно крупной компании тоже через скайп шарили?) Все настройки же только в .gitignore и сериализации ресурсов заключаются.
Можно еще подключить аналитику от юнити(чтобы смотреть что с геймплеем) и креши/ошибки ловить(Performance Reporting, чтобы баги собирать).
А вообще молодцы, удачи с проектом!
HARDSLIME Автор
afrokick спасибо за оценку!
Мы «трудились» в рамках стажировки, опыта не было вообще, так что даже слово .gitignore вызывало трепет :)
Про юнити аналитику думали, но firebase пока выглядит более убедительно. Если у вас есть опыт использования юнити-аналитики, то мы будем очень рады, если вы с нами им поделитесь.
afrokick
Было бы чем делиться) UnityAnalytics как и Performance Reporting практически вшиты в движок, поэтому заводить их проще. Мне нужна была стандартная инфа DAU,session length и инфа по событием а-ля «чел прошел х уровень за у секунд» — хватило.
Штуку типа «источник установок» трекать можно во flurry, вроде бы GA умеет тоже. Это если будете тестить рекламные компании.