Привет Хабр, хочу поделиться моим опытом разработки сначала ВК а потом Android игры.
Геймдевом никогда ранее не занимался, но небольшой избыток времени, а так же желание расширить область профессиональных умений, послужило толчком для начала разработки.

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

Приложение для ВК


Было решено делать ВК приложение, наверное потому что я сам в то время поигрывал в одну популярную ВК игру и видя цифры в овер 5 млн. участников полагал что ВК приложение это очень популярно. А так же разработка ВК приложения для меня означала изучение сразу двух новых областей, PHP для серверной части и ActionScript (Flash) для клиентской. Скачал книгу Колин Мук — ActionScript 3 и принялся за изучение. ActionScript оказался весьма простым для изучения, единственное что меня напрягало это отсутствие слипа, но к этому быстро привыкаешь. PHP же и без книги шел прекрасно, наверное из за его популярности, любая мелочь гуглится на ура сразу с примерами. с mySQL вообще не возникло проблем т.к. я с ним уже был знаком. Во всех своих проектах стараюсь придерживаться парадигмы ООП, это в последующем сильно облегчило жизнь т.к. проект оказался многократно более объёмным чем я предполагал изначально.

Основная структура классов и структура БД была сделана быстро, тут я был в своей среде. Потом были придуманы типы башен (каждая со своими особенностями) и прямо в экселе были спроектированы схемы уровней. Очень быстро я уперся в то что нужна графика, а именно GUI, карты уровней, а так же спрайты башен и врагов. Первый вариант GUI был найден быстро, для уровней отлично подошёл всем известный Tiled, но вот что делать с остальным я не знал, где взять спрайты для башен и врагов. В связи с не умением рисовать и отсутствием чувства вкуса, о том чтобы сделать самому не было и речи. В конечном итоге одну башню мне нарисовала супруга, ещё пару я где то скопипастил немного подправив под себя, и ещё одну отрендерил в 3dmax с бесплатной модели которая мне подошла. Я так утомился с этими статичными спрайтами башен, что при мысли о спрайтах врагов (которые должны быть анимированы) у меня просто опускались руки. К счастью я наткнулся на небольшую прогу CharCreator, она содержала огромное количество элементов для создания анимированных персонажей.

image

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

image

Сейчас к сожалению не могу найти тот вариант чтобы показать, но очевидно что речь шла о GUI, он был ужасен. Понадобилось больше месяца чтобы переделать GUI и добавить обучение (без него тоже не стали публиковать). И в конце 2014 года игра была добавлена в каталог ВК. За последующий год в игре было сделано много улучшений и фиксов, новый уровни, система скилов и другое. Я не делал своей целью заработать на этом приложении, но наверное каждому у кого есть хобби хочется чтобы оно помимо морального удовлетворения приносило ещё и доход. Покупку игровой валюты я делать не стал, но рекламу всё же прикрутил, доходов с рекламы еле хватало на хостинг, но хорошие отзывы о игре были мне гораздо важнее и дороже.
Ссылка на приложение

Перенос на Unity


В конце 2015 я задумался о портировании на Android. Довольно быстро освоил основы unity3d по урокам в какой то статье, с# в то время был у меня уже на высоком уровне, так что дело пошло. Код перенес быстро, спасибо ООП. С графикой пришлось посложнее, ведь раньше я использовал средства анимирования Flash. Многие вещи в unity очень удобны, но я по сути не пользовался многими фишками которые у меня уже были реализованы собственноручно в коде. Если бы я вёл разработку на unity изначально то это было бы быстрее чем ActionScript, но не думаю что на много, ведь основное время как я уже упоминал ушло на поиски спрайтов.

Портирование на unity сильно затянулось, как выяснялось за 2 года разработки (хоть и вялой) проект стал довольно крупным, но вот спустя ровно год я выложил мобильную версию для Android. Но если в ВК приложений этого жанра не так уж и много то в «Google play» оно просто потонуло в других подобных и что не маловажно более качественных приложениях. Его просто не находят, а те кто находят избалованы бестселлерами этого жанра и конечно конкурировать с ними сложно. Запостил на 4pda и trashbox, а так же разместил ссылку из ВК приложения, но эффект довольно слабый.

> Ссылка на маркет

Выводы


Подводя итоги разработки хочу отметить что цель ради которой всё и началось достигнута в полном объёме. Изучена новая для меня область, освоен ActionScript, PHP и Unity3d.

Основные выводы которые я сделал:

  • Разработка игры это интересно, и отлично подходит для освоения новых сред и языков;
  • То что в твоё приложение играют мотивирует на его улучшение, но обратный процесс тоже присутствует;
  • Чтобы сделать стоящую игру в команде должен быть художник/дизайнер;
  • Чтобы зарабатывать на игре этому нужно уделять по настоящему много времени, должна быть либо оригинальная идея либо отличное исполнение;
Поделиться с друзьями
-->

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


  1. RevalSoft
    10.01.2017 04:57
    +8

    Уважаемый автор, вы публикуете статью, а не лист набросков, пожалуйста, старайтесь использовать форматирования, заголовки и специальные теги, красиво оформленный пост намного интереснее читать, чем массив символов.


    1. dos999
      10.01.2017 07:22
      -3

      Добавил подзаголовки.


  1. Tairesh
    10.01.2017 09:12
    +3

    Это же хабр, а не 4pda. Где код? То, что он ООП, конечно, круто (на самом деле нет), но я ожидал увидеть в статье с названием «разработка <...>» что-то касательно разработки.
    P.S. Не воспринимайте как критику игры или лично автора, просто хочу почитать об архитектуре тауэр дефенс игры.

    Upd. Статья уже называется «история разработки», всё окей :D


    1. dos999
      10.01.2017 09:21
      -2

      Согласен, поэтому и поменял название. Если не поленюсь оформлю архитектуру и код в отдельную статью.


  1. k12th
    10.01.2017 11:04

    А можно ссылочку на CharCreator? Что-то гугл-фу подводит:(


    1. dos999
      10.01.2017 11:34
      +1

      Я тоже почему то не смог его с ходу нагуглить
      вот


      1. k12th
        10.01.2017 11:37

        Спасибо.


    1. akaluth
      10.01.2017 20:02

      Моё гугл-фу привело сюда


  1. Akdmeh
    10.01.2017 11:21

    Оказывается, я был знаком с вашей игрой до статьи — тоже искал что-то в жанре Tower Defence. В принципе, ощущалось, что UI очень уж сделан по-аматорски, но играть было сначала интересно, потом надоело — не хватило какого-то разнообразия.


    1. dos999
      10.01.2017 11:36

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


  1. Emin
    10.01.2017 11:26

    А почему не портировали игру на Adobe AIR? Тогда можно было бы собрать и для Андроида, и для иОСа. Тем более что она уже была сделана на АС3


    1. dos999
      10.01.2017 11:39

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


  1. BIanF
    12.01.2017 03:23

    «Я пиарюсь»
    Никаких фич и особенностей… Скриншота с геймплеем нет. В GooglePlay он есть; пятым.
    (Мало того, что у вас используется 6 слотов для скриншотов из 8; так ещё они и на английском блин...)
    Как-то вы не очень пиаритесь, если честно…

    P.S.
    «Требуемая версия Android
    2.3 или более поздняя»
    Вот вам совет: билдите для 4+


    1. polygon_wolf
      12.01.2017 14:40

      Делаю сейчас свою игру и тоже думал делать билд на 2.3. Можете объяснить почему лучше на 4+? Ведь 2.3 все равно запустится на всех выше?


      1. BIanF
        12.01.2017 14:44

        Потому, что с ограничением 2.3 вашу игру попытаются запустить люди с очень старыми wood девайсами. Юнити упадёт по памяти или ещё чему… Вам поставят 1 с комментариями вроде «отработает!!!!!!».


  1. polygon_wolf
    12.01.2017 11:19

    Спасибо за статью. Решил посмотреть на ваше приложение в ВК. Почему нет никаких звуков в игре? Было бы приятней играть и слышать выстрелы и попадания во врагов)


    1. dos999
      12.01.2017 11:20

      звуки появились только когда делал для Android, а ВК приложение так и осталось «немым»