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


«А почему бы не сделать игру?»

В декабре 2016 года одному из наших разработчиков — Глебу, пришла в голову эта гениальная мысль. Он поделился ей со мной и еще одним нашим товарищем – Димой (все мы были давно и хорошо знакомы). На тот момент мы с Глебом (в дальнейшем программисты) трудились в довольно крупной IT-компании, а Дима (в дальнейшем художник) работал дизайнером где-то на гос. службе. Мы подумали, в самом деле, почему бы и нет? Ведь у нас троих богатейший игровой опыт, уж мы-то точно знаем, как надо.

Собственно, здесь напрашивается вывод №1: «Нельзя просто взять и сделать крутую игру».


Так вот, думать, что если ты всю жизнь гамал, то знаешь, как надо делать игры — это примерно то же самое, что думать: «Раз я всю жизнь ем еду, то я точно знаю, как ее готовить».

В конце 2016 года мы приступили к выбору жанра\сеттинга. Единственное, на чем мы сошлись изначально — мы делаем игру для мобильных платформ. Концептов было придумано много, но в итоге начали делать 2D-платформер про малыша-викинга с мультяшной графикой, как самый адекватный и, на наш взгляд, просто реализуемый.

Наш художник принялся накидывать «скриншоты» игры в фотошопе и экстренно учиться азам анимации.







В качестве движка выбрали Unity3D. Просто так, без каких-либо причин, просто потому, что он был на слуху и имел режим 2D.

Итак, вывод №2: «Любой проведенный вами ресерч лучше, чем его отсутствие»

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

Нам, как программистам, начинающим изучать движок очень помог вот этот туториал.
А вот годные видео по Dragon Bones: раз и два.

Как только мы определились с набором инструментов — приступили к попыткам набросать хотя бы что-то, что будет похоже на игру.

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

И тут уже подоспел вывод №3: «Прототипирование — это круто!»

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

По итогу месяца наших трудов по вечерам у нас получилось вот что:



Изначально проект задумывался нами, как платформер с небольшими уровнями-головоломками. Но чем дольше мы работали над проектом, тем меньше нам нравилась эта идея. Мы поняли, что довольно трудно придумать интересные механики для головоломок, да и сами испытания, на деле, оказывались вторичными и скучными. При этом во многом мы вдохновлялись старыми играми вроде Earthworm Jim, старый Аладдин с сеги, Scocer Boy и подобными. Поэтому мы решили уйти в сторону проверенных временем механик и некоторой хардкорности.



До апреля разработка шла в довольно размеренном темпе. 23 апреля мы выложили первый геймплейный трейлер на ютуб, и этот шаг повлиял на нашу работу абсолютно неожиданно. Через пару дней с нами связался один наш знакомый, выразил свою глубокую заинтересованность проектом и сообщил о готовности поддержать нас финансово. Гребаная магия!

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

Первая проблема, с которой мы столкнулись — нужен был эффективный инструмент для командной разработки, а также какая-то защита от наших кривых рук. Пару недель мы использовали скайп в качестве файлообменника (да, совсем как в том видео) и каждый вечер делали бэкап проекта в отдельной папке чуть ли не руками. Понятно, что долго мы этого выдержать не могли, и скрепя сердце было принято решение учиться настраивать и использовать git применительно к Unity. Все оказалось крайне просто и было освоено и настроено за пару-тройку дней.

Вывод №4: «Как можно раньше начните использовать систему контроля версий»

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



В мае случилась очень важная поездка на DevGAMM в Москву. Получили новые знания, поучаствовали в шоу-кейсе и собрали фидбэк от людей из индустрии. К этому времени у нас появился еще один художник – Лена. Работа закипела, свежая кровь в команде пошла на пользу, мы смогли улучшить визуальный стиль.





После DevGAMM нас настигло пару довольно серьезных инсайтов.

Вывод №6: «Не варитесь в собственном соку»

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

Вывод №7: «Нужно думать о том, как на игре зарабатывать и как ее продвигать. И чем раньше, тем лучше»

image

Конечно, мы думали о том, что игра должна приносить деньги, но это были мысли в стиле «Ну, прикрутим рекламу, сделаем какие-нибудь кристаллы, будем за них продавать что-нибудь. У всех работает, и у нас сработает». Оказалось, что нет. Оказалось, что зарабатывать на игре — это целое искусство, сродни черной магии. Есть масса страшных терминов, вроде ASO, Retention, ARPPU, CPI, eCPM и куча всего еще. И, что самое страшное, все это нужно понимать и уметь применять, чтобы ваша игра стала коммерчески успешной. До поездки на конференцию, мы вообще понятия не имели об этом удивительном и таинственном мире монетизации и продвижении игр.

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

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

Сейчас мы продолжаем работать над Kidarian Adventures, вышли на стадию beta-тестирования и даже попали в раздел «Early access» в Google Play.

А вообще, самый главный вывод, сделанный нами за год работы — это

Вывод №8 «Разработка игр — это чертовски весело»

Мы всегда готовы к общению и хотим обмениваться опытом. Можем рассказать о скелетной 2D-анимации на бесплатном аналоге Spine (очень постараемся подготовить туториал на эту тему, если вам будет интересно) и об итогах нашего первого Бета-теста.

Комментарии (28)


  1. afrokick
    09.10.2017 16:21

    мы с Глебом трудились в довольно крупной IT-компании

    Пару недель мы использовали скайп в качестве файлообменника и каждый вечер делали бэкап проекта в отдельной папке чуть ли не руками.


    Очень странно в 2017 не использовать vcs для хоть какого-нибудь проекта. Или в довольно крупной компании тоже через скайп шарили?) Все настройки же только в .gitignore и сериализации ресурсов заключаются.

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

    А вообще молодцы, удачи с проектом!


    1. HARDSLIME Автор
      09.10.2017 16:35

      afrokick спасибо за оценку!

      Мы «трудились» в рамках стажировки, опыта не было вообще, так что даже слово .gitignore вызывало трепет :)

      Про юнити аналитику думали, но firebase пока выглядит более убедительно. Если у вас есть опыт использования юнити-аналитики, то мы будем очень рады, если вы с нами им поделитесь.


      1. afrokick
        09.10.2017 16:42

        Было бы чем делиться) UnityAnalytics как и Performance Reporting практически вшиты в движок, поэтому заводить их проще. Мне нужна была стандартная инфа DAU,session length и инфа по событием а-ля «чел прошел х уровень за у секунд» — хватило.

        Штуку типа «источник установок» трекать можно во flurry, вроде бы GA умеет тоже. Это если будете тестить рекламные компании.


  1. DmOsinkin
    09.10.2017 16:22
    +1

    самое главное (имхо для меня, как игрока) не перестараться с монетизацией игры — я так пару игр удалил с телефона — бесили уведомления и предложения с boost-комплектами))


    1. HARDSLIME Автор
      09.10.2017 16:29

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


  1. Fearen
    09.10.2017 16:37

    </зануда Mode on> Шлем с рогами у викинга? Ещё надо топор двусторонний добавте!


    1. HARDSLIME Автор
      09.10.2017 16:44
      +1

      ЛОЛ. Он у нас есть)

      image


  1. pav2804
    09.10.2017 16:39
    -3

    Ребята, вы на винде игру делали или обязательно ставить убунту?


    1. HARDSLIME Автор
      09.10.2017 16:44

      Мы делали игру на Unity3D. Ставится Unity с равным успехом и на Windows, и на Ubuntu.


  1. Codeminded
    09.10.2017 16:54

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


    К тому моменту мне казалось что вы использовали юнитевый collaborate. Или я ошибся?


    1. HARDSLIME Автор
      09.10.2017 16:56

      Спасибо, очень приятно, что нас кто-то запомнил.

      Collaborate никогда не использовали. Даже не задумывались про него никогда :)


  1. Stochkas
    09.10.2017 17:14

    а мне понравилось.


  1. varton86
    09.10.2017 17:22

    «Кстати, вот пара статей ...»

    А где статьи?


    1. HARDSLIME Автор
      09.10.2017 17:23

      Ссылка съехала. Спасибо, что обратили внимание. А так там статья и видео.


      1. varton86
        09.10.2017 17:56

        thx


  1. Feelnside
    09.10.2017 18:10

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


    1. HARDSLIME Автор
      10.10.2017 11:47

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


  1. Prelestnaya
    09.10.2017 18:40

    Боже, года 2 назад я столкнулась с абсолютно теми же проблемами на всех этапах разработки. Читала и вспоминала нашу тимку и первый раннер «на коленках». Только у вас, О ЧУДО, даже был дизайнер :)

    Мы, правда, на свой проект забили… А вот вы реальные молодцы! И статья действительно крайне полезна всем начинающим! Удачи с проектом! :)


    1. HARDSLIME Автор
      10.10.2017 11:52

      Спасибо за поддержку.

      Только у вас, О ЧУДО, даже был дизайнер :)
      И о чудо, их теперь даже двое)

      Почему забили? Не хватило ресурсов или интерес пропал?


  1. Sergo_1969
    11.10.2017 12:13

    Расскажите пожалуйста о бесплатном аналоге Spine.
    Он работает только под Unity — или под другие движки/технологии тоже?

    Так-же, исходя из статьи можно сделать вывод что вы не вполне довольны выбором Unity, или, по крайней мере, не считаете его оптимальным — так-ли это?


    1. HARDSLIME Автор
      11.10.2017 12:28

      Для анимации мы используем DragonBones — это бесплатный софт для создания скелетной анимации, который почти полностью повторяет инструментал Spine'а. Плюс есть плагин для импорта анимации в Unity и API для того, чтобы управлять анимацией из скриптов. В общем, штука крайне удобная. Еще видел плагины для кокоса и флэша на их репозитории. Мы планируем сделать туториал от нашего художника о том, как создать анимацию в DB и туториал, как эту анимацию потом использовать в Unity. Если вам интересно — дайте знать :)

      Нет, Unity мы вполне довольны. В статье мы говорим о том, что выбор был сделан совершенно спонтанно и, возможно, если бы мы провели некий ресёрч на тему 2Д движков, то все могло бы пойти совершенно иначе и, возможно, быстрее и лучше.


      1. Sergo_1969
        11.10.2017 16:08

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


        1. HARDSLIME Автор
          11.10.2017 18:36

          У нас в команде, например, художники делают только часть, которая касается анимации. Они рисуют условного персонажа, а затем делают ему набор анимаций. А потом вступают в дело программисты, потому что, как я уже говорил, вся анимация управляется и настраивается исключительно С# скриптами уже в движке.
          Так что не зарекайтесь, может и вам будет полезно и интересно :)


          1. Sergo_1969
            13.10.2017 13:12

            Насколько я понял — вы пишете конкретно игру — а не абстрактную надстройку над Unity позволяющую конфигурировать широкий ассортимент игр данного жанра. (а-то и нескольких жанров)
            В нашей конторе чуть по другому — анимации во всей полноте — удел художников, программист никогда не будет «двигать кости» — в отдельно взятой анимации,
            взаимодействиями занимаются конфигураторы (отдельный класс работников) — все под руководством дизайнеров игрового процесса.
            А программисты пишут абстрагированный движек, выводя настройки управления наружу, в конфигурационный файл, или в редактор.
            Зарекаться однако не стоит — Вы правы :) — кто знает как будет в следующей конторе :)


  1. waxtah
    12.10.2017 12:34

    Молодцы, всё сделали верно :) Ещё хочу поделиться парой советов. Не забывайте делать A/B-тестирование, очень помогает принять решение, какую иконку лучше использовать или какие скрины/описание сделать. У меня был рост установок в 400% за счет смены одной лишь иконки.
    И ещё у вас в игре классная палитра, но я бы немного разнес немного задний и передний план (задний сделать более блеклым).

    Удачи!


    1. HARDSLIME Автор
      12.10.2017 12:40

      Спасибо вам!

      Мы проводили A\B-тест скриншотов, используя возможности Google Play Developer Console, но результаты были, честно говоря, весьма сомнительные. Мы 3 недели тестили скрины, все 3 недели конверсия просмотр->установка для обоих видов скринов была примерно равная, по данным консоли. При этом, никакого вердикта нам консоль так и не дала, ссылаясь на недостаток данных. В итоге мы плюнули, заменили скрины на новые, после чего конверсия хоть и не так значительно, но поползла вверх :)

      Расскажите, если не секрет, как вы проводили А\В-тест, что для него использовали?


      1. waxtah
        12.10.2017 18:33

        Да собственно так же. Использую механизм A\B-теста в консоли разработчика.
        snag.gy/J0wcVU.jpg вот пример одного из экспериментов.

        Самое главное правило, поскольку это эксперимент — старайтесь делать смелые гипотезы и проверять их. Например поиграть с цветом скриншотов, попробовать сделать снимки, где камера будет близко к персонажу, или наоборот дальше от него. Попробовать поиграть с палитрой снимка. Сделать снимки где персонаж на волоске от смерти. В общем одним словом — эксперимент. :)


  1. Nolex
    13.10.2017 13:32

    Приятный арт, в связке с веселым геймплеем должно зайти.

    Непонял к чему фраза про «фичеринг в Google Play» в заголовке. Уточните этот момент. )