Вы когда-нибудь задумывались о переносе игры для iOS на планшет BlackBerry? PlayBook ? Портировав свою игру Pop Corny, я хочу поделиться с вами некоторыми подробностями этого процесса.
Основы Возможно, вы, как и я ранее, считаете, что PlayBook имеет определенное отношение к технологиям, заложенным в телефоны BlackBerry. Я так же думал, поэтому долго не рассматривал этот планшет при переносе своих игр.
Фактически PlayBook основан на новой платформе, созданной RIM на базе операционной системы QNX. Он также будет использоваться в новых смартфонах под управлением ОС BlackBerry 10. Несмотря на опасения, что RIM, как и Google, заставит разработчиков использовать Java, и добавила поддержку нативных инструментов разработки гораздо позже, реальность оказалась гораздо лучше.
Канадская компания предлагает родная среда разработки (NDK — Native Development Kit), представляющий собой комплексное решение для создания программного обеспечения для вашего планшета.
В отличие от Android, для которого NDK является расширением основной среды разработки, поддерживает минимальный функционал и в большинстве случаев требует доступа к Java, для PlayBok можно писать нативные приложения, не полагаясь на Java. NDK предоставляет полный API для всего, что вам нужно: от взаимодействия с экраном и инструментами ввода до внутриигровых покупок.
Среда разработки, предоставляемая RIM, называется QNX Momentics и основана на Eclipse, но при желании вы можете делать все с помощью утилит командной строки.
Я выбрал Momentics, хотя считаю Eclipse медленным и неповоротливым, поскольку его удобно разрабатывать на C/C++ (есть отладчик, профилировщик и т. д.).
Кроме того, я хотел посмотреть, как долго меня это прослужит, прежде чем я начну пропускать командную строку.
Удивительно, но впервые за весь мой опыт работы с Eclipse я не пожалел о выбранном пути.
Теперь мы рассмотрим основные аспекты переноса игрового приложения с iOS на PlayBook. Ввод данных Обработка ввода в ОС PlayBook очень проста, и, как это делает iOS, у вас не должно возникнуть особых проблем.
Как и любое другое событие в системе, события касания экрана представлены структурой bps_event_t, которую вы получаете с помощью bps_get_event().
Это событие принадлежит «области экрана», и вы запрашиваете его данные с помощью набора функций screen_get_event_property*().
Приведенный выше пример кода — это все, что вам нужно для получения базовой информации о сенсорном экране.int touch_state; int id; int position[2]; screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_TYPE, &touch_state); screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_TOUCH_ID, &id); screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_SOURCE_POSITION, position);
touch_state может иметь несколько типов: SCREEN_EVENT_MTOUCH_TOUCH, SCREEN_EVENT_MTOUCH_MOVE и SCREEN_EVENT_MTOUCH_RELEASE. Их можно сравнить с событиями «начало касания/изменение позиции/окончание касания» в iOS, однако стоит отметить, что события «отмена» нет. Плюс, поскольку вы проводите опрос на мероприятие, вы получаете его в нужной вам ветке и не испытываете тех проблем, которые лично у меня возникли при портировании игры с iOS на Android. Поскольку в PlayBook нет базовых аппаратных клавиш, обрабатывать их нет необходимости.
Звук Как и iOS, ОС PlayBook поддерживает OpenAL. Если вы используете эту открытую библиотеку для работы со звуком, вам не придется ничего менять при переносе вашей программы.
Операционная система планшета также поддерживает ALUT (OpenAL Utility Kit), если он вам понадобится.
Графика
Как и следовало ожидать, PlayBook без проблем поддерживает OpenGL ES (версии 1.1 и 2.0).
В состав NDK входит простой пример приложения, использующего OpenGL, которое обрабатывает все нюансы настройки экрана.
Благодаря простому, но эффективному дизайну API этот пример является самодостаточным и не требует более детального рассмотрения.
Планшет имеет экран с разрешением 1024х600 пикселей и соотношением сторон почти 16:9, в результате чего он уже, чем экран в нынешних iPhone и, конечно же, iPad. В зависимости от вашей игры вам придется либо перепроектировать пользовательский интерфейс для этого разрешения, либо добавить черные полосы по краям.
В случае с Pop Corny он поддерживает соотношение сторон от 1,33 до 1,50, а интерфейс автоматически подстраивается под него.
Поэтому для версии игры для PlayBook я добавил черные полосы, тем самым уменьшив соотношение сторон с 1,7 до 1,50. Количество пикселей на экране примерно сопоставимо с количеством пикселей iPhone 4 и iPad 2, поэтому, если у вас есть графика для этих устройств, вы можете без особых проблем использовать ее для PlayBook. Если ваша игра оптимизирована под разрешение экрана iPad 3, вам, скорее всего, придется уменьшить размер графических элементов, чтобы не тратить драгоценную память планшета пользователя.
Содержание Загрузка контента не может быть проще: не нужно копаться в Zip-файлах, отключать сжатие, определенные расширения или менеджеры ресурсов (привет, Android!).
Приложения распространяются в виде файлов .
bar, которые по сути представляют собой zip-архивы.
Во время установки содержимое файла .
bar не сжимается, и приложение может получить доступ к файловой системе любым POSIX-совместимым способом.
Если вы хотите загрузить файлы, прилагаемые к файлу .
bar (текстуры, звуки и т. д.), вы найдете их по следующему пути: .
/приложение/родной/ Если вы хотите создавать файлы и сохранять данные вашего приложения, поместите их в: .
/данные/ Это не могло быть проще.
Таблицы лидеров и достижения OpenFeint (обычно называемый Gee) недоступен для PlayBook, и, конечно же, то же самое касается Apple Game Center. RIM предлагает собственное решение под названием Скорелолуп , который поддерживает профили игроков, таблицы лидеров, достижения и матчи.
В заключение Для меня PlayBook стал самой простой платформой, на которую я когда-либо портировал свои разработки.
Я снимаю шляпу перед инженерами RIM, которые выпустили POSIX-совместимую платформу, поддерживающую все открытые фреймворки, которые так любят разработчики.
Для большинства других платформ вы должны добавить в свой проект все библиотеки, которые нужны вашему исполняемому файлу.
На PlayBook libpng, libjpeg, freetype и другие уже включены в систему и готовы к использованию.
Никаких проблем с компиляцией, увеличением размера вашего экзешника за счет статической компоновки с библиотеками, уже присутствующими в системе.
Однако сторонняя поддержка PlayBook не так хороша, как для других платформ.
Например, для сбора статистики в iOS я использую отличный сервис flurry.com, который, правда, не «дружит» с планшетом RIM. Этот сервис обеспечивает поддержку BlackBerry через Java, но мне совсем не хочется иметь дело с этим языком.
За публикацию приложений в AppWorld с вас не взимается плата, в отличие от магазинов iOS и Android. По завершению портирования вы регистрируетесь, получаете ключи для ЭЦП и публикуете свою разработку.
Однако AppWorld использует сертификацию программ, аналогичную Apple Store. В заключение хочу отметить, что результат стоил затраченных усилий.
Процесс портирования занял у меня 2-3 дня.
Советую всем независимым разработчикам обратить внимание на эту платформу.
Также стоит учитывать, что магазины iOS и Android полны приложений, поэтому PlayBook может стать хорошей возможностью привлечь внимание к вашей игре.
С момента публикации и до написания этой статьи Pop Corny находился в списке раздела «Новинки» 4 дня.
Если вы независимый разработчик, вы прекрасно знаете, насколько важно, чтобы ваш продукт был виден покупателю как можно дольше.
P.S. Удивлен ОС PlayBook Не могу передать, насколько меня впечатлил планшет RIM. Я считаю, что платформа, которая позволяет разработчику, который никогда раньше с этим не имел дела, портировать собственную игру за 2-3 дня, сделана замечательно.
Однако еще больше меня удивила скорость работы Pop Corny на PlayBook, которая оказалась заметно быстрее, чем на iPad 2. В подтверждение своих слов я записал видео параллельного запуска игры на двух планшетах.
Поскольку обе версии Pop Corny работают со скоростью 60 кадров в секунду, трудно заметить какие-либо различия в игровом процессе.
Стоит учитывать, что планшеты имеют примерно равные аппаратные возможности (двухъядерный процессор Cortex-A9, работающий на частоте 1 ГГц) и игра сначала вышла на iOS, а уже потом портирована на PlayBook. Но при этом устройство RIM успевает запускать игру (загружать текстуры, распаковывать их и передавать в GPU, загружать звуки и т. д.) на 30% быстрее! Я считаю это невероятным достижением.
Оригинальный текст: kalogirou.net/2012/08/31/porting-your-ios-game-to-blackberry-playbook-and-future-bb10-phones , kalogirou.net/2012/08/25/impressed-by-the-new-blackberry-os-or-how-ios-ate-dust Теги: #BlackBerry #playbook #iOS #портирование #портирование #портирование #Разработка сайтов #Разработка игр
-
Rms – Что Еще Ждет Ритейлеров?
19 Oct, 24 -
Java: Делаем Валгаллу Сами
19 Oct, 24 -
Конкурс На Лучший Скриншот
19 Oct, 24 -
Обновляемые Смарт-Контракты Ethereum
19 Oct, 24