Архив рубрики: Android

Посты об этой замечательной OS, захватившей рынок мобильных гаджетов.

Портирование Gish на Android OS: использование библиотек OpenAL и GL4ES

В средних классах школы я любил прогуливать скучные гуманитарные предметы и вместо них проходить самые разные компьютерные игры. Но одному играть было чертовски скучно, поэтому я часто приходил в гости к своему другу. Мы покупали различные вкусности, собирались вместе в его комнате, включали компьютер и погружались в захватывающие игровые миры. Как-то раз, холодным зимним вечером, мой одноклассник показал мне забавную и интересную игру под названием Gish, которую он недавно скачал в Интернете. Это была достаточно своеобразная двумерная аркада, отличительной особенностью которой являлся необычный одноименный персонаж, представляющий собой небольшой жидкий шарик из чёрной смолы. К сожалению, сейчас я не помню, смогли мы тогда пройти эту замечательную игру до конца или нет (она была достаточно хардкорной), но её мрачный сеттинг, чёрный юмор, классная музыка и необыкновенные головоломки, связанные с физикой игрового мира, остались в моей памяти навсегда. В графическом плане Gish был достаточно простым, но благодаря оригинальной рисовке, интересным локациям и классной работе освещения, создавалось впечатление достаточно современной игры. Нам с другом было весело играть в Gish’а по очереди, проходя сложные уровни всё дальше и дальше. Таким образом, эта игра стала одной из моих любимых аркад для PC и отличным платформером для небольшой компании друзей.



Порт игры Gish, запущенный на Android-устройстве Motorola Photon Q.

История разработки инди-игры Gish берёт своё начало в 2003 году. Именно тогда независимая компания Chronic Logic, занимающаяся изданием и разработкой видеоигр, заключила контракт с художником и геймдизайнером Edmund’ом McMillen’ом, который впоследствии станет известным благодаря таким популярным инди-играм, как Super Meat Boy и The Binding of Isaac. Пока Edmund работал над графикой, программисты Alex Austin (под псевдонимом Cryptic Sea) и Josiah Pisciotta занимались написанием игрового движка. Разработка Gish была завершена весной 2004 года и уже в мае Chronic Logic выпустила игру на рынок США, где аркада получила восторженные и положительные отзывы критиков. Благодаря успеху игры, её дистрибуцией в 2004 году занялась такая компания, как Stardock, а в 2007 году Gish был добавлен в библиотеку игр в Steam’е. Кроме того, в 2010 году платформер был включен в первый сборник инди-игр под названием Humble Indie Bundle, который собрал более одного миллиона долларов. В знак признательности поддержавшему их сообществу, Cryptic Sea объявил о том, что исходный код игры Gish будет открыт и выпущен под лицензией GNU GPL v2.0, но ресурсы игры нужно будет приобретать отдельно.

Читать далее Портирование Gish на Android OS: использование библиотек OpenAL и GL4ES

Android, Dev

Портирование Adamant Armor Affection Adventure на Android OS

Когда-то давно, ещё до того, как была создана операционная система Android, в узких кругах гиков всего мира были распространены портативные игровые консоли, работающие под управлением GNU/Linux. Наибольшую известность из них получили девайсы от южнокорейской фирмы GamePark Holdings (GPH), которая на протяжении нескольких лет пыталась безуспешно конкурировать с Sony и её очень популярным в те времена карманным устройством PlayStation Portable в его различных вариациях. К сожалению, все крупные игровые издатели и разработчики не проявили интереса к маленькой и неизвестной компании GPH и её нескольким девайсам. А потому эти устройства так не стали популярными и не получили каких-либо эксклюзивных игр AAA-класса. Тем не менее, в этой печальной истории есть и светлый момент: портативные игровые консоли от GPH приглянулись множеству хакеров и гиков. И это не только из-за ядра Linux на борту устройства, но ещё и потому, что компания приветствовала создание игр и программ сторонними разработчиками и даже выложила в общий доступ несколько наборов SDK. Эти действия создали своеобразную атмосферу и сообщество вокруг этих девайсов и их немногочисленных обладателей. Разработчики, при спонсорской поддержке со стороны GPH и некоторых других компаний, проводили различные конкурсы, на которых писали свои собственные эксклюзивные игры и эмуляторы или делали порты уже существующих. Таким образом, изначально скудную библиотеку игр удалось значительно расширить, а в плане эмуляции консоли от GPH до сих пор могут похвастаться широкой поддержкой старых игровых платформ. Не обошла стороной устройства и демосцена, на популярном сайте-агрегаторе демок www.pouet.net для них даже было сделано несколько разделов. Несмотря на скромные продажи, у этих девайсов имеются поклонники и на просторах СНГ, они сосредоточены на нескольких русскоязычных форумах, посвящённых околоигровой тематике.



Порт игры Adamant Armor Affection Adventure, запущенный на Android-устройстве Motorola Droid 2.

В далёком 2011 году энтузиастами было организовано мероприятие RIOT Tag-Team Coding Competition, целью которого было увеличение количества Homebrew-игр на различных карманных игровых устройствах на базе ядра Linux, в том числе и на девайсах от компании GPH, которая, кстати, была основным спонсором конкурса. Одной отличительной особенностью этого мероприятия являлось то, что Homebrew-игру необходимо было разрабатывать командой, а игры от «одиночек» на конкурс не принимались. Именно поэтому двое российских разработчиков «старой школы»: Don Miguel и quasist решили объединить свои усилия и начали работать над эксклюзивным игровым проектом для актуальных на тот момент времени консолей от GPH: GP2X Wiz и GP2X Caanoo. В GPH-тусовке это были достаточно известные личности, поскольку они и раньше разрабатывали игры на родственные платформы. В 2002 году Don Miguel сделал популярную игру Super Plusha для старой и самой первой портативной консоли от GPH: GP32. Разработчик quasist был известен несколькими интересными играми под GP2X, такими как FleshChasmer: The Eve, Worship Vector и Adamant Armor Affection.

Читать далее Портирование Adamant Armor Affection Adventure на Android OS

Android, Dev

Обновления приложений и новые утилиты (октябрь 2016 — март 2017)

Достаточно давно я ничего не писал в блог, поскольку у меня не было должного настроения для этого. Но всё же я собрался и в этом посте решил описать то, над чем я работал в своё свободное время с момента публикации последней статьи об изменении дизайна сайта. Так получилось, что здесь, в основном, будут описаны улучшения и обновления моих уже существующих проектов, а не процессы создания новых. Но тем не менее, новые приложения и их описания я вынесу в самое начало этого поста. Эти программы были созданы по просьбе моих старых друзей, они получились компактными и небольшими, поэтому посвящать им отдельные и развёрнутые статьи было бы немного странно.



Лаунчеры обновлённых приложений для Android OS, скриншоты с Motorola Photon Q.

Постепенно, для некоторых приложений, над которыми я работал, накопились важные обновления, исправления некоторых ошибок и другие патчи. Я решил описать все изменения тоже в этой статье. Таким образом, она будет представлять собой небольшой дайджест произошедшего примерно за четыре месяца и будет довольно объёмной и полной. Больше всего изменений получилось для моих приложений на Android OS, поэтому я вынесу информацию о них в конец этого поста. Кроме того, обновления затронули и некоторые другие проекты, об этом тоже будет написано подробнее. Но начнём с отдельных приложений.

Читать далее Обновления приложений и новые утилиты (октябрь 2016 — март 2017)

Android, Dev, EZX, MotoMAGX, Others

Snooder 21 — мой ремейк игры Snood™ 21 для Android OS: Процесс создания

Когда-то давно я учился в старших классах школы и у меня был очень популярный в то время мобильный телефон: Motorola C350. Именно на этом телефоне я впервые и познакомился с игрой Snood™ 21. Хотя Motorola C350 был в использовании у меня совсем недолго, я всё равно успел провести очень много времени в этом интересном и своеобразном карточном пасьянсе, играя в него в различных очередях и на очень скучных уроках. На мой взгляд, Snood™ 21 является просто отличной убивалкой времени и поможет скрасить томительное ожидание в самых различных ситуациях. Спустя годы, мой лучший друг напомнил мне об этой замечательной игре и я решил сделать её ремейк для Android OS, чтобы снова иметь возможность раскладывать карты по знакомым стратегиям и на современных смартфонах.



Snooder 21 на Motorola Droid 4 и Snood™ 21 на Motorola C350.

История Snood™ 21 берёт своё начало с оригинальной игры Snood, которую разработал David M. Dobson в 1996 году для персональных компьютеров Mac от Apple. Именно с этой игры и началась история незамысловатых и забавных персонажей, которые называются Снудами. Вселенная Снудов включает в себя огромное количество самых разных настольных, карточных и аркадных игр, которые теперь доступны на официальном сайте под различные платформы. К несчастью, я не смог найти там игру, аналогичную Snood™ 21. Видимо она выходила только на мобильные телефоны от Motorola.

Читать далее Snooder 21 — мой ремейк игры Snood™ 21 для Android OS: Процесс создания

Android, Dev

Портирование AstroSmash на Android OS: декомпиляция Java ME MIDlet’а

История игры AstroSmash берёт своё начало из далёкого 1981 года. Именно тогда John Sohl разработал её для игровой консоли Intellivision от компании Mattel Electronics. Первоначально разработчик хотел выпустить простую аркаду Meteor!, которая являлась обычным клоном популярной в то время игры Asteroids, но юристы компании хотели избежать судебных притязаний и John’у Sohl’у пришлось в срочном порядке переделывать механику уже готовой игры. Так и появился на свет AstroSmash, который быстро завоевал расположение любителей поиграть в видеоигры и стал коммерчески успешной игрой. Всего было продано около миллиона копий Astrosmash, что сделало эту игру одной из самых продаваемых на приставке Intellivision. Огромная популярность дала свои результаты — по лицензии Mattel Electronics начали выходить похожие игры и для других консолей, например, AstroBlast для Atari 2600. В начале 2000-ых годов о старых-добрых играх вспомнили и производители программного обеспечения для мобильных телефонов.



Порт AstroSmash на Android OS, на фотографии Motorola Photon Q.

Впервые я столкнулся с игрой AstroSmash в 2002 или 2003 году на мобильном телефоне Motorola T720. Это был очень дорогой и функциональный девайс, который поддерживал возможность установки и запуска Java-приложений, что было большой редкостью в то время. Среди предустановленных игр на этом телефоне был и ремейк AstroSmash, выполненный на Java ME. Несмотря на своё примитивное оформление и простейший геймплей, игрушка очень сильно затягивала и я часто соревновался с другом в том, кто больше наберёт в ней очков и попадёт в таблицу рекордов.

Читать далее Портирование AstroSmash на Android OS: декомпиляция Java ME MIDlet’а

Android, Dev

Портирование Ken’s Labyrinth на Android OS с помощью библиотеки SDL 2.0

Игра Ken’s Labyrinth была разработана Ken’ом Silverman’ом и выпущена компанией Epic MegaGames в далёком 1993 году. Ken Silverman в первую очередь известен как американский программист, создавший игровой движок Build Engine для компании 3D Realms, на нём впоследствии будут выпущены такие известные игры, как Duke Nukem 3D, Blood и Shadow Warrior. Движок, используемый в Ken’s Labyrinth, является неким прародителем Build Engine, в техническом плане он сопоставим с движком Wolfenstein 3D от id Software, но имеет несколько интересных преимуществ, например, интерактивные спрайты и текстуры, благодаря которым в игре реализованы карты уровней и специальные игровые автоматы, известные как слот-машины «однорукий бандит». Спустя несколько лет после выхода игры, когда её продажи практически прекратились, Ken Silverman выложил наиболее полный дистрибутив Ken’s Labyrinth на свой сайт и игра стала доступна для свободной загрузки. Немного позднее был опубликован и её исходный код.

После открытия исходного кода Jan Lönnberg портировал игру на современные операционные системы, используя библиотеку OpenGL для вывода графики, библиотеку SDL для обработки событий ввода, а также для вывода звука и эмулятор AdLib, написанный тоже Ken’ом Silverman’ом, для воспроизведения игровой музыки. Так родился проект LAB3D/SDL, предоставляющий возможность запустить Ken’s Labyrinth на любых операционных системах, на которых доступны библиотеки OpenGL и SDL. Позже Jared Stafford, использующий никнейм jspenguin, внёс некоторые улучшения в проект LAB3D/SDL, добавив способ загрузки PNG-текстур высокого разрешения, метод рендеринга теней и световых бликов в корректной перспективе, правильную скорость анимации и множество других исправлений. В 2010 году разработчик Scott Smith, использующий никнейм Pickle, переписал рендеринг LAB3D/SDL с OpenGL на OpenGL ES, что позволило запускать Ken’s Labyrinth на различных портативных игровых устройствах, таких как GP2X Caanoo или Pandora.



Порт игры Ken’s Labyrinth, запущенный на Android-устройстве Motorola Droid 4.

Впервые в Ken’s Labyrinth я поиграл в 2010 году на портативной консоли GP2X Caanoo, имеющейся у моего друга. Меня сильно привлекают подобные старые игры, поэтому я решил портировать Ken’s Labyrinth и на своё мобильное устройство: Motorola ZN5 на платформе MotoMAGX. Увы, но этот смартфон не имел графического 3D-ускорителя с поддержкой OpenGL ES, а потому портирование без переписывания значительной части движка, отвечающей за вывод графики, было бы весьма затруднительным. Время шло, у меня появлялись новые интересные гаджеты на Android OS и вот, спустя пять лет, я вспомнил про ту неудачную попытку портирования игры и решил её повторить, но уже для современных смартфонов, которых у меня на момент написания статьи несколько: Motorola Droid 4 и Motorola Photon Q. Эти устройства на Android OS имеют на борту графические 3D-ускорители, обладающие достаточной производительностью и функциональностью для подобного рода игр.

За основу будущего проекта я решил взять исходные коды порта LAB3D/SDL, модифицированные jspenguin’ом и применить к ним патчи для поддержки OpenGL ES от Pickle: таким образом задействуются возможности OpenGL ES версии 1.0, что благоприятно отразится на списке поддерживаемых Android-устройств. Как и в оригинале, на компьютере LAB3D/SDL при своём первом запуске отображает специальный конфигуратор, где можно настроить различные опции и параметры, а после выхода из него и по повторному запуску исполнительного файла уже запускается сама игра. Я бы хотел сохранить подобное поведение приложения и в Android-версии порта.

Читать далее Портирование Ken’s Labyrinth на Android OS с помощью библиотеки SDL 2.0

Android, Dev

Портирование Spout на Android OS: первый опыт работы с NDK, JNI и OpenGL ES

Когда-то давно я портировал на платформу MotoMAGX простенькую, но сильно затягивающую игру Spout. Цель этой игрушки весьма проста: необходимо подниматься на кораблике всё выше и выше по экрану, набирая очки и сражаясь с гравитацией. Кораблик управляется с помощью реактивной струи, частички которой могут служить не только средством передвижения, но и грозным оружием. Реактивной струёй можно разрушать стены и препятствия, преграждающие путь наверх. Если управляемый вами кораблик столкнётся с преградой или упадёт в самый низ экрана, то вы проиграете. С увеличением набираемой высоты плотность расположения препятствий постепенно увеличивается, что сильно влияет на игровую сложность. Пространство, по которому поднимается кораблик, разделено на равные части, границы которых отмечены горизонтальной полоской чёрного цвета, которую, кстати, тоже нужно разрушать. На преодоление первой части пространства вам даётся ровно одна минута, а после того, как вы пересечёте чёрную черточку, к оставшемуся времени снова добавится 60 секунд. Таким образом, быстро пролетая первые части пространства, вы сможете сохранить драгоценное время для более сложных участков выше. Звучит очень просто, но на практике постоянная борьба с гравитацией и набираемой скоростью — весьма сложное испытание.



Порт игры Spout, запущенный на Android-устройстве Motorola Photon Q.

Игра настолько сильно захватила меня простотой своего исполнения и в то же время достаточной сложностью, что я решил портировать Spout и на современные устройства под управлением Android OS. В первоначальном варианте движок Spout, портированный на MotoMAGX, работал через библиотеку SDL. Благодаря этому игра могла запуститься на всей линейке MotoMAGX-устройств, для которых была портирована библиотека SDL. В случае с портированием игры на Android OS, я решил использовать только библиотеки и средства, доступные в стандартной поставке, поэтому зависимость от SDL отпала за ненадобностью. Было решено не переписывать движок Spout с языка программирования C на Java, а воспользоваться Android NDK и стандартным механизмом JNI (Java Native Interface) для взаимодействия между Java-прослойкой и нативным кодом на языке C. В качестве библиотеки для отображения игрового контекста на экране, был взят OpenGL ES; эта библиотека доступна практически в каждом Android-устройстве, которое имеет возможность аппаратного ускорения графики посредством GPU. Таких устройств большинство, Android-девайсы, которые могут обходиться только программным рендерингом, давно уже исчезли с витрин салонов сотовой связи. Игровой контекст будет рендериться на текстуру, которую я и буду выводить на экран устройства. К моему огромному сожалению, обладателей Android-устройств с эргономичной физической клавиатурой остались единицы, поэтому для удобного управления корабликом в Spout мной было реализовано простейшее сенсорное управление.

Читать далее Портирование Spout на Android OS: первый опыт работы с NDK, JNI и OpenGL ES

Android, Dev

PPSSPP — эмулятор PlayStation Portable для Android OS

Совсем недавно на просторах интернета появился интересный проект под Android OS. PPSSPP — это первый рабочий эмулятор PlayStation Portable для Android OS и MS Windows. Судя по официальному сайту, PPSSPP написан на C++ и переводит инструкции MIPS-процессора PSP в инструкции x86, x64 и ARM, используя эффективный JIT-компилятор. Таким образом, PPSSPP можно запускать на железе со слабыми техническими характеристиками: телефоны и планшеты на Android OS, в которых имеется поддержка OpenGL ES 2.0.


 

PPSSPP в данный момент находится на ранней стадии разработки и многие игры на нём не запустятся или будут работать медленно. В данный момент можно поиграть в Puzzle Bobble Deluxe и Puyo Pop Fever. Список совместимых с эмулятором игр, который будет периодически обновляться, актуальный можно посмотреть тут.

Читать далее PPSSPP — эмулятор PlayStation Portable для Android OS

Android

Запускаем Ubuntu 12.04 на Motorola Droid 4

Оказывается, практически на любом устройстве с операционной системой Android OS, можно запустить любой популярный дистрибутив GNU/Linux, конечно при условии, что имеются образы, специально подготовленные для ARM-архитектуры.



Для чего же нужен запуск полноценного дистрибутива GNU/Linux на Android OS? Самым важным преимуществом для меня является возможность мобильного компилирования различных программ, используя, например, gcc и vim. Кстати, кроме консольного редактора, можно пользоваться и привычным редактором с GUI, к примеру, gedit.

Скорость работы дистрибутива не слишком велика из-за того, что просмотр состояния дисплея завязан на VNC. Но для программ скорости вполне хватает. К тому же, на Motorola Droid 4 достаточно большой дисплей и это существенный плюс для комфортной работы. Кстати, есть недостаток такого способа запуска — звук в системе полностью отсутствует.

Читать далее Запускаем Ubuntu 12.04 на Motorola Droid 4

Android, Manuals

NullDCe — эмулятор Sega Dreamcast для Android OS

На xda-developers.com появилась утечка закрытой версии эмулятора Sega Dreamcast для Android OS. Как было сказано на форуме, один из бета-тестеров опубликовал эмулятор в интернете, просто устав ждать новых версий от разработчика, с которым не было связи с прошлого года.



Эмулятор пока очень сырой, в нем нет звука, он поддерживает только оригинальные GDI-ромы и имеет огромные проблемы с отрисовкой некоторых полигонов. Кроме этого, скорость эмуляции нестабильна и варьируется в зависимости от загруженности рендерируемой сцены.

Читать далее NullDCe — эмулятор Sega Dreamcast для Android OS

Android