Header image

Category: Games >> Super Cyborg - Full release [Android version]

Super Cyborg - Full release [Android version]


Версия для Amazon Fire TV

Приблизительно в конце 2014 года, когда Super Cyborg был доступен только на Desura, я получил предложение от человека с сайта Amazon портировать игру на их приставку Amazon Fire TV. Я почитал информацию и оказалось, что приставка подключается к телевизору через HDMI, работает на ОС Android, имеет свой пульт ДУ и поддерживает геймпады (в том числе от XBOX360). На тот момент портирование потребовало бы переписывание всего игрового кода с нуля! Я никогда не имел дела с Android и не был к этому готов. Напомню, что на тот момент игра была сделана на движке Blitz3D, который поддерживает только ПК, т.е. не является кроссплатформенным. Спустя время, после релиза Super Cyborg'а на Steam, когда я полностью перенес игру на новый движок Monkey X, я вспомнил про Fire TV и заинтересовался разработкой приложений для Android. Поскольку движок Monkey X является кроссплатформенным (т.е. позволяет создавать проекты одновременно для разных платформ), мне не пришлось изучать каких-либо дополнительных программ. Хотя пришлось предварительно скачать Android SDK и Java SDK, без которых невозможно компилировать приложения.
Первая проблема, с которой я столкнулся - приставку нужно было заказывать из Америки, потому что в местных магазинах ее было не найти. Сама приставка на Amazon стоила на тот момент 99$ и доставка как минимум 50$. Да и ждать пришлось бы недели 2-3. Я решил для начала поискать б/у на avito и к счастью обнаружил единственное объявление в Челябинске. В общем приставку я купил в отличном состоянии за 5000 руб.
Приставкой я доволен, пользуюсь и по сей день, установил на нее эмуляторы Nes и SEGA, закинул любимые игры, и играю на большом экране. Все отлично работает с геймпадом от XBOX360. Единственный и существенный минус Fire TV - встроенная память всего лишь 8Гб и отсутсвие поддержки карт памяти. Поэтому при желании можно еще установить эмулятор PS1, но закачать много игр не получится. Также для Fire TV есть адаптированные версии GTA 3, Vice city, San Andreas, Goat Simulator, Asphalt 8 и еще полно других игр.
C Fire TV на руках я наконец смог приступить к созданию Android-версии Super Cyborg'а. Очень удобно, что приложения на Fire TV можно устанавливать через ADB (Android Debug Bridge) по Wi-Fi, т.е. не нужно лишних кабелей. Со временем я обнаружил, что Android имеет ряд ограничений по сравнению с ПК. В частности это касается производительности девайсов. Например, на моем Micromax AQ5001 c четырехъядерным процессором и 2 ГБ оперативной памяти игра сильно тормозила в некоторых местах, не говоря уже о постоянных мелких провисаниях фпс. На Fire TV игра работала более стабильно, но на 5-6-7 уровнях были ужасные тормоза. Я был очень удивлен таким результатом, потому что считал игру достаточно оптимизированной. Казалось бы, чему тут тормозить?
В ходе долгих экспериментов мне все же удалось выявить возможные причины лагов. Мне необходимо было добиться стабильных 60 фпс на всех уровнях. Пришлось существенно переработать код, полностью переписать некоторые функции (в частности, систему коллизий). В общем пришлось пойти на массу ухищрений для оптимизации игры. Если при разработке для ПК на некоторые моменты можно закрыть глаза, то на Android необходимо использовать любую, даже незначительную возможность оптимизации и упрощения кода.
Стоить отдельно отметить плохую реализацию работы со звуками и музыкой на Android. Я не знаю, это проблема конкретно движка Monkey X или Android'а в целом. Например длина звука не должна превышать 10 секунд. А для воспроизведения музыки используется audio streaming, т.е. музыку нельзя сначала загрузить в память, а потом проигрывать, как в случае со звуками. Это приводит к тому, что при воспроизведении музыкального трека в время уровня (например, перед боссом), игра подвисает на полсекунды. Вероятно, в этот момент происходит инициализация аудио стрима. К сожалению я так и не нашел способа обойти эту проблему. На ПК подобных проблем не возникало, потому что все треки можно было загрузить в начале игры и далее без проблем проигрывать в любой момент.
После множества тестов и оптимизаций мне все же удалось добиться стабильной работы Super Cyborg'а на Fire TV. Хотя незначительные провисания иногда присутствуют, но они практически не заметны. Релиз приложения состоялся 19 февраля. Итак, если вы являетесь счастливым обладателем приставки Amazon Fire TV, вы можете приобрести эксклюзивную версию Super Cyborg'а и играть на вашем телевизоре! По сути эта версия идентична Steam-версии, только без ачивментов, лидерборда и сетевого режима. Для комфортной игры вам потребуется геймпад. Если у вас Fire TV без родного геймпада, то подойдет геймпад от XBOX360. При этом игра поддерживает управление с пульта ДУ, но с него играть крайне неудобно, поэтому настоятельно рекомендую использовать геймпад.

страница на Amazon (не обращайте внимания на рейтинг, там возникло недоразумение)

Версия для Google play

После релиза на Amazon я решил не останавливаться на достигнутом и адаптировать игру для смартфонов и планшетов исключительно ради эксперимента. И затем распространять приложение через Google play.
Пожалуй самое кардинальное изменение в этой версии - это управление. В игру были добавлены кнопки сенсорного управления на экране и авто-стрельба, чтобы немного "разгрузить" управление (все-таки не геймпад). В итоге, кроме крестовины, остались 3 кнопки действия: прыжок, альтернативный выстрел и переключатель режима стрельбы (lock). Хотя, в любом случае, сенсорное управление не может в полной мере заменить геймпад и к нему необходимо привыкнуть.
Все уровни абсолютно идентичны ПК-версии, только теперь за прохождение начисляется рейтинг в звездах (максимум 5 звезд). Чтобы получить максимальный рейтинг, нужно пройти уровень на трех сложностях (easy, normal, hard), без смертей на любой сложности и, не подбирая бонусы, на любой сложности. Также здесь немного облегчены некоторые враги и боссы. И еще нет кооператива.
Существенным нововведением Google play-версии является система микротранзакций, т.е. платный контент. В игре появилась игровая валюта - энергетические шары. На них можно покупать дополнительные жизни, разблокировать уровни, персонажей и т.п. В целом, схема довольно незамысловатая: покупаем игровую валюту за реальные деньги и на нее уже - игровой контент. Немаловажный аспект такой системы - все это можно разблокировать, не покупая игровую валюту, потому что энергетические шары даются за определенное количество очков и звезд рейтинга. Но при этом придется играть очень долго, чтобы накопить нужное количество шаров. Также в игре имеются дополнительные улучшения, которые покупаются исключительно за реальные деньги и только 1 раз. Они служат для значительного облегчения прохождения игры (своего рода читы). Среди них имеется респаун с определенным оружием (например, с S), быстрое накопления заряда (charge), бесконечные жизни и т.п.
Стоить отметить еще, что для реализации платного контента через Google play в Monkey X имеется дополнительная библиотека, которая существенно облегчает работу. Однако тестирование покупок в игре вызвало у меня определенные трудности. По какой-то непонятной мне причине, Google не дает возможности разработчику тестировать покупки в своем приложении. Например, если я хочу что-то купить, Google выдает ошибку: "издатель не может купить этот товар". Оказалось, что тестировать покупки в приложении можно только с аккаунта тестера. При этом даже если я создам новый Google-аккаунт и зайду в игру с него, то все-равно я не могу тестировать со своего смартфона. Т.е. нужен другой аккаунт и другой девайс. И зачем было все так усложнять? Надеюсь, в будущем они это исправят.
Так как здесь используется довольно много дополнительных меню и опций с текстом, я решил добавить в игру поддержку русского языка, чтобы привлечь больше русскоязычных пользователей. Поэтому эта версия полностью на русском языке (впервые)! Пришлось рисовать немало дополнительной графики для различных меню, окон и т.п.
Поскольку эта версия Super Cyborg'a является абсолютно бесплатной, я решил добавить в нее рекламу. Сначала я хотел использовать рекламу от Appodeal, но по непонятной причине она отказывалась работать на движке Monkey X. И это при том, что я использовал официальный пример кода с их сайта. После множества неудачных попыток настроить Appodeal, я бросил это дело и по советам пользователей с форума Monkey X обратил внимание на видеорекламу от Vungle. Хочу выразить особую благодарность инди-разработчику Jörg Winterstein (его сайт) за помощь с кодом Vungle. Реклама в игре показывается перед заставкой game over и после прохождения уровня. Также ее можно отключить, купив определенное улучшение.
Релиз приложения состоялся 22 апреля.
В идеале хотелось бы еще сделать версию для IOS, но для этого требуется Mac и iphone, которые пока что мне не по карману.

Страница в Google play

Скачивайте и играйте! Буду очень признателен, если вы оставите положительный отзыв и 5 звезд :)



release date: February 19, April 22, 2016

views: 2080