Я всегда считал, что есть какая-то особая магия в игре вдвоем за одним устройством. Когда-то, во времена безраздельного царствования консолей и на заре появления Интернета, это было обусловлено сугубо техническими аспектами. Но и сейчас, эта магия, азарт противостояния face-to-face никуда не делся. Многие, наверное, как и я, с большой теплотой вспоминают многочасовые hotseat-партии с друзьями в «Героев Меча и Магии». А знаменитая в свое время «Chopper Duel» (под DOS), изображенная на КДПВ? Сколько эпических дуэлей было сыграно на парах информатики!
Под катом вас ждет gamedev story, о разработке, монетизации, создании игры. Обо всем, начиная с появления идеи и заканчивая изданием на Google Play.
Идея
В общем, когда возник вопрос: какой не заезженный геймплей выбрать для игры, ответ был очевиден. В качестве источника вдохновения, я решил взять ту самую «Chopper Duel». Но тут появляются несколько проблем, характерных для реализации такого типа игры именно на мобильных платформах. На PC или консолях, игроки смотрят на экран, грубо говоря, с одной точки. Здесь же, самым удобным является положение, когда игроки находятся друг напротив друга, положив планшет/смартфон между собой. Поэтому «вид сбоку» категорически не годится (мы будем вынуждать игроков смотреть на сцену, повернутую под углом в 90 градусов). Итого, оптимальным решением будет «вид сверху». Каждый игрок получает в свое управление летательный аппарат (самолет), снабженный ракетной установкой. Каждому игроку выводим панель управления его самолетом. Возможно, дело в том, что я вырос на игровых приставках и «физических» джойстиках, но наэкранный стик мне кажется очень не удобоваримым решением. Поэтому его использовать мы не будем, а на панели управления, расположим следующие элементы: «JET» — ускорение (включение реактивного двигателя), «FIRE» — запуск ракеты, плюс кнопки «крена влево» и «крена вправо».Кстати, здесь вы можете видеть первоначальный вариант. Потом я сообразил, что более привычным будет расположение кнопок как на джойстиках: кнопки движения — слева, кнопки действий — справа.
Самолеты летят вперед с постоянной скоростью. Если включить реактивный двигатель, нажать кнопку «JET», самолет ускоряется, если отпустить — замедляется. Кнопки крена, вызывают смещение самолета в соответствующие стороны. Следующий шаг — придать игре больше динамики, вынудить игроков маневрировать не только чтобы уклониться от вражеской ракеты.
Двигаться вперед (использовать ускорение) необходимо для стрельбы с упреждением. Так как самолеты находятся в постоянном движении, при выстреле в сторону, точка попадания оказывается немного позади от точки прицеливания. Самой выгодной становится стратегия: обогнать противника и выстрелить назад, при таком выстреле скорость ракеты относительно самолета будет максимальной (у оппонента меньше времени для маневра). Но тут в игру вступает сила, заставляющая двигаться влево-вправо: самолеты пролетают между препятствиями, от которых надо уклоняться (у нас это острова, парящие в небе с помощью неведомой магии). А находясь впереди, у края игрового поля, игрок рискует не успеть увернуться от очередного острова.
Правила игры очень просты: дуэль продолжается до 10 побед, задача — уничтожить противника и при этом, не быть подбитым самому. Если игрок сталкивается с препятствием, ему засчитывается проигрыш, если игроки погибают одновременно (как при таране, например) — то ничья. В игре есть и «single player», но это скорее формальность, душа и сердце игры — это дуэль для 2 игроков, конечно!
Отдельно стоит сказать про вооружение наших летательных аппаратов — ракетную установку. Она самонаводящаяся, но поворачивается только с шагом в 90 градусов (что, впрочем, позволяет стрелять находясь в любой стороне от противника). Ракетница перезаряжается не очень быстро, так что «подавить огнем» в этой игре не получится. Это скорее должна быть дуэль двух снайперов с выверенными и своевременными одиночными выстрелами. Кстати, интересная деталь: в оригинальной «Chopper Duel», скорострельность была ограничена количеством пуль, одновременно находящихся на экране. Если мне не изменяет память, их могло быть не более восьми.
Разработка
Касательно технической части, это вторая игра где я использую AndEngine (код пишу в Eclipse по привычке). Движок довольно простой для освоения, функциональный и с большим комьюнити. На все возникающие в процессе разработки вопросы, я без проблем находил ответы на Stack Overflow. Еще хочу порекомендовать книгу, которая мне очень помогла понять как в целом должна выглядеть игра на AndEngine (переходы между сценами, загрузка ресурсов и т.д.) — «AndEngine for Android Game Development Cookbook» (можно купить в электронном виде). Единственный, но очень существенный минус — этот движок не кроссплатформенный. Сейчас начал изучать Corona SDK, возможно буду переходить на нее. Если вы спросите: почему не, так модное в последнее время, Unity? Хм, не знаю… Не будет ли это «стрельбой из пушки по воробьям»? Слышал про появившееся в Unity, 2D «из коробки», надо бы присмотреться, согласен.Так же, очень помогает TexturePacker — инструмент для формирования текстурных атласов, лицензия платная, но стоит не дорого и есть trial. Из «не вошедшего в релиз», можно упомянуть утилиту для генерации взрывов — Explosion Generator 3. Конечно, не всегда такие взрывы подойдут по стилистике, но их всегда можно использовать в прототипе по крайней мере.
Тестирование игры происходило с использованием еще одной полезной программы — Genymotion. Это простой в установке и настройке эмулятор Android, а главное, скорость его работы сопоставима с реальным устройством. Хотя у меня уже и образовался небольшой выводок Android-устройств (в количестве 3 штук), иногда очень удобно, быстро посмотреть какие-то правки в эмуляторе. Есть плагин к Eclipse, кстати!
Непосредственно разработка, заняла примерно 2 недели. Когда программная часть была готова, начались поиски художника. Изначально, мне не очень везло с художниками. Началось все с того, что проверенный исполнитель, рисующий в нужном стиле, оказался занят. С первым художником у нас возникло просто какое-то глобальное недопонимание друг друга, пришлось расстаться. Второй, понимал задачи, но не смог придерживаться сроков. На бирже фрилансеров поступают предложения в основном от «дизайнеров сайтов». Поймите меня правильно, я ничего не имею против дизайнеров, отличная и интересная профессия, но, «нарисовать сайт» и «нарисовать игру» — это две большие разницы. Наконец, когда я уже почти отчаялся, на «gamedevblogs» нашелся Кирилл, с которым мы и создали эту игру (на условиях разделения прибыли). Так что за визуальную часть, хвалите (или ругайте) — его.
Монетизация
Мне, как и многим игрокам, не по душе засилье free-to-play игр, которое мы можем наблюдать в последнее время. Да, иногда такая бизнес-модель не только приносит деньги, но и уместна для игрока. Хотя в большинстве случаев, она просто «притянута за уши». С другой стороны, продавать на Play Store крайне сложно (это я знаю на собственном опыте). Но схема монетизации у игры быть обязана. Поэтому, не устану повторять, лучшее решение для инди — это реклама. Разумеется, никогда не следует вешать баннер на главной игровой сцене. Прибыли он не принесет, так как игрок занят игрой, а только будет подталкивать к скорейшему удалению игры с устройства. Я остановился на fullscreen-рекламе, иногда показываемой между раундами. Тот же AdMob Interstitial имеет очень хороший CTR и доходность в разы больше обычной баннерной рекламы. А если кто-то не хочет смотреть рекламу или просто понравилась игра и есть желание поддержать нашу маленькую команду материально — есть несколько вариантов пожертвований. Ну а отключение рекламы мы конечно же не продаем, а просто дарим в подарок!Размещение на Play Store
Скажу сразу, обращение к издателю — это определенно не мой путь. Во-первых, маловероятно что такая простая игра заинтересует кого-то из «средней лиги», не говоря уже о «высшей». Во-вторых, с некоторыми из них, я и сам могу потягаться в количестве загрузок.В успешном издании игры нет никакого секрета, кто бы что не говорил. Это всего лишь опыт + немного везения. Надо понимать от каких инструментов какую отдачу можно ожидать, постоянно искать новые каналы, наблюдать за тенденциями, подсматривать удачные решения у других. Наличие предыдущих популярных приложений придает некую «инерцию», но это далеко не главное. Плюс все зависит от самой игры, естественно, если она игрока не цепляет, то тут ничего не попишешь, будь ты хоть гением маркетинга. В общем, готовим симпатичные скриншоты, привлекательную иконку, записываем видео и вперед! Покорять вершины чартов.