EXL's Developer Blog

Рубрики

Архивы

В графическом окружении рабочего стола KDE Plasma 5 для дистрибутивов GNU/Linux появилась замечательная возможность создания анимированных обоев с использованием технологии Qt Quick и декларативного скриптового языка QML. Благодаря переходу KDE Plasma 5 на современный и богатый возможностями фреймворк Qt 5, в новой версии Qt Quick 2.0 анимированные обои стали не только бережнее относиться к ресурсам компьютера, но и получили поддержку множества новых переходов, эффектов, шейдеров и даже системы частиц. Помимо этого увеличился FPS и повысилась плавность самой анимации.



Анимированные обои Bezier Clock на рабочем столе KDE Plasma 5.

Так как я уже достаточно давно являюсь счастливым пользователем KDE, я решил реализовать что-нибудь интересное для этого окружения, такое, чтобы радовался глаз. Создать анимированные обои с красивой анимацией было бы весьма кстати, поскольку стандартные совсем скучные и не демонстрируют мощь и функциональность технологии Qt Quick, а я как раз хотел опробовать язык программирования QML в разработке прикладных приложений.

Читать далее

Когда-то давно я учился в старших классах школы и у меня был очень популярный в то время мобильный телефон: 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.

Читать далее

История игры 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. Несмотря на своё примитивное оформление и простейший геймплей, игрушка очень сильно затягивала и я часто соревновался с другом в том, кто больше наберёт в ней очков и попадёт в таблицу рекордов.

Читать далее

Игра 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-версии порта.

Читать далее

Несмотря на то, что с момента выхода на мобильный рынок телефона Motorola E398 прошло целых 12 лет, этот гаджет пользуется спросом и по сей день. Ностальгия и воспоминания о беззаботной юности — одни из самых сильных чувств и сегодняшняя молодёжь, натерпевшись современных девайсов с огромными сенсорными экранами, нередко вспоминает о тех устройствах, которыми они или их друзья когда-то пользовались в школах и университетах. Им приходит в голову мысль купить подобное устройство, чтобы пользоваться им как вторым телефоном, либо просто поставить на полку. Часто объектом такого вожделения становятся «народные» телефоны, имевшие в былые времена огромную популярность в странах СНГ. К ним можно отнести такие модели, как Nokia 3310, Nokia 6230i, Samsung X100, Siemens A60/C60, Motorola C350, Motorola RAZR V3, Sony Ericsson K750i и, конечно же, Motorola E398. В своё время о громком звуке из динамиков E398 ходило множество легенд, а благодаря тому, что этот телефон был практически у каждого второго меломана, энтузиастами для него было выпущено огромное количество всевозможных кастомных прошивок, патчей и эльфов.



Телефон Motorola E398 и оригинальная коробка.

К сожалению, купить сейчас E398 в хорошем состоянии с рук очень сложно, так как корпус, блок цифровой клавиатуры и джойстик полностью теряют товарный вид за год-другой активного использования. В основном проблемы возникают из-за покрытия Soft-touch, благодаря которому телефон приятно держать в руке, но со временем покрытие начинает стираться и облазить. Такие телефоны массово скупают в Китае, вынимают из них все внутренности, одевают в новые неоригинальные корпуса и продают под видом новых. Но правильнее было бы назвать их Refurbished или «восстановленные». Именно такими аппаратами забиты сейчас все сайты продающие якобы «новые» E398. Часто покупка подобного китайского гаджета портит всё настроение — устройство приходит в скрипящем корпусе, с кривой локализацией клавиатуры и с перевёрнутой клавишей меню. Панельки царапаются и разваливаются буквально за месяц использования и телефон после этого забрасывается на дальнюю полку, а потраченные на него денежные средства становится жаль. Именно поэтому я советую людям не торопиться с покупкой восстановленного аппарата по объявлению в первом попавшемся интернет-магазине, а рассмотреть различные варианты. Например, иногда попадаются телефоны которыми пользовались весьма аккуратно и которые ещё сохранили свой товарный вид. Оригинальный корпус всегда лучше дешёвого китайского барахла, сделанного на коленке. Очень редко на различных аукционах попадаются практически новые Motorola E398, как нереализованные остатки со складов салонов сотовой связи, именно о таком случае я и хочу поведать.

Читать далее

Создание игры «Fruit’Y — Playing with edibles» было сильно вдохновлено классической серией игр Gem’X от Kaiko. Эти игры выходили на таких платформах, как Commodore Amiga 500, Commodore 64 и Atari ST. Fruit’Y впервые была продемонстрирована на мероприятии Revision 2015 demoparty, где участвовала в конкурсе и заняла пятое место в номинации Other Competitions/Game. Осенью 2015 года по просьбе Kojote из RetroGuru я портировал эту игру и на платформу MotoMAGX.



Хотя строгая мама запрещает тигрёнку Sheran’у играть с едой и лакомствами, невозможно удержать маленького хищника от его любимого развлечения. Sheran находит в глубоких джунглях блестящие, замечательно пахнущие свежие фрукты и не может оставаться в стороне: обязательно их попробует. Давайте поддержим тигрёнка и поможем ему насладиться вкусными дарами джунглей.

Читать далее

Эта статья достаточно долго провалялась у меня в черновиках и так и осталась незаконченной. И вот, спустя три года, я обнаружил её, разгребая залежи своих BackUp’ов. Простенький интерфейс старого доброго OPIE на скриншотах так меня обрадовал и навеял столько хороших воспоминаний, что я незамедлительно решил довести статью до ума и опубликовать её в блоге. К сожалению, я уже давно не являюсь владельцем портативной игровой приставки Ritmix RZX-50, но возможно ещё остались счастливые обладатели этого устройства, которым будет интересна нижеизложенная информация.

Расшифровывается аббревиатура OPIE как Open Palmtop Integrated Environment — это графический интерфейс с открытым исходным кодом, предназначенный для работы на карманных компьютерах или любых других устройствах, работающих на ядре Linux. В основном он использовался на коммуникаторах и PDA, произведенных фирмой Palm, а также на устройствах Sharp Zaurus. На самом деле OPIE является форком Qtopia — окружения для встраиваемых систем, которое когда-то разрабатывала ныне почившая компания Trolltech. OPIE изначально задумывался как графическое окружение для дистрибутива операционной системы GNU/Linux под названием Familiar. Familiar, в свою очередь, предназначался для работы на различных карманных компьютерах и предлагал на выбор два графических окружения — GPE и, соответственно, OPIE. Благодаря тому, что OPIE работает в режиме Framebuffer’а и не использует в своей работе оконную систему X Window System, на слабых устройствах удается сэкономить немного памяти и повысить отзывчивость интерфейса. Помимо этого преимуществом OPIE является бинарная совместимость с Qtopia. OPIE может быть установлен в самые различные карманные компьютеры или даже на мобильные телефоны, например, он мог запускаться параллельно EZX-окружению в смартфонах Motorola E2/E6/A1200/E680i или являться полноценной оболочкой в Siemens SX1.



Внешний вид интерфейса OPIE: Одна из вкладок Launcher’а и приложение opie-console, являющееся эмулятором терминала.

Последняя версия OPIE — 1.2.5, она датирована концом 2010 года. Увы, проект давным-давно не развивается и считается практически мёртвым. Функциональность этого графического окружения застряла где-то в 2005-2006 годах, и чтобы допилить его до юзабельного состояния на конкретном устройстве, нужно потратить очень много собственных сил и времени. Но запуск OPIE на таком гаджете, как Ritmix RZX-50, как говорится, just for fun, может быть интересным занятием на несколько вечеров. Ведь эта графическая оболочка своего рода одна из ветвей истории развития интерфейсов для мобильных устройств и встраиваемых систем.

Читать далее

Игра «Xump — The Final Run» является простой мультиплатформенной головоломкой от команды RetroGuru, которую я портировал на устройства, работающие на платформе MotoMAGX. Первоначально игра была продемонстрирована на мероприятии Psilocybin Development в далёком 2005 году. Позже Xump подвергся тотальной переработке, был улучшен практически каждый аспект игры: новая графика, новые уровни, новая музыка, новые возможности, всё новое…



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

Читать далее

Когда-то давно я портировал на платформу 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 мной было реализовано простейшее сенсорное управление.

Читать далее

Почему-то я давно не писал о портировании old-school игрушек от команды RetroGuru на платформу MotoMAGX. Восполняю упущенное, хотя уже давно не являюсь владельцем устройства на этой интересной платформе. В принципе, после того как мои патчи «вошли в апстрим», всё портирование сводится к обычной сборке исполнительного файла из исходников (+/- несколько несущественных исправлений) и к созданию установочного MGX-пакета. Игра использует кросс-платформенную библиотеку SDL для вывода графики и библиотеку libmodplug вкупе с SDL_mixer для проигрывания классной внутриигровой трекерной музыки. Sqrxz 4 — Cold Cash был явлен миру на мероприятии Revision 2014 demoparty (на Пасху 2014 года) для 13 платформ: Windows (32-Bit), Linux (32-Bit, 64-Bit), Wiz, PSP, MotoMAGX, Dreamcast, GCW Zero, MacOS X (32-Bit, 64-Bit) / Intel, Amiga OS4, MorphOS, Symbian OS Series 60, Symbian OS UIQ3, Raspberry Pi, Caanoo, GP2x и OpenPandora. Игре удалось заполучить пятое место на этом конкурсе в номинации Other Competitions/Game.



Многие поклонники хардкорных видеоигр в жанре Jump’n’Think потребовали продолжение и RetroGuru Team выполнили их требование. Четвёртая часть франшизы про храброго кролика Sqrxz называется Cold Cash и переносит вас на холодный ледяной остров. Чтобы вернуться домой вам предстоит собрать все блестящие шарики изо льда на уровне и обхитрить различных неприятелей: злых пингвинов, тревожных подводных существ, призраков и других опасных врагов.

Читать далее