Портирование 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

Обновление дизайна блога: создание шаблона Moto Juice для WordPress

Как вы уже наверное заметили, в последний месяц я много экспериментировал с внешним видом своего блога. Наконец, этот долгий этап подошёл к концу и то, что вы сегодня можете наблюдать на страницах этого ресурса, является финальной версией дизайна сайта. Скорее всего будет ещё несколько незначительных изменений и улучшений, но общая концепция останется прежней. В соответствии с современными тенденциями внешнего вида интерфейсов, дизайн блога стал более простым и «плоским», без различных градиентов и выпуклых кнопок, чтобы ничего не отвлекало от чтения полотна текстовой информации. Кроме того, яркие оранжевые цвета, раздражающие многих посетителей ресурса, были изменены на нейтральные синие и серые тона. Но для тех, кому нравился яркий оранжевый цвет, была оставлена возможность его возвращения путём переключения цветовых схем. Благодаря этому механизму удалось сделать поддержку тёмного скина, который тоже может приглянуться посетителям моего блога.



Новый дизайн ресурса, выбран скин «Серая безмятежность», скриншот сделан в браузере Safari.

Делать собственную тему с нуля для блога на движке WordPress, не имея опыта работы с ним, достаточно накладно и сложно. Поэтому было решено пойти по самому простому пути. Я попробовал найти какой-нибудь красивый и популярный WordPress-шаблон и изменив вёрстку, дизайн и функциональность, превратить его в эксклюзивную тему для моего ресурса. Я достаточно долго перебирал огромное количество кастомных шаблонов, но так и не находил ничего из того, что мне бы сразу безоговорочно понравилось. На самом деле то, что я искал, лежало всегда на виду. Я слишком поздно заглянул в стандартные темы WordPress’а, решив что там не будет ничего интересного. И очень даже зря, стоковый шаблон Twenty Fourteen выглядел весьма симпатично. На его основе я и решил создать тему Moto Juice, немного упростив вёрстку и добавив требуемые возможности. Эта тема отлично смотрелась и работала не только на настольных компьютерах, но и на мобильных устройствах.

Читать далее Обновление дизайна блога: создание шаблона Moto Juice для WordPress

Dev, Manuals, Others

Часы на кривых Безье для рабочего стола KDE Plasma 5: Bezier Clock

В графическом окружении рабочего стола 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 в разработке прикладных приложений.

Читать далее Часы на кривых Безье для рабочего стола KDE Plasma 5: Bezier Clock

Dev, Manuals, 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

Опыт покупки Motorola E398 в новом оригинальном корпусе на ebay.com

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

Читать далее Опыт покупки Motorola E398 в новом оригинальном корпусе на ebay.com

Manuals, Others, Reviews

Fruit’Y — Playing with edibles для MotoMAGX

Создание игры «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 находит в глубоких джунглях блестящие, замечательно пахнущие свежие фрукты и не может оставаться в стороне: обязательно их попробует. Давайте поддержим тигрёнка и поможем ему насладиться вкусными дарами джунглей.

Читать далее Fruit’Y — Playing with edibles для MotoMAGX

MotoMAGX