Разработка первой игры под Android с применением Adobe AIR и Stage3D
Введение
Давно хотел сделать хоть какую-нибудь игрушку для мобильника. Разработка игр – это одно из моих хобби. Времени я уделяю для этого крайне мало, но делаю это с удовольствием.
Раньше разрабатывал небольшие игрушки на PC (так, друзьям и коллегам поиграть), браузерные игры и игры для социальных сетей. Ничего особо выдающегося в этом направлении я не сделал, но неплохо провел время.
Ах да, еще работал в парочке фирм-разработчиков и издателях компьютерных игр программистом, но быстро понял, что увлечение – это одно дело, а работа в крупной фирме в области геймдева – совсем другое.
Никогда не делал игр для мобильных устройств и вот решил изучить вопрос, попробовать и разработку, и публикацию, и вообще узнать как там все.
Выбор технологии
Два раза устанавливал Unity, сделал тестовый проект и не знаю – что-то не лежит душа к этой технологии, все мне неудобно и навыворот сделано.
Пробовал sdl2 и cocos2d – намного больше понравились эти технологии, но обязательно натыкался на ограничения возможностей движка в некоторых аспектах, без которых можно было и обойтись, но очень хотелось больше пространства для маневров.
Пробовал haxe – очень интересная штука, но собирать приложение долго, часто глючит сборка через Android SDK/NDK (у меня несколько сред разработки по работе со своими хранилищами Android SDK/NDK, возможно они конфликтуют с haxe), да и производительность не сильно лучше Starling для AIR.
Ковырялся я долго в разных движках и в какой-то момент решил просто выпустить ради самого процесса игрушку. Поэтому я обратился к старому другу – AS3 с технологией AIR. Как-то делал небольшие радиоуправляемые игрушки и вместо пульта использовал телефон, на котором были разработаны простенькие интерфейсы джойстика управления по WI-FI. Как раз для этого я использовал AIR, ведь раньше я делал игрушки на Flash, и создание приложения для мобильника на AIR оказалось крайне быстрым и простым.
Stage3D
Векторная анимация никогда не отличалась хорошей производительностью, но небольшое количество анимаций работает отлично. Серьёзной игрушки на этом не сделаешь, да и давно хотел освоить работу с видеокартой через Stage3D. Пробовал еще bitmap blitting как ведет себя на мобильнике – очень не плохо, но так-как это все для личного удовольствия, я решил освоить таки Stage3D.
Сначала я взялся за Starling и Genome2D. Starling оказался очень удобным, но не оправдал моих ожиданий в производительности, если использовать анимации с различными фильтрами отображения, то лучше использовать обычный DisplayList и MovieClip. С Genome2D трудно работать и искать информацию, да и не на много производительнее. Посмотрев исходники, мне стало понятно, что эти движки – очень жесткая реализация возможностей Stage3D. Решил посмотреть на сам Stage3D.
Воодушевил меня на это bunnymark, разработанный на основе примера от Adobe – GPUSprite. Столько спрайтов скачет на экране, мне стало сразу интересно как.
Посмотрел этот небольшой движок (GPUSprite). В принципе почти все для счастья есть (камера, спрайты, вращение, перемещение, масштабирование, прозрачность), плюс все возможности, какие сам допишешь. Не хватало для маломальского движка в примере анимаций, нескольких фильтров отображения, ну и управления всеми возможностями.
Казалось бы, мало, но сделать это не так просто. Есть некоторые проблемы, исходящие из принципа работы с видеокартой. Можно для каждого спрайта выделять свой объект видеокарты, но это работает не так уж быстро, за то можно спокойно накладывать любые пиксельные шейдеры на конкретный спрайт и линейно наращивать количество спрайтов. Побольше спрайтов можно вывести если в одном объекте видеокарты хранить несколько спрайтов, если будем представлять спрайты в виде прямоугольников, то нам понадобится 4 вершины на спрайт. Но есть ограничение в количестве вершин объекта видеокарты, ну и можно привязать ограниченное число текстур (спрайтшитов). Для тех настроек, что применял я для большего охвата устройств получается 16384 спрайтов на объект и ограничился одной текстурой.
Также необходима сортировка по глубине отображения спрайтов. Из этого всего возникает такая картина:
• Перебираем спрайты в очередности прорисовки;
• Для первого спрайта создаем объект видеокарты и привязываем связанный спрайтшит в виде текстуры;
• Смотрим на следующий спрайт: если он из другого спрайтшита, заполнен лимит в 16384 спрайтов в объекте или требует другого пиксельного шейдера для эффектов отображения, то создаем новый объект видеокарты.
Управлять всем этим делом не просто, да и требует времени на обработку. Но можно делать и по-другому – не превращать спрайтшит как есть в текстуру, а создавать текстуру по мере отрисовки необходимыми спрайтами, и здесь свои минусы.
Способов я перебрал много разных, и в каждом были свои плюсы и минусы. В конце концов я убрал почти всю автоматическую обработку ради ручного управления. Сложно в применении, но КПД хороший. Иначе все что-то вроде Starling получается по производительности.
Сделал поддержку покадровой анимации и программной (костной анимации) и небольшие программы для преобразования MovieClip’ов из Adobe Animate в спрайтшиты и файлы описаний программной и покадровой анимации.
Потом хотел для элементов GUI использовать обычный stage, но это тормозило, отвлекся на разработку GPUGUI движка простенького и конвертором в растровые шрифты. С текстом вообще сложно тоже. Для простых редко меняющихся фраз сделал авто формирование спрайта путем отрисовки TextField в BitmapData.
Выводы
Развлекся, конечно, как мог. Десятки велосипедов наделал, но было увлекательно, и это все-таки хобби. Еще было несколько проблем с особенностью поведения Stage3D на Android. Например, при горизонтальной ориентации экрана, если во время игры кто-то позвонит, то после возвращения в игру остается белый экран, ну или такой цвет, какой вы выбрали в настройках фона по умолчанию. Притом можно тыкать на невидимые кнопки, слушать звуки и обычный stage работает, и весь код приложения функционирует, просто ничего не отображается. Об этой проблеме есть статьи в интернете.
Публикация в Google Play тоже веселое занятие, вроде все по-русски написано, но ничего так просто не понять и полезно почитать пояснения на сторонних сайтах опытных людей. Интерфейс китайцы им, наверно, сочиняют.
Для испытания всего этого я разработал простенькую аркаду «Древние Руны» и опубликовал ее на Google Play.
Пока займусь другими увлечениями, а потом интересно разработать небольшую онлайн игрушку для мобильных.
Вот, если интересно, пример apk бенчмарка от старлинга (я поменял только статичные картинки на анимации, возможно, там что-то можно ускорить) и пример движка на основе GPUSprite от Adobe с анимацией
Источник
Adobe Air
Adobe Air – долгожданная программа для разработки приложений теперь и на андроид от лучшего разработчика Adobe Systems. Наслаждение PC и Mac контентом на своем смартфоне или планшете не составляет теперь особого труда. Все для вас!
Оценка редакции
Оценка 2 пользователей
Требования к v 31.0.0.85
Скачать программу Adobe Air
v31.0.0.85 Оригинал
v31.0.0.81 Оригинал
v21.0.0.176 Оригинал
Дата обновления: 20 августа 2018
ANTIN
BraveAmbush
cd1
Aksel Manyface
Чтобы оставлять комментарии,
При установке пишет, что файл поврежден! Помогите!
спасибо за программу и доставленное удовольствие от общения со своим смартфоном,который перестал глючить на целом ряде игр.
Теперь и на андрюшу?? Поверить не могу. Вы не шутите?? Она на маркете лежит вечность, качай не хочу.
Те кто ищут программу похожую на adobe flash player могут эту прогу не скачивать посколку она только выполняет функцию Play Market который и так у свех стоит. И ещё не знаю как у вас, но у меня она файлы типа «swf» оне открывает, сам проверил. Так что облом ребята, а от оценки я воздержусь. ((
Источник
AIR для всех
Цель данного обзора — дать описания 20-ти самым популярным AIR приложениям.
Что такое Adobe AIR
Рабочая среда Adobe® AIR™ позволит вам использовать ваши любимые web-приложения в любое время. Так как для функционирования приложений Adobe AIR на вашем компьютере наличие web-браузера не требуется, вы сможете использовать все преимущества настольных приложений.
Такие компании как eBay* и AOL* используют Adobe AIR для создания эффектных приложений, которые дают вам возможность воспользоваться предлагаемыми им сервисами непосредственно на рабочем столе.
Другими словами, Adobe AIR делает приложения более удобными, мощными и эффективными.
Установка
Для установки приложений обязательно нужно установить Adobe AIR (желательно последнюю версию).
Процесс установки Adobe AIR прост. Возможно, вы уже произвели его установку. В противном случае вы сможете автоматически это сделать при загрузке приложения* на базе Adobe AIR. Разрешите программе продолжить установку. Больше от вас ничего не потребуется. В некоторых условиях вы можете произвести установку Adobe AIR вручную.
Обзор
Acrobat.com представляет собой набор онлайн сервисов — совместное использование файлов и их хранения, PDF Converter, онлайновый текстовый редактор и веб-конференцию — вы можете использовать это для создания и обмена документами, общаться в режиме реального времени, а также упростить работу с другими людьми из любой точки мира. Чтобы узнать больше о Acrobat.com посетите www.adobe.com/acom. Версия Adobe AIR Acrobat.com предоставляет простой способ взаимодействия с Acrobat.com путем перетаскивания файлов и папок с локального компьютера прямо на ваш аккаунт Acrobat.com, предварительного просмотра, обмена или публикации файлов с компьютера. Приложение может быть сведено к виджету на рабочем столе и обеспечивать легкий доступ к услугам Acrobat.com.
Загрузив последнюю версию Desktop виджета AOL Music Featuring Top 100, вы получите доступ к «горячему» видео, музыке, etc.
eBay Desktop представляет собой приложение, построенное на AIR, которое обеспечивает возможность делать покупки в eBay, ведущем мировом онлайн рынке.
Agile Agenda — программа является утилитой планирования проектов. Программное обеспечение способно к динамической адаптации к меняющимся условиям, которые происходят во время жизненного цикла проекта.
Agile Agenda поддерживает обмен данными через XML, PDF.
Icon Generator представляет собой маленькое приложение, которое позволяет создавать иконки в стиле Web 2.0, всего в 3 шага.
*Выберите цвет
*Введите символы
*Сохраните
Получите лучшие данные о погоде на рабочем столе.
Интерактивное приложение для создания «гармоничного разнообразия цветов» (как-то так).
Настраиваемый, кросс-платформенный Desktop Player.
TweetDeck позволяет следить за тем, что происходит сейчас, соединяя вас с вашими контактами через Twitter, Facebook и многое другое.
EarthBrowser является инновационным моделированием Земли, которое позволяет легко ориентироваться 3-ёх мерном мире, в режиме реального времени. Live землетрясения, спутники, веб-камеры, извержения вулканов и текущая анимация облаков.
Klok является личным отслеживанием работы.
Как работает? Нажимаем кнопку когда начинаем работать, затем нажимаем когда закончили какую-либо работу — таким образом можно понять насколько долго мы выполняем ту или иную работу/задачу.
Color Browser предназначен для организации любимых цветовых палитр.
Наслаждайтесь Java презентациями в полноэкранном режиме.
DeskTube это приложение для YouTube.
Возможность поиска / просмотра / загрузки видео, просмотра комментариев, просмотра персонального списка воспроизведения, просмотра личных подписок, запись видео, просмотр обновлений Twitter, Facebook, а так же просмотр видео потока HD.
Не можете найти все ваши ярлыки? Не беспокойтесь. Храните их в одном месте!
Представляем Adobe App, удивительный новый инструмент от Adobe, который позволяет собрать ярлыки в одном месте, которые нужны на вашем рабочем столе всегда.
Скачайте это приложения для мгновенного доступа к полному архиву прошлых и нынешних лауреатов, ежегодного списка «Самых Влиятельных Людей Мира».
Прочтите статьи, просмотрите фотографии/видео и многое другое.
The Adobe Developer Connection Developer Desktop (ADC Desktop) представляет собой приложение Adobe AIR, которое обеспечивает целый ряд полезных ресурсов для разработчиков. Вы можете легко отслеживать и получать уведомления на рабочий стол о изменениях, ошибках.
Кроме того, можно изучить и отслеживать агрегированные компоненты Flex на рабочем столе, или вы можете использовать встроенный читатель RSS для просмотра новостей и каналов, а также получить обновления, как только они произойдут. Наконец, вы можете найти Adobe групп пользователей и текущие события через группу пользователей и события на карте.
Добро пожаловать в будущее. Теперь Вы можете читать самые интересные журналистские статьи, где бы вы не находились.
RichFLV let`s позволяет редактировать FLV файлы, часть функций:
* Читать FLV Метаданные
* Чтение / Изменение / Удаление cuepoints
* FLVs Cut
* Преобразование звука из FLV в MP3
* Преобразование FLV в SWF
* Изменение звука FLV файлов
1) Измерение объектов экрана в пикселях с использованием как мыши, так и клавиатуры.
2) Предварительный просмотр дизайна шкуры и пресетов.
3) Multi-Screen Support.
4) Автоматическое обновление.
5) Быстрое руководство.
PS: Просмотреть остальные приложения вы можете ЗДЕСЬ.
Источник