Разработка Tower Defense для ВК и Android / Хабрахабр

Привет Хабр. хочу поделиться моим опытом разработки сначала ВК а потом 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.
Основные выводы которые я сделал:

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

Источник