Construct 2 что это за программа
Обзор конструктора игр Construct 2
В этой статье мы рассмотрим популярный конструктор для создания игр Construct 2. Движок популярный, доступен в трех ценовых категориях, в том числе есть и бесплатная редакция. Construct 2 — это улучшенная версия другого популярного конструктора компании Scirra — Construct Classic.
Особенности
Конструктор игр Construct 2 имеет множество особенностей. В частности, чтобы создавать игры на нем, не нужно знать каких-либо языков программирования, достаточно базовых знаний математики и английского языка. Второй особенностью является простой и компактный интерфейс, в котором легко разобраться.
Нельзя обойти такую особенность, как легко настраиваемая физика игровых обьектов, доступная буквально в пару кликов. То есть, движок Box2D уже встроен в этот конструктор.
Также, в Констракте есть еще одна довольно примечательная черта — Behaviours(Поведения), они помогают настраивать физику, управление, и другие игровые аспекты буквально за одну минуту. Behaviour – это такая штука, которую вы можете добавить к игровому обьекту. Например, добавив физический Behaviour к обьекту, этот обьект начнет вести себя как реальное физическое тело, на него будет действовать сила тяжести, у него появится инерция.
С этим конструктором-движком можно вполне разобраться за пару недель. Про этот конструктор еще говорят, что на нем можно сделать платформер буквально за час. Вот одно из многочисленных видео на эту тему:
Что можно с Construct 2
Теперь же давайте разграничим, что может этот конструктор, а что нет. В связи со своей простотой, Construct 2 не может делать игры в 3D, зато с 2D он хорошо дружит. Например, в нем есть редактор анимаций, который легко разобьет на отдельные кадры строку изображений, которая в одном файле. Главное правильно настроить параметры разрезания этой строки
Construct 2 — это хорошее решение для тех, кто не хочет или не может изучать языки программирования. Или же если вы не хотите тратить на разработку легкого платформера недели, что нередко случается, когда неопытный игродел берется за даже такой несложный жанр. Также, этот движок можно назвать легким стартом в сферу создания игр, ведь он не требует глубоких математических познаний.
Констракт идеально подойдет для не сложного платформера, раннера или же кликера. Даже реализация гонок на нем тоже возможна. Однако, делать файтинги, или тяжелые проекты обширных масштабов (для примера возьмем популярную игру The Binding of Isaac) на нем будет довольно таки затруднительно. Для файтингов и проектов большего масштаба лучше посмотреть в сторону, например Game Maker Studio.
Говоря о платформах, стоит упомянуть, что данный конструктор делает мультиплатформенные игры. Доступен экспорт под операционные системы Windows, Mac, Linux. А также под Android и IOS актуальных версий. При покупке официальное лицензии Personal и выше, конечно.
Сам же конструктор запускается лишь на Windows. Пока что запуск его на Linux, Mac OS X или на другой операционной системе невозможен.
Как программировать в программе
Давайте немного разберемся с тем, как же происходит визуальное программирование игр в этой программе. Это просто и быстро, а в пределах этого раздела вы узнаете элементы интерфейса программы, то есть те его элементы, с которым вы будете чаще всего взаимодействовать.
Первый скриншот, который приведен ниже, вы увидите перед собой, когда впервые откроете эту программу, не через проект. Вы увидите несколько вкладок. Первая вкладка – это File (Файл), в котором потом можно сохранить проект, создать новый и открыть уже имеющийся, и сделать прочие действия с проектом. Меню View (Вид) – это параметры отображения, например часто используется функция Show/Snap to grid, таким образом можно показать сетку на игровом поле и перемещать по ней объекты, привязывая перемещаемый обьект к ее ячейкам. Во вкладке Events можно редактировать события.
Следующее окно вы увидите нажав на кнопку File, или воспользовавшись горячей клавишей F. Здесь вы видите стандартные кнопки (Открыть, Сохранить и т.д.) и список последних проектов.
Ниже вы видите окно создания нового проекта. Просто нажимаем New, и таким образом мы создадим новый пустой проект. Также можно создавать проект не с нуля, а выбрать какую-либо готовую заготовку – например, платформер, где уже будут настроены базовые элементы для платформера.
Создав проект, мы увидим окно, показанное на скриншоте ниже. Layout – это сцена проекта, на которой будут размещаться игровые объекты, из которых и соберется полноценный уровень.
Выделенна желтым вкладка называется Event Sheet (Лист событий). Именно в нем будет собираться вся логика игры, или же конкретного уровня, смотря выберите ли вы опцию создания нового Листа с новой Сценой или же нет. Сразу скажем несколько слов о событиях. В Констракте есть много событий. Например, событие, когда сталкиваются два обьекта. Вы можете настроить какую-либо реакцию на эти события. Например, один из обьектов можно удалить.
В правой части окна видим иерархию проекта с подпапками. Здесь есть папка, куда нужно добавлять музыку, звуки, папка для работы из сценами.
Слева же мы видим параметры либо целого проекта, либо конкретного выделенного объекта.
Рассмотрим, как добавить новый обьект. Окно ниже появится, если вы нажмете на сцене правой кнопкой мыши и выберете “Insert new object”. Некоторые иконки могут отличаться, в зависимости от установленных дополнений.
Выбрав, например самый простой спрайт (“Sprite”), мы перейдем в окно, показанное ниже. Это редактор спрайтов. Здесь можно настроить, например, анимацию спрайта.
Поведения
Ниже вы увидите самое интересное окно, “Behaviours”. Здесь вы найдете интересные встроенные элементы движка – предустановленную физику, управление, элементы спецэффектов. Взгляните на скриншот, чтобы оценить масштабы конструктора (здесь показаны не все поведения).
Главная особенность этого конструктора в том, что он имеет так называемые “Поведения (Behaviours)”. Ведь именно они помогают обрести игре физику, управление или даже все и сразу. Давайте рассмотрим, что же делают некоторые из них.
Первый в списке “Jump through” — это поведение делает блок полупроходимым. То есть, в игре-платформере вы сможете запрыгнуть на него снизу, но верхняя сторона будет твердая. А “Solid” делает объект полностью твердым.
“Anchor” позиционирует объект строго относительно заданной точки. “Bound to layout” помогает удержать объекты в границах сцены, они не выпадут за ее пределы. Среди поведений также можно найти популярную вариацию управления, “Drag & Drop”, она позволяет перетаскивать объекты при помощи мышки.
Есть поведение, которое помогает плавно убавлять или же прибавлять непрозрачность объекта. Поведение “Flash” делает объекта мигающим, “Pin” прикрепляет объект к чему нибудь. “Scroll to”, это слежение за объектом. Допустим, если добавить это поведение к двигающемуся персонажу, то камера будет постоянно за ним следить.
“Wrap” — при помощи этого Behaviour’а объекты дошедшие до края сцены выходят с другой стороны.
Следующие 8 поведений настраивают управление. Возможность двигаться в 8 направлениях, имитация движения пули, движения машины, настраиваемое даижение, настройка физических свойств, управление как в платформере, вращение и движение по кривой.
Мы рассмотрели лишь вкратце и лишь некоторые из поведений. Встроенных поведений больше, и их они имеют настраиваемые параметры. Лучший способ узнать их все – это попробовать конструктор в действии.
Некоторые дополнения
У Construct 2 есть плагины, которые облегчают и автоматизируют работу в этом конструкторе. В частности есть довольно популярный пакет плагинов — Cocoon. Скачать целый набор дополнений Cocoon от Ludei можно тут. В частности, при помощи данных плагинов можно настроить компиляцию под различные платформы. Можно настроить показ рекламы, интеграцию с социальными сетями. Почитать про компиляцию под мобильные систему можно здесь.
Итоги
Мы вкратце рассмотрели Construct 2. Понятно что в одной статье нельзя описать все возможности конструктора. Но это и не требуется. Главное, чтобы вы имели общее представление о данном конструкторе. Если он вас заинтересует – вы всегда сможете скачать хотя бы триал-версию, и оценить лично, насколько он хорош. Нам же будет приятно, если вы потом опишете в комментариях, насколько вам понравился конструктор.
Всё, что вам нужно знать об игровых конструкторах. 3 инди-разработчика делятся опытом работы на Gamemaker, Construct 2, Clickteam fusion 2.5
С выходом unity 5 и бесплатным unreal engine 4, многие совсем забыли о таких удобных инструментах разработки как конструкторы. Возможно, вы только слышали о них, но никогда не использовали. А ведь зря, это очень удобная вещь для реализации многих задач. Бесспорно, тягаться с мамонтами современного игростроения они не способны, да и не стремятся. В данной статье мы расскажем как конструкторы могут вам пригодится и раскроем все плюсы и минусы работы в них.
Game Maker
Это один из самых старых игровых middleware движков. ГМ изначально разрабатывался голландским ученым Марком Овермассом для обучения детей начальной школы навыкам программирования и работал исключительно под «Виндоус». После 8-й версии Овермасс продал ГМ компании YoYo Games, а сам сосредоточился на проблемах обучения. YoYo Games сохранили концепцию и интерфейс, но переписали движок так, что он стал мультиплатформенным. Теперь игра, написанная на ГМ, может относительно легко быть проэкспортирована на множество платформ: iOS, Android, Mac, XBox, PS3, HTML5 и т.д. Каждый модуль можно покупать отдельно за сравнительно небольшие деньги (ежемесячные отчисления отсутствуют).
На деле такая мультиплатформенность, конечно, несет в себе проблемы — например, свою игру, работающую на iOS и Android сразу запустить на HTML5 у меня не получилось — многие функции работают под одной платформой и не работают под другой. Да и просто отладка и запуск, например, под iOS может быть довольно мучительна, так что помощь и консультации опытного разработчика вам все-таки иногда понадобятся. Впрочем, насколько мне известно, этим грешат много подобных движков.
Тем не менее, главная причина, по которой меня в свое время привлек ГМ — это очень низкий «порог входа», т.е. научиться делать игры под ГМ очень легко. Как я уже говорил, изначально ГМ разрабатывался именно как обучающая программа для детей, так что если вы не глупее 8-и летнего ребенка, то сможете разобраться в ГМ. Входящий в дистрибутив туториал игры типа Pacman демонстрирует, как игра создается простым перетаскиванием блоков-конструкций из текущего набора, то буквально из кубиков.
Базовая концепция ГМ очень проста. Есть комната — это экран, где все происходит. В редакторе комнаты мы размещаем игровые объекты — стены, монстров. Объекты имеют набор событий (например, событие столкновения с твердым объектом), а у каждого события есть список действий, которые происходят при активации этого события. Так же, к объекту нужно привязать картинку спрайта.
Но в отличие от большого количества других движков, примтивность ГМ лишь кажущаяся. Кубики-действия — это лишь заранее заданная вершина айсберга, который называется GML — GameMaker Language. Перетянув в объект кубик-действие «выполнить код», вы можете программировать код вручную, используя большое количество мощных функций и очень простой синтаксис.
Поддержка скриптов, любых звуковых форматов, редактор путей, шрифтов, редактор набора текстур и спрайтов, а также неплохой магазин ресурсов и возможность добавления своих расширений — возможности ГМ для создания 2D игр на самом деле очень неплохи. 3D и я не пробовал, но успешных продуктов в этом стиле сделанных на ГМ не припомню.
Добавьте сюда живой форум и неплохую техподдержку — и будет понятно, почему я считаю ГМ лучшим движком для не-программистов. Его также можно использовать для быстрого прототипирования отдельных идей.
Например, будучи довольно опытным пользователем ГМ (но не будучи программистом), я сделал первый эпизод Who Is The Killer, работая 2-3 часа по вечерам, за 4 месяца.
Construct 2
Первая версия движка Construct Classic была выпущена в 2007 году двумя братьями из Англии. До этого они принимали участие в разработке Multimedia Fusion, но в итоге полученные навыки решили применить для создания собственного движка. На данный момент Construct Classic официально не поддерживается, но многие продолжают его использовать и развивать.
Construct 2 был выпущен в 2011 году. Из среды для создания HTML5 игр он вырос в мультиплатформенный движок.
Но, к сожалению, не все так гладко и радужно. Экспорт на дополнительные платформы осуществляется при помощи сторонних программ и запаковщиков. От этого страдает производительность, особенно на мобильных устройствах. Хотя, при должном старании и знании программы можно достичь хорошего результата. Из примеров можно привести мобильную игру Mortar Melon:
Что же касается самой среды разработки, то она очень удобная. Я бы даже сказал, что это самый удобный и простой в изучение конструктор. Программирование игры осуществляется при помощи системы событий.
В конструкторе присутствует система партиклов, а так же OpenGL эффекты. Еще можно выделить аудио эффекты (фильтры, позиционирование звука), возможность создавать мультиплеер при момощи WebRTC, встроенный “поиск пути”, физику и полноценный дебаггер с профайлером. Еще радует тестирование через wi-fi. Нажимаем запустить игру и смотрим, как она уже работает на ваших мобильных устройствах. Присутствует поддержка программы для скелетной анимации Spriter.
Что же касается официальной поддержки, то она своевременная. Часто просят исходник, чтобы быстрее решить вашу проблему. Обновление программы происходить довольно часто, что очень радует. Как правило, это не только правка ошибок, но и внесение дополнительного функционала.
Сообщество у Construct 2 просто великолепное. Люди всегда готовы помочь. Практически всегда люди решают вашу задачу и прикладывают исходник. Сам же форум пестрит различными примерами и множеством полезной информации.
Конструктор подходит для всех и каждого. Как для полной разработки игр, так и для прототипирования. Он позволяет создать игру в любом 2D жанре. Я чаще всего использую Construct 2 для быстрой разработки во время различных игровых джемов.
Конструктор помог мне сосредоточится на других задачах и не тратить время на написание кода.
Несколько игр сделанные при помощи Construct 2:
Clickteam fusion 2.5
За спиной компании Clickteam стоят такие проекты как Klik and Play, The Games Factory and Multimedia Fusion. В начале 2014 они выпустили Clickteam fusion 2.5 (далее Cf) и экспортные модули для ios и android. В этот период произошло моё первое знакомство с движком. Cf сразу понравился своей простотой в освоении и многообещающими возможностями. Прошло уже больше года, за это время у меня накопилось много опыта которым хочется поделиться.
Данный конструктор был выбран по следующим причинам:
По поводу последнего пункта у меня были сомнения, так как качественных игр выпущенных на Cf очень мало и многие знакомые разработчики весьма критически отзывались о создании полноценных игр в конструкторе. С опытом, сомнения развеялись. Итак, что же из себя представляет конструктор Cf.
По сравнению с Unity или Cryengine выглядит устаревшим, но в плане удобства работы и скорости освоения заметно выигрывает. Всего 8 рабочих окон, а основная работа проходит в 4-х. Не смотря, на простоту структуры, некоторые продвинутые опции сложно найти.
На данный момент можно выпустить игру на ios, android, pc, html 5, Flash, Ouya.
Разработчики Cf утверждают, что конструктор позволяет сделать любую игру в 2-d. Я бы сказал, что лучше всего он подойдёт для игр, действие которых происходит при статичной камере (матч-3, головоломки, флэппи бёрды, квесты, карточные игры и т. д.). Встроенный физический движок 2d-box даёт возможность поиграться с физикой. Например, всем известный cut the rope использовал 2d-box. Многие инди-разработчики делают платформеры на cf, но для такого жанра, я бы предпочёл Unity, ибо быстрее.
Возможности для разработки на мобильные платформы
При выпуске игры под ios, при помощи функций внутри конструктора вы сможете встроить в игру геолокацию, использовать акселерометр, встроенные покупки, банерную рекламу iad и Chartboost, zoom, multitouch, симуляцию джойстика. Встроенная настройка admob доступна только для андройда, а Unity ads придётся добавлять через xcode. Для ios так же поддерживается Game Center с лидербордами и ачивками, а так же мультиплеер с матчмэйкингом. По поводу последнего ничего сказать не могу. На Cf в основном сделаны сингловые игры.
Нажимаете f8 и игра запускается в отдельном окне. Для тестирования на девайсах нужно производить экспорт в xcode или apk. Тут скрывается неудобство работы с xcode. Cf работает только на Windows, движок нельзя запустить на Mac не имея виртуальной машины. Так как я работаю на винде, мне так же пришлось установить виртуальную машину, чтобы тестировать игры на реальных устройствах. Рекомендую VMware Player, в интернете имеется в свободном доступе. Так же, необходимо скачать актуальную версию эмулятора операционной систем под Mac. Для завершённых игр компиляция в apk и xcode файлы занимает не более минуты. Для прототипов это секунды.
Оптимизация под разные девайсы
При компиляции игры, нужно выбрать тип отображения на дисплее. Есть несколько вариантов хорошей оптимизации для портретной и альбомной ориентации. Я не буду сильно вдаваться в подробности, большую статью можно найти на форуме Cf, скажу только, что если вы в начале разработки не продумаете этот пункт, вас ждут проблемы. Несколько советов для понимания общей картины:
Я испытал самые тёплые эмоции обращаясь в Cf за помощью. Быстро, по делу, могут даже прислать готовый кусок кода, чтобы объяснить что-либо. В течении суток всегда приходил ответ. В выходные правда, не работают. Отдельно хочется выделить форум. Визуально он не очень ( напоминает www.gamedev.ru, простите за откровенность), но весьма информативный. Много готовых решений и полезных блогов. Поддержкой экстрактора для ios занимаются люди из Apple. Очень компетентные ребята.
Обновление движка и расширения
Внутри программы есть менеджер расширений который содержит множество бесплатных объектов облегчающих работу разработчика. Периодически там появляется что нибудь новое. В целом, движок развивается не так быстро как хотелось. Когда вышла ios 8, Cf не успела выпустить обновление экспортёра, из за чего разработчики обновившие свои девайсы лишились возможности тестировать на них игры. Около двух недель ушло на устранение данной проблемы. При чём оказалось, что не повезло только владельцам steam-версии движка. Ещё у Cf есть свой store который пока совсем мал. Мне нужно было купить в нём ассет «share для фейсбука», но всё оказалось не так просто. Оплата в store производиться через google wallet. Я покорно привязал свою карту к данному сервису, согласился со всеми условиями, но всё зависло. Многократное повторение процедуры не увенчалось успехом. Может у вас получиться.
Кто разрабатывает игры на Cf
Основная аудитория движка — любители, для которых создание игр хобби. Поэтому, качество большинства игр оставляет желать лучшего. Если сравнивать с прошлым годом, то количество разработчиков, желающих зарабатывать и делать хорошие игры в конструкторе выросло. Как правило, это инди-одиночки или небольшие команды. Надеюсь, что этот приток даст стимул команде Cf активней развиваться в направлении бизнеса. Так же, движок часто используют при создании прототипов механик для больших игр.
Популярные игры разработанные на Cf
Five nights at Freddy’s — IOS, PC
Slayin – IOS
Fort Meow – PC
Pitiri 1977 — PC
OddPlanet Lite — IOS
Pocket Ninjas — IOS
Megacity — IOS
Atomic Santa: Christmas Omega — PC
Silence of the sleep — PC
Concrete jungle — PC
Six o’clock high – Android
В настоящий момент я имею две игры собранные на Cf, последняя из них — дизайнерская головоломка My Maze для ios. Большим минусом оказалось то, что начав переговоры с издателем, возникла необходимость встроить некоторые sdk отвечающие за аналитику. И тут cf меня сильно подвёл, у издателя есть готовые решения для unity, а интеграция через мой конструктор либо очень сложная, либо вообще невозможна. Поэтому, придётся переделывать всю игру на unity или отказываться от издателя. Постарайтесь не допустить моей ошибки и заранее продумайте, какие sdk могут вам понадобиться и есть ли возможность встроить их в игру. Тем не менее, на мой взгляд, каждый геймдизайнер должен уметь работать в конструкторах. Это позволяет меньше зависеть от других членов команды, в первую очередь от программистов. К тому же, не всем играм нужно 3D, а инструментов для создания 2D игр Cf предоставляет достаточно. Важнейшим плюсом конструктора является скорость работы и легкость освоения.
Создание мобильной игры в Construct 2. Путь неопытного
Начало, Идея, основная концепция
Начало было заложено после прочтения статьи о самом инструменте Construct 2, после чего было принято решение посмотреть на возможности этой программы. Несколько недель ушло на изучение функционала Construct 2. Бесплатной версии Free Edition для этого вполне достаточно. В ней существуют ограничения на количество эффектов, слоев и пр., но для изучения программы это не сильно мешает. Вот портировать на мобильные платформы с бесплатной версией уже нельзя.
Пробы с различным поведением спрайтов и физическим движком помогли неплохо освоиться в программе, а заодно послужили источником вдохновения для нескольких идей. На одной из них я решил остановиться – было решено делать игру, главный герой которой мог бы передвигаться по городу с помощью веревки – по принципу spiderman.
При беглом просмотре в GooglePlay аналогов найдено не было, что и послужило решающим толчком к началу разработки. Впоследствии оказалось, что с изучением уже существующих приложений поторопился. При поиске я ориентировался только на словосочетание spiderman и его вариации, что было ошибкой. Позже по другим ключевым словам нашел с десяток подобных приложений и несколько из них были очень популярные.
При более детальном построении логики игры я старался не отходить от основного принципа: игра должна быть простой и быстрой в реализации — чтобы не тратить много времени на первый ком и набрать весь минимально необходимый опыт для последующих проектов. С учетом того, что по характеру игра напоминает runner, хотелось обойтись без головной боли в виде построения десятков разных уровней и сделать один бесконечный.
Создание игры
Для дальнейшей работы потребовалась расширенная лицензия Personal License. Иначе недоступен экспорт на мобильные платформы, а также запрещено использование в коммерческих целях.
Сделал набросок в один экран, продолжил прорабатывать физику главного Героя. В результате получилось следующее: при движении Героя вправо случайным образом генерируются разные по фасаду и размеру здания. При нажатии на здании создается условная веревка, соединяющая Героя и упомянутую точку касания. Остальное делает встроенный в Construct 2 физический движок. При нажатии на свободное от строений пространство условная веревка исчезает, Герой вылетает по касательной. Конец игры при падении на землю.
Впоследствии убогая палка, на которой качался Герой, была заменена на менее убогое подобие веревки (состоящей из последовательно соединенных мелких палок).
После реализации задуманной физики движения (т.е. осознания того, что задуманную игру действительно можно сделать посредством Construct 2) я приступил к внедрению некоторых деталей – необходимого минимума для любой мобильной игры:
— Нормальная графика (в качестве редактора использовал бесплатный Inkscape – очень приятный векторный редактор, работал с ним впервые и с удовольствием);
— Экран меню;
— Кнопки с рестартом уровня, паузой, выходом из приложения и всего такого;
— Экран с информацией об игре;
— Счет и локальное хранение лучшего результата на телефоне;
— Оптимизация «кода»;
— Доработка геймплея, создание препятствий (фонари, рвущие веревку и сбивающие героя голуби);
— Усложнение игры с каждым новым уровнем (голуби становятся быстрей и встречаются чаще, фонарей также становится больше, здания – реже);
— Сделал корректным отображение элементов HUD на устройствах с различным разрешением.
Одной из значительных трудностей была реализация одного бесконечного уровня на всю игру. Проблема заключалась в том, что layout сделать бесконечным нельзя. Игры типа infinite runners делаются по принципу движения космического корабля из небезызвестного сериала Futurama: не герой двигается относительно всего остального, а все окружающее пространство движется относительно героя, а герой стоит на месте. В таких играх физика как таковая отсутствует, поэтому в моем случае это было фактически нереализуемо. В итоге я пошел по пути наименьшего сопротивления – длина layout’а считается одним уровнем, при его достижении с героя снимаются все данные о его движении, спрайт с Героем удаляется, в начале layout создается новый с теми же характеристиками движения, и это считается следующим уровнем.
Вставил музыку, брал с источника freesound.org. На нем много всего бесплатно, но надо обращать на тип лицензии (всего их три). Для некоторых из них требуется спросить разрешения автора перед использованием, или обязательно указать ссылку на него в своем продукте. Я использовал звуки с лицензией, при которой не нужно делать ничего, только скачать и использовать. Впоследствии большую часть звуковых эффектов пришлось убрать – они сильно притормаживают игру, и эту проблему с наскока решить не получилось, пришлось отложить до лучших времен.
Большая часть всего перечисленного была сделана за полторы недели (напомню, я делал это не по вечерам, а по 10-12 часов каждый день с перерывами на чай/кофе/потанцуем). Остальное допиливалось на последующих этапах.
Ниже представлены иллюстрации эволюции игры:
Экспорт
Игру, созданную на Construct 2, можно портировать на Android, iOS, Windows Phone. Это помимо не интересующих меня в данный момент Facebook Games, Chrome Web Store и пр.
Выбор мобильной платформы для портирования, разумеется, был сделан в соответствии с используемым мной в быту телефоне, поэтому это оказался Android.
Для экспорта есть несколько альтернатив, мой выбор пал на Intel XDK. Удобный и понятный XDK, быстрое тестирование на телефоне без необходимости переустанавливать приложение после каждого изменения.
Однако в моем случае результат оказался весьма плачевным – игра жутко тормозила, играть в нее было очень грустно, прорисовка графики также оставляла желать лучшего. Протестировал то же приложение на iphone брата – результат отличался колоссально.
Очень много времени я потратил на изучение форумов, пытаясь решить проблему с производительностью, по максимуму оптимизировал и упростил «код», на эту тему написано немало статей – открыл для себя множество интересных мелочей. Например, что отображение постоянно изменяющегося текущего результата (score) посредством текста очень сильно грузит приложение, и вместо текста нужно обязательно использовать Fonts.
В результате оказалось, что Intel XDK ведет себя так только в случае использования физического движка Box2D web. Для решения этой проблемы они создали отдельный движок Box2D asm.js, однако мое приложение с этим движком упорно отказывалось запускаться. В результате в качестве инструмента экспорта я переключился на CocoonJS. Construct 2, насколько я понял, уже не особо с ними сотрудничает (в самом конструкторе в перечне инструментов экспорта CocoonJS скрыт как deprecated exporter). Однако в случае использования физики это единственный работающий (хорошо работающий) вариант. Да и со стороны CocoonJS плагины для Construct 2 все еще создаются и обновляются.
Отдельно отмечу, что для подключения рекламы при экспорте через CocoonJS Вам потребуется премиум аккаунт. Он бесплатный, однако, для его получения потребуется написать им заявку с указанием описания Ваших текущих проектов, планов на будущее, а также обоснованием того, зачем Вам потребовался премиум аккаунт. Поэтому советую заранее озаботиться этим вопросом – на получение аккаунта уходит некоторое время. В моем случае это заняло около суток.
На поиски и изучение способов экспорта, оптимизацию “кода”, внесение доработок в приложение после тестирования на телефоне, а также адаптацию под различные возможные разрешения ушло около двух недель.
Надеюсь, моя статья сэкономит некоторым из вас это время.
Монетизация
В качестве способа монетизации я решил использовать наименее простой, на мой взгляд, способ – рекламу.
Я решил, что рекламу обязательно подключить сразу. Было бы подло выкладывать впоследствии обновление бесплатного приложения, после установки которого у пользователя появляется отсутствующая ранее реклама.
Единственный способ подключения рекламы к созданной в Construct 2 игре под Android и экспортируемой через CocoonJS – это связка рекламных сетей Mopub + Admob и остальные. Реклама MoPub подключается к приложению при экспорте в CocoonJS. Однако эта рекламная сеть, помимо своих объявлений (которых у нее мало, и оплата за них небольшая), может служить посредником между другими сетями, выставляя при этом для каждой сети минимальную стоимость за показ. Таким образом, можно в одном приложении показывать рекламу нескольких рекламных сетей, и для показа будет выбрана одна из наиболее дорогих. Admob, безусловно, является фаворитом среди рекламных сетей для Android, поэтому в качестве дополнительной я остановился на ней.
Сразу отмечу, что для тестирования рекламы публикация в App Store не нужна, можно встраивать и тестировать рекламу на любом удобном этапе разработки приложения.
Мой выбор формата показа рекламы пал на Full screen ads в момент нажатия кнопки Back или Restart, но не чаще чем раз в 2 минуты. Использование баннеров на экранах меню бессмысленно, ибо никто там надолго не задерживается; баннер на экране с уровнем в случае с динамичной аркадной игрой еще более бесполезен.
При подключении рекламы по данной схеме следует отметить несколько особенностей.
1. Интегрировав рекламу в приложение – не стоит волноваться первые минуты/часы при тестировании. Первое время реклама не будет показываться вовсе, потом будет показываться очень редко – нужно некоторое время, чтобы объявления начали подгружаться в полную силу.
2. Admob имеет один из самых высоких показателей Fill Rate, однако в случае с реализацией по данной схеме с использованием MoPub в качестве посредника FillRate сети Admob падает до 30-80%. Эта проблема существует, о ней известно, и разработчики обещали ее исправить. Однако когда это произойдет – неизвестно.
По данной причине я решил не ждать и выйти из сложившейся ситуации достаточно простым способом. Очевидно, никто не будет показывать рекламу в приложении каждые 10 секунд. Независимо от реализованного вами способа выбора момента показа рекламы (будь то нажатие определенной кнопки, или показ каждые n минут), между двумя показами проходить сколько-нибудь существенное время. Допустим, 2 минуты. В Construct 2 при подключении рекламы делаем следующую вещь: заводим переменную AdsLoadTrigger, обозначающую, была ли подгружена реклама, и, если нет – каждые 10-20 секунд пробуем загрузить снова, вплоть до удачной попытки. Таким образом, при фактическом Fill Rate в 20% можно без труда достичь близкой к 100% вероятности показа рекламы в нужный вам момент.
На подключение рекламы я потратил уйму времени. Анализ множества различных рекламных сетей, регистрация и освоение в каждой из них, интеграция рекламы в приложение, ее тестирование и настройка оптимальных мест и частоты показа занимают очень много времени. Однако если вы сразу пойдете по указанному выше пути – справитесь за несколько дней.
Публикация
Напомню, что портирование производил на устройство под Android: разумеется, самой популярной площадкой для распространения мобильных приложений является Google Play, однако существует немало альтернатив, про которые не стоит забывать. Таким образом, помимо очевидного выбора в пользу Google Play, я использовал также одни из наиболее популярных альтернативных магазинов: SlideMe и GetJar.
Учитывая, что для продвижения в наиболее перспективном Google Play очень важен мощный уверенный старт (для попадания в топы разделов) – альтернативные площадки можно использовать для обкатки приложения на пользователях, устранения основных замечаний и сбора данных для аналитики (конечно, если такая возможность была учтена в приложении).
Несколько слов о локализации: как минимум описание игры следует перевести на 4 языка – японский, английский, корейский и китайский. Таким образом, Вы охватите больше половины всех потенциальных пользователей Вашего продукта.
Еще один очень важный момент — это подпись вашего продукта. Не уверен насчет других площадок, но для Google Play наличие подписи обязательно. При выполнении этой операции рекомендую использовать Java Development Kit версии 1.6. Я, по незнанию, использовал следующую версию 1.7 — в результате при установке приложения из Google Play выдавалось сообщение о неверной подписи пакета, и фактически с первых минут публикации игры никто не мог ее установить. Что неприятно. Единственное найденное мной решение: залить новый apk, подписанный уже версией JDK 1.6, так что лучше сразу пользоваться этой версией.
Продвижение
Как водится, я решил не тратить деньги на продвижение вовсе. Учитывая, что это первый опыт публикации мобильного приложения – я бы не стал возлагать особые надежды на финансовый успех этого предприятия, и потому деньги тратить посчитал бессмысленной затеей. Главное – набраться опыта.
Таким образом, в качестве инструментов продвижения были выбраны бесплатные обзоры. Был подобран перечень тематических сайтов и блогов, и разосланы предложения с обзором моей игры. К сожалению, на данный момент я не смогу сказать, каков результат этих действий, и сколько процентов обращений увенчались успехом – обзоры рассылались сразу с публикацией приложения, произошедшей на днях.
В качестве примера приведу полезную, на мой взгляд, ссылку на перечень платных и бесплатных сайтов-ревьюверов приложений для Android, iOS и Windows Mobile.
К описанию игры во всех магазинах приложений была указана ссылка на необоснованно-патетический промо ролик игры с изображением основных моментов геймплея. При создании промо ролика использовался видеоредактор «Camtasia Studio 8». Его возможностей более чем достаточно для создания подобного материала, при этом в программе можно очень быстро и самостоятельно разобраться. Для меня приятной особенностью является то, что в ней возможна запись экрана компьютера (я делал запись геймплея, запуская созданную игру в браузере) с возможностью удаления курсора. К сожалению, программа не бесплатна, однако 30 суток на пробу этого продукта вы имеете.