Когда речь идет о бизнес-приложениях, принято писать несколько копий для каждой из популярных мобильных платформ.
Это вполне оправдано, поскольку платформы Android/iOS/etc настолько специфичны, что реализовать принцип «Код сразу — запускать везде» достаточно сложно.
Однако ситуация совершенно иная, когда речь идет о мобильных играх.
В играх обычно есть свой стиль графических элементов — кнопок, меню и т. д., а вся графика построена либо на спрайтах, либо на 3D (заметьте — далее мы будем говорить только о 2D-движках).
Возникает вполне естественное желание один раз написать приложение и собрать его под разные платформы.
Кроссплатформенная структура MOAI поможет нам добиться этого.
Прежде всего, почему МОАИ? Эта основа была выбрана целенаправленно.
Для себя я решил, что мне нужен двигатель, который:
- Кросс-платформенный
- Использует аппаратное ускорение OpenGL.
- Логика игры реализована на скриптовом языке (желательно LUA).
- Должна быть возможность писать расширения на C/C++.
- Желательно с открытым исходным кодом.
Последнее было связано не с желанием сэкономить, а с возможностью редактировать сам движок в случае каких-то критических ошибок.
Среди кандидатов на фреймворки я рассматривал Corona SDK, Gideros, Cocos2d-X (да, его можно написать на Lua) и MOAI. Если сравнивать Corona SDK и Gideros, то на мой взгляд Gideros предпочтительнее.
в комплект входят различные инструменты, в том числе простая IDE, есть возможность писать плагины, а бесплатный режим отличается от платного только наличием заставки гидероса.
Корона в бесплатном режиме ставит таймаут на сборку (но не на эмуляторе), и после запуска появляется диалог, что нужно купить Корону, дальше диалога не будет. Писать плагины можно только после покупки Corona Enterprise, цена на которую вообще не указана.
UPD: как мне написал пользователь Lerg, их продукт в последнее время немного изменился: habrahabr.ru/post/175689 Но все же в чем-то Corona лучше — у нее большее сообщество, да и сам движок более оптимизирован (загрузка спрайтов и т. д.).
Выбирая между Cocos2d-X и MOAI, я выбрал последний, потому что.
он изначально разрабатывался как движок Lua.
Монтаж
Давайте клонируем это здесь github.com/moai/moai-dev или, еще лучше, делаем вилку.Бинарную сборку ставить не рекомендую, так как если вас не интересует доработка движка, то скорее всего лучше попробовать Gideros. Затем откройте проект в Xcode moai-sdk/xcode/osx/MoaiSample.xcodeproj и скомпилируйте двоичный файл moai. Внимание, существуют десктопные версии MOAI как для Windows, так и для Linux! Но собрать iOS-проект можно, конечно, только на Mac. После установки moai попробуем запустить пример: Перейдите в каталог /usr/local/moai-sdk/samples/hello-moai и запустите пример.
moai main.lua
На этом этапе программист, выполняющий разработку для Android или iOS, должен получить огромное удовольствие от того, как работает пример.
Оно начинается мгновенно! Никаких компиляций, перепаковок и т.п.
Я запустил пример и сразу увидел результат. Честно говоря, оно того стоит!
Андроид
Для запуска приложения на Android или iOS необходимо создать соответствующие сборки.Для Android все делается довольно просто — с помощью скрипта moai-sdk/ant/make-host.sh создаем базовый Android-проект, для скрипта можно указать дополнительные параметры.
Базовый проект — это исходный код Android-приложения, который содержит библиотеки Moai, а также скрипт для упаковки lua-файлов, графики и других файлов, необходимых вашей программе, в конечный *.
apk.
Скопируйте полученный unkown-host в нужное место (у меня это каталог ~/Projects), укажите путь к Android SDK в settings-local.sh: android_sdk_root="/usr/local/android-sdk"
и путь, где находится основной проект Lua src_dirs=( "/Users/alex/Projects/myproject" )
Теперь, чтобы запустить приложение на Android, запустите скрипт run-host.sh.
Нужно иметь в виду, что сборщик довольно простой — он просто берет исходники Android-приложения, копирует в них проект MOAI и собирает apk. Те.
Если вам нужно включить поддержку акселерометра в вашем приложении, вам необходимо явно отредактировать MainActivity.java в исходных кодах базового проекта.
iOS
Под iOS механизм примерно такой же, но такого удобного скрипта для создания нового хоста нет. Предлагается скопировать пример проекта и изменить его.В принципе, это несложно, но лично мне довольно неудобно, когда нужно возиться с графическими настройками проекта в Xcode. Внимание — свежие исходники MOAI из репозитория (что неудивительно) могут содержать ошибки, поэтому если не получается собрать проект, то попробуйте.
Поэтому, если вы не хотите тоже с этим разбираться, то либо проверяйте стабильные ревизии (по тегам), либо клонируйте мой форк ( https://github.com/Nepherhotep/moai-dev ), который редко обновляется и поэтому более стабилен.
Дальнейшая разработка выглядит так: вы пишете и тестируете код на работающей машине, а затем собираете его для Android/iOS перед выпуском версии.
Полезный
getmoai.com - Официальный сайт МОАИ github.com/moai/moai-dev — исходники на GitHub github.com/ymobe/rapanui/tree/master/rapanui-sdk - структура высокого уровня с использованием MOAI github.com/derickd/moaigui — библиотека виджетов для MOAI github.com/Nepherhotep/terevaka - еще один высокоуровневый фреймворк для МОАИ, самодельный и с вкусностями.Подробности в моей следующей статье habrahabr.ru/post/176771 Теги: #moai sdk #iOS #Android #Lua #разработка iOS #Разработка мобильных приложений #Разработка Android
-
Интернет-Магазин Контактных Линз «Эксоленса»
19 Oct, 24