Наконец-то появилась первая нативная игра под игровую консоль EmuPocket !!! После двух с половиной недель обильного насилования сорцов игры и сопутствующих библиотек, удалось впихать "Алекса" в консоль!
Речь идёт об игре под названием: "Alex the Allegator 4"
Сайт, посвящённый этой игре:
http://allegator.sourceforge.net/Там же исходники игры и готовый билд под Windows, чтобы поиграть.
Эта игра - классический платформер в стиле "ретро", графика имитирует геймбоевскую: размер кадра всего 160x120 пикселей, монохромная палитра(оттенки зелёного).
Есть
цветная версия(color edition) этой игры для игровой консоли PSP, подробнее здесь:
http://pspfaqs.ru/soft/432-alex-4-color.html Я взял файлы данных из PSP-шного color edition и кинул их в виндовый билд - и "крокодил" засиял всеми цветами!!!
В классической версии игы 12 уровней, после прохождения которых появляется возможность сыграть во вторую игру - Space Shooter !
Короче,
2 игры в одной !!! Но для этого нужно собрать все ягоды и звёзды на всех уровнях!
Для компиляции игры, необходимо скомпилять ещё дополнительно 2 библиотеки:
1) Аллегра. Что это такое - читать здесь:
https://ru.wikipedia.org/wiki/Allegro_(%D0%...B5%D0%BA%D0%B0)Исходники тут:
https://liballeg.org/Это мультимедийная библиотека для разработки игр (кроссплатформенная).
Жёсткий секс при сборке этой библиотеки гарантирован !!! Я собирал под старый добрый DOS с помощью DJGPP и довольно удачно!
2) DUMB. О ней тут:
http://dumb.sourceforge.net/ . Исходники там же.
Это кроссплатформенная библиотека для воспроизведения трекерной музыки. Поддерживает форматы: MOD, IT, S3M, XM,...
Библиотека собирается намного легче, чем первая (Allegro).
А вот теперь представьте...
2.5 недели я трахал Аллегру, которая представляет собой избыточный и навороченный код, со всякими ПиСи-шными зависимостями, лишнее нужно было убрать, а нужные- заменить!
По сути, Allegro - это почти половина исходников самой игры !!!
Есть даже онлайн-версия игры, что добавило мне мотивацию не бросать портирование этой игры на EmuPocket на половине пути.
Урезанная веб-версия игры (немного глючит и монохромная):
http://obiot.github.io/Alex4-WE/А теперь о моём порте игры "Alex the Allegator 4" на игровой консоли EmuPocket:1) Применён графический смарт-фильтр, растягивающий исходный кадр 160x120 на весь экран 320x240. Выглядит просто ве-ли-ко-леп-но ! ! !
2) Звук - моно, 12 бит (16 бит с нулевыми младшими 4 битами), 44100 Гц. Достаточно, чтобы радоваться музыке в игре!
3) Расход оперативной памяти: 460 кБ на кучу(heap) в пике: зарезервировал 512 кБ. Стек(stack): 32 кБ. Остальные не считал. Остаются ещё свободные регионы.
4) Расход Flash памяти - около 1 МБ. Все ресурсы игры имплементированы в бинарник.
5) Оптимизация оперативной памяти: в оригинальной игре файлы данных(спрайты, музыка, звуки, палитра, скрипты,...) распаковывались в кучу(heap) и влекли за собой расход оперативы OVER 1 MB, делая работу игры на EmuPocket невозможной. Всё распаковал, сдампил и зашил намертво во Flash, передав нужным структурам указатели на готовые данные, вместо malloc'ов, жрущих кучу.
6) Доступны все 12 уровней + спейс-шутер. Можно выбирать произвольный уровень.
7) Сохранены скрипты заставки: начало и конец. Всё идёт полноценно!
8) Выпилен редактор уровней. ИМХО он ни к чему, и увеличивает код приложения и тащит за собой кишки Аллегры.
9) Библиотека Allegro максимально укорочена - оставлено только то, что нужно для игры!
10) Библиотека DUMB в виду её более удачной реализации - сохранена полностью, но используется только то, что надо игре.
11) Порт сделан независимым от библиотек - всё встроено в проект, ничего внешнего при компиляции цеплять не нужно. Сбилден на максимальном уровне оптимизации по скорости!
12) Ну и наконец, игра оттестирована, найденные баги исправлены. Игра полностью проходится от- и до- на EmuPocket.
Что получилось, можно посмотреть на этом видео: