Pull to refresh

Лемминги на Android

Reading time4 min
Views9.1K
Любите ли вы Леммингов также, как люблю их я?

Нет, не пушистых грызунов семейства хомяков, а великолепную игру-головоломку, выпущенную в 1991 году и портированную в дальнейшем на многие игровые консоли.

image

Не один вечер был просижен за этой игрой. И вот, спустя почти 20 лет я со своим другом решил отдать дань творению Rockstar (раньше DMA Design) и сделать свою версию Леммингов под Android со звучным названием Stupid Rabbits.

Мы не стали менять концепцию игры: по-прежнему вы должны помочь группе беспомощным кроликам добраться из точки А в точку Б сохранив их в целости и сохранности. Естественно мы существенно модифицировали геймплей, добавив множество своих фишек, связанных с физикой передвижения. Теперь в распоряжении милых зверушек есть ракеты, катапульты и др.

image

Gameplay


В начале каждого уровня в вашем распоряжении есть группа леммингов, которых нужно довести по запутанной карте до финальной точки в целости и сохранности, и предметы, которые помогут вам преодолеть все преграды на их пути. Среди таких предметов:
  • Балки. Служат для возведения мостов из одной травянистой области в другую.
  • Катапульты. Позволяют перепрыгивать различные предметы и ямы.
  • Знаки «Стоп». Как ни странно выполняют свои прямые обязанности — останавливают Леммингов и заставляют их идти в обратную сторону.
  • Ракеты. Позволяют летать, тем самым помогая леммингам достигать высоких поверхностей.
  • Стога сена. Так как лемминги существа достаточно слабые и хрупкие падение с большой высоты убивает их. Стоги сена спасают наших героев предоставляя им мягкое место для посадки.

image

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

Технические моменты


До начала работы над игрой у нашей команды уже имелся обширный опыт PHP, Ruby, Flash и Java проектов. О самой платформе Android и Android SDK можно сказать, что, в целом, все достаточно удобно, логично и «комфортно» для опытных программистов. Если сравнивать Java с iOS'овским Objective C, то она на порядок удобней и дает более высокую скорость разработки и больший выбор IDE.

image Движок AndEngine, который мы использовали основан на OpenGL ES, а потому дает очень быструю графику даже на слабых устройствах (если сравнивать со стандартной графической «рисовалкой»).

Значительную ложку дегтя в бочку Java-меда добавляет тот факт, что несмотря на очевидные ожидания от стандартизированной платформы, мы столкнулись с огромным количеством проблем совместимости.

Какие-то простые баги в коде отлавливаются очень просто, благодаря встроенному в Market механизму сообщения об ошибках (если у юзера не отловился эксепшн и при этом был доступ в сеть, то ошибка вместе со стеком попадает к вам в кабинет маркета в реальном времени).

К сожалению, при работе с OpenGL и Box2D движком (который в нашем случае использовался в виде нативных C-модулей) часто происходят ошибки, которые просто выносят игру без какого-либо эксепшена. Даже после 10 апдейтов у нас всё ещё возникают проблемы, когда у пользователей во время игры неожиданно экран становится просто черным, хотя сам игровой процесс, звуки и т.п. продолжают работать нормально. Методом «тыка» мы определели что это вызвано неожиданным перезаписыванием текстур чем-то другим в памяти GPU. Почему это происходит… Мы до сих пор не нашли ответа. Ясно только, что на разных девайсах это происходит по разным причинам.

Например на Droid X и некоторых моделях HTC есть проблема с поддержкой Vertex Buffer Objects, из-за чего нам пришлось отказать от них (хотя они давали определенной прирост производительности). Это помогло решить проблему «black screen o'death», но… только на части устройств. У ряда пользователей проблема осталась и после этого.
godaddy tracker

До сих пор сталкиваемся с какими-то абсурдными багами. Мы лично проверяли игру на двух разных Samsung Galaxy S 2.2 / 2.2.1 и игра работала отлично. А пару дней назад несколько пользователей все еще жаловались что у них на таких же устройствах игра выдает черный экран на первом уровне. Выяснилось что в разных странах прошивки Galaxy S отличаются друг от друга, хотя формально у них одна и та же нумерация версии.

В общей сложности мы проверяли игру на 7 разных устройствах, но этого оказывается даже близко недостаточно. Вспоминаются времена разработки под J2ME, а казалось что необходимость покупки 50 разных телефонов для разработки должна была уйти в прошлое при появлении Android-смартфонов.

Конечно же все эти проблемы связаны со сложными графическими приложениями и какие-то простые игрушки, которые не используют много памяти GPU и каких-то особенных фишек вряд ли будут иметь такие же проблемы.

Пару слов об Amazon Appstore


image Хотелось бы поделиться своими впечатлениями по поводу нашумевшего Amazon Appstore. В блогах было много публикаций о том как это круто, что появилась новая площадка где будет только качественный контент и т.п. Для юзеров это конечно же круто, но для indie-разработчиков это… боль.

Достаточно сказать что за 12 часов после выхода бесплатной версии на Android Market было порядка 3000 скачиваний, а за те же 12 часов после выхода на Амазоне у этой же бесплатной версии было ОДНО скачивание. При этом на Амазоне нужно ждать аппрува приложения около 10 дней, что очень похоже на политику Apple.

Как поиграть?


imageСкачать бесплатную версию наших Леммингов, в которой есть ограничение по времени игры, вы можете с Android Market.

image
Tags:
Hubs:
Total votes 64: ↑49 and ↓15+34
Comments78

Articles