Моя история начинается, как в «Алисе в стране чудес» – со сна. Мне приснился сон, в котором я играю в новую мобильную игру – необычную, с незаезженной механикой. Сон был яркий и приятный. Проснувшись, я сразу кинулся за карандашом и бумагой, и еще толком не придя в себя, находясь под впечатлением увиденного, стал рисовать.

«– А что это за звуки, вон там? – спросила Алиса, кивнув на весьма укромные заросли какой-то симпатичной растительности на краю сада.
– А это чудеса, – равнодушно пояснил Чеширский Кот.
– И… И что же они там делают? – поинтересовалась девочка, неминуемо краснея.
– Как и положено, – Кот зевнул. – Случаются...»

Да-да, не ухмыляйтесь! Это не для красного словца – так все и было! Свидетель тому – моя дочь Катя, которой я сразу рассказал свой сон. Ей идея понравилась, и я тут же приступил к работе. Конечно, позавтракали сначала.

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

«То ли колодец был действительно уж очень глубоким, то ли летела Алиса уж очень не спеша.»

Меня зовут Виталий. Я программист, художник, гейм-дизайнер. Свою первую игру совместно с товарищем выпустил, будучи студентом, в далеком 1998-м году под ZX-Spectrum – текстовую адвентюру «Зеркало». Но далее всё творчество было на заказ: бесконечные флеш-сайты, флеш-игры, прикладные программы. Безусловно, интересно, и душу вкладывал, но не своё.

Мораль первая: Если вы не строите свою мечту, кто-нибудь обязательно наймет вас строить свою (заезженный демотиватор, не правда ли).

В прошлом, 2014-м году решился-таки уйти «на вольные хлеба». Уволился с постоянного места работы, сделал демонстрационный макет игры, весной свозил его на DevGamm Moscow’2014. Окрыленный, целое лето углублялся в изучение Unity, делал рабочую демо-версию. Всё это на личные сбережения.

Результат – техническая демка игры «Богатыри». Жанр: «стенка на стенку». Ближайший аналог по механике – «CastleStorm». Кстати, и тут не обошлось без мистики: особенности своей игры я самостоятельно придумал осенью 2013-го года, а буквально через месяц вышел «CastleStorm», в котором была реализована минимум половина моих идей. С тех пор я безоговорочно верю в теорию единого информационного поля.

Настала осень, и вместе с ней пора разочарований. Сколько я не пытался найти спонсора на игру – всё безрезультатно. Много анализировал, читал полезные статьи (и на Хабре в том числе). Пришёл к выводу, что надо упростить проект: не браться за сильно сложные механики, трезво оценить свои возможности и сделать то, что можно реализовать малыми силами. Летний проект отложил в долгий ящик и начал новый, более простой. Но деньги закончились – пришлось опять искать постоянную работу.

Мораль вторая: Никогда! Повторюсь, никогда не опускайте руки на пути к своей мечте!

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

Прошла весна, а 1-го июня, накануне своего дня рождения, я проснулся и сразу кинулся за карандашом и бумагой.

Вот так все и произошло, да.

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

«– С чего начинать, Ваше Величество? – спросил он.
– Начни с начала, – важно ответил Король, – продолжай, пока не дойдешь до конца. Как дойдешь – кончай!»

Вот, что я записал, проснувшись: «Закончить рисунок в закрытых клетках, основываясь на уже открытых частях по принципу симметрии (осевой, радиальной)».

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

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

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

Весь второй месяц (июль) потратил на производство четырехсот девяноста уровней. Для автоматизации процесса был написан редактор уровней на AIR. Рисунки придумывали всей командой: и музыкант, и дочка были задействованы в процессе. Оказывается, не такое уж это и простое дело – придумать столько заданий!

Первые две недели августа – последние правки игры и публикация в плеймаркете. Как обычно, перед самым последним шагом находилось миллион причин, по которым «надо» было откладывать публикацию проекта: то сайт недоделан, то видео еще нет, то еще 999 998 причин. Но я сказал себе: «Хватит! Пора поставить точку!», и твердой рукой нажал «Отправить на публикацию». Всё остальное – после сбора фидбека и с обновлениями.

image

Итого – 2,5 месяца разработки. В свободное от основной работы время. За этот период было много ложных путей, избежав которые, можно было бы сократить время производства до, наверное, одного месяца. Но, по всей видимости, эти пути надо было пройти. Из них: сомнения в правильности выбранной платформы разработки, попытка перейти с Unity на AS3 (закончилась проигрышем по тестам AS3 и возвратом на Unity); создание больших уровней (3х3, 4х4), которые оказались не эффективными на телефонах; огромное количество «суперских» идей, реализовав которые мы бы получили идеальную игру, и так далее.

Мораль третья: Не бездействуйте, не мечтайте впустую, не отвлекайтесь на мелочи. Работайте, работайте и еще раз работайте для достижения своей цели.

Вот, в принципе, и всё, что я хотел вам рассказать.

«Почему это некоторые так любят всюду искать мораль?»

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

О каком-либо успехе игры говорить еще очень рано – публикации в плеймаркете только 2 дня. Но гордость за готовый продукт уже есть – а это не мало. А еще гордость у друзей, и главное – у дочки. То-то популярность будет, когда в школу пойдет!

Такой вот путь игры: от проб и ошибок, через сон к четкой формулировке цели и реализации.

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


  1. maaGames
    26.08.2015 20:08
    +3

    > Такой вот путь игры
    Это не путь. Это только начало. Самое-самое начало.
    Узнал это на своём опыте.)
    Хотя, придумать и реализовать игру — самое приятное. А потом унылый и не интересный для разработчика маркетинг и продвижение, на котором и «умирают» 99% инди игр.


    1. stepanoffvitaly
      26.08.2015 20:37

      Вы правы про самое начало. Прошла неделя с момента выпуска игры, а я уже проделал кучу работы: опубликовал статьи на нескольких ресурсах, поучаствовал в ТОП-10, разместил игры в нескольких сторах, по первым отзывам выпустил обновление. Огромное количество планов по дальнейшему развитию проекта на ближайшее будущее.
      Но знаете, мне это начинает чертовски нравиться! В этом есть свой интерес, даже какой-то азарт. Написать игру — одно удовольствие, а раскрутить — другое.
      Так что, я постараюсь не останавливаться. Пока результат скромен: считаю первые сотни скачавших, но зато честные сотни — не накрученные. И отзывы радуют.


      1. maaGames
        26.08.2015 20:41

        Пары сотен установок в первую неделю достаточно для попадания Топ500 новинок в категории. Для общего Топа не хватит, конечно. Но раз без накрутки сразу сотни набрались, то и тысячи не за горами.) Удачи!


        1. stepanoffvitaly
          26.08.2015 20:42

          Спасибо! Вы вселяете надежду!


          1. maaGames
            26.08.2015 20:55

            Чичас заберу надежду обратно! Профит будет только от Топ50 и выше. У меня получалось забираться до 145 места, но это не привело к сколь либо заметному росту числа установок. Т.е. нужно быть хотя бы на первом экране в своей категории. В идеале, на первом экране общего Топа. Но у меня игра была очень специфичная и я вообще не ждал, что её будут ставить. Но у вас вроде по казуальней игра (в хорошем смысле этого слова), так что если и не выстрелит, то должна в Топ100 подняться точно. В пазлах пробиться проще, чем в аркадах, например.


            1. stepanoffvitaly
              26.08.2015 21:03

              Ага! Ну, как говориться, цель вижу — в себя верю!
              А надежду не заберете. Это ж свое детище — с ним теперь по жизни. И растить, и отвечать за него.


  1. beaverBox
    26.08.2015 21:23

    А название у игры есть? Или где качать?


    1. stepanoffvitaly
      26.08.2015 21:32

      Игра называется Draw Tile. Если позволяет формат Хабра, то вот:
      play.google.com/store/apps/details?id=com.artworkgames.DrawTile


      1. cruzo
        27.08.2015 09:47

        Поддержу Вас и обязательно скачаю. Успехов Вам и дочке ;)


        1. stepanoffvitaly
          27.08.2015 11:54

          Спасибо!


  1. TheRabbitFlash
    26.08.2015 22:04
    -1

    Товарищ правильно заметил в чатике:

    «интересно по каким это тестам АС3 проиграла юнити в игре ПАЗЛ?»

    От себя спрошу. Может быть ровности рук недостаточно? Есть в десятки раз сложнее игры, где проблем на as3 нет. А тут всего-лишь пазл и уже какие-то сложности. Уверен, что там и на swift с Sprite Kit были бы трудности.


    1. stepanoffvitaly
      26.08.2015 22:10

      Не могу претендовать на 100% достоверность полученных данных. Скорее, это мое субъективное мнение. Я обратил внимание на то, что получить 60 кадров на AS3 более энергозатратно для телефона, чем получить тоже самое на Unity. Очень хотелось сохранить плавность, поэтому остановил дальнейший перенос кода на AS3 и вернулся на Unity.
      Хотя, подозреваю, что на AS3 дописать все равно придется для вКонтакта. Уж очень плохо Unity-игру ставят во вКонтакте.
      Еще раз повторюсь: я не глубоко в техническом плане анализировал оба подхода.


      1. TheRabbitFlash
        26.08.2015 22:32
        +2

        1) Исходя из статья — понял, что у Вас все попытки на AS3 были ограничены Software режимом рендеринга. Фишка в том, что Unity3D так не умеет. Но Вы зачем-то сравнивали мокрое с мягким. А вот Flash и Adobe AIR умеет как Software, так и Hardware. И чтоб получать нужный результат — необходимо буквально понимать, что, где и как применять. Без базовых знаний в области работы GPU — у Вас и С++ будет «хуже, чем Unity3D». То, что у Вас и вышло с AS3, на самом деле.

        2) Для игры достаточно было использовать Starling — самый популярный 2D framework для работы с GPU на Flash и Adobe AIR. Пусть старлинг не самый шустрый в своей категории (средний среди самых быстрых), но он максимально полно повторяет привычный флешовый Display List и идеально подходит для создания 2D приложений и игр. И на нем так много игр с 60 фпс, что я даже поленюсь кидать сюда этот список зафичеренных игр на AIR в Apple AppStore, например.

        3) Получить 60 fps на Flash & Adobe AIR не просто можно, а очень легко. Включая старые девайсы типа iPhone 3GS. Просто надо знать чем отличается software рендеринг от hardware и не пытаться требовать от software того, что надо делать на hardware.

        Кстати, игра интересная у Вас. Но она чудесно без лагов пошла бы и на HTML5 даже без WebGL. Просто надо понимать, что делаете. А не «тяп-ляп и в продакшен».

        Приношу извинения, если мое сообщение показалось резким. Но другие уважаемые читатели хабра должны понимать ситуацию не однобоко. А то так глядите и Unity3D у Вас овном окажется через время, если Вы не поймете, что такое Draw Call, текстуры в степени 2йки и npot, атласы, батчинг и прочие штуки…

        Мира Вам!


        1. stepanoffvitaly
          26.08.2015 22:38

          Нет-нет, никаких извинений! Спасибо за детальный ответ!
          Эта информация и мне будет крайне полезна. Да, по всей видимости, я ограничился Software режимом рендеринга на AS3. Значит, мои познания в AS3 еще стоит серьезно повышать.


          1. TheRabbitFlash
            26.08.2015 22:51
            +2

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

            Я утвердительно могу сказать, что Unity3D очень крутой и еще раз крутой. В ряде штук он подошел бы идеально для конкретных проектов. Некоторые задачи на нем тоже решаем. Но стоит понимать, какое блюдо необходимо кушать ложкой, а какое вилкой. И обижаться на суп не надо, если он сквозь вилку просачивается :) Поэтому, для этой игры, я бы выбрал исключительно Adobe AIR и Starling для рендеринга. Так же опубликовал бы во вконтакте в виде Flash приложения «в один клик». Режим direct во вконтактике есть.

            И еще — всем, кто решается куда двигаться с Adobe AIR в плане производительности — дам 2 своих любимых совета:
            1) всегда проверяйте актуальность версий SDK. На сегодня это 18.0.0.199 в релизе и 19.0.0.183 бете от 26 августа 2015
            2) используйте Adobe Scout для профилирования производительности.

            Успешных проектов Вам, stepanoffvitaly!


            1. stepanoffvitaly
              26.08.2015 22:53

              Спасибо!


  1. gshep
    27.08.2015 08:44

    Простите меня конечно, но я не понял, как в неё играть =)

    Может быть есть видео игрового процесса?


    1. stepanoffvitaly
      27.08.2015 11:58

      Видео готовлю. Это очень важный момент.

      К описанию в плеймаркете добавлю:
      Смотрите на принцип симметрии для текущего эпизода — например, вертикальная осевая. Это значит, что рисунок в закрытой левой клетке будет зеркально отражать рисунок в открытой правой, и наоборот. Представляете, каким будет рисунок в закрытой клетке и рисуете его. Чем ближе вы оказались к тому, что надо получить, тем бледнее станет фон. Если попали в допустимый процент разброса с оригиналом, то ваш рисунок скрывается, а на его месте проявляется оригинал. И так вы открываете все закрытые клетки, после чего уровень пройден.


  1. Dywar
    27.08.2015 10:13

    Испытывал подобное состояние как у автора.
    С Unity познакомился в начале 2015 года, сразу взялся за 3D игру, сделал модели, начальное меню и первый уровень. Потом начались постоянные доделки, в итоге игра заморожена.
    Вторая тоже 3D но в разы проще, заморожена.

    Итог: начните с самого простого, доведите до конца хоть что-нибудь.
    Angry Birds, Flappy Bird, Crossy Road — очень сложно?
    В то время как очередная GTA крашится после n дней разработки, и даже если она выйдет через год, она будет качеством ниже плинтуса, любой недочет может полностью перечеркнуть весь интерес, а время и деньги не вернешь. Будьте сами себе инвесторами, оцените свои возможности и потребности рынка.

    Мой путь еще не закончен, опыт то растет, обязательно сделаю.


    1. stepanoffvitaly
      27.08.2015 12:00
      +1

      И это правильно! Верьте в свои силы и не переставайте двигаться к цели!
      Удачи Вам!


  1. knagaev
    27.08.2015 10:29

    Скачаю — внесу свою лепту в продвижение в топ :)
    Выглядит красиво — 90% успеха :)


    1. stepanoffvitaly
      27.08.2015 12:02

      Спасибо на добром слове!


  1. artemgapchenko
    27.08.2015 15:24

    А внутриигровые достижения, кстати, можно было бы реализовать через Google Play Games Services, чтобы игрокам было проще померяться писуспехами.
    Игра классная, залип надолго! Вы молодец!


    1. stepanoffvitaly
      27.08.2015 15:55

      Я думаю, что именно так и сделаю в ближайшем будущем. Спасибо за отзыв и совет.