Как я создавал игру для Google Play
Всем доброго времени суток! Решил написать свою первую статью про создание игры, первую как на Пикабу так и вообще, опыта в написании статей ранее не имел. Игра называется "Atomaders", горячо любимая игра из моего юношества, много раз проходил её, затирая до дыр.
Созданием игр занимаюсь достаточно давно, сейчас работаю на Game Maker Studio 1.4.1772 (лицензия), начинал с Game Maker 6 (в 2008). Очень давно хотел воссоздать эту игру, но, к сожалению, не помнил её названия, пытался гуглить, но ничего толкового не находил. В итоге я оставил эту идею, но совсем недавно случайно наткнулся на скриншот игры и был очень удивлен - это та самая игра! Я так долго искал тебя! Все дела отложены, теперь-то я точно сделаю порт на мобильные платформы.
Первый шаг - это связаться с издателем и получить разрешение на порт для мобильных платформ. Первым делом я отправил сообщения на всю доступную почту, и отовсюду приходил один ответ - "Your message to <kraisoft@kraisoft.com> was automatically rejected:
Quota exceeded (mailbox for user is full)". Тогда я решил найти разработчиков в социальных сетях или на форумах. Нашел только человека, который писал музыку, но он до сих пор не ответил. Не стал больше ждать, решил все же начать.
Второй шаг - это разработка всей основы игры без графики (в основном это черные и белые квадратики). Изначально проект писался с тем условием, что будет всего несколько игровых комнат и минимум объектов. Один объект - меню o_menu, в зависимости от переменной, рисует разные блоки меню. Обработка нажатий происходит так (далее псевдо-код):
если х > 0 && y>0 && x<100 && y<100, то выполняем действие. Это очень простой код, но в то же время полезный. Я решил, что будет онлайн-таблица рекордов как в оригинальной игре, подключил сервисы google play, внедрил таблицу и достижения. Остался недоволен и решил написать свою, которая синхронизировалась бы с основной. Стандартных средств для этого нет, поэтому я написал скрипт на php параметры, в который передаются эти параметры из игры, он их принимает, обрабатывает, сортирует (пузырьком, многого и не нужно), пишет и отправляет обратно.
Третий шаг - внедрение игровой графики и ресурсов. Игровые мелодии в игровой папке лежат в незашифрованном виде, поэтому их я взял и загрузил в gms, но тут столкнулся с неожиданной проблемой. GMS не поддерживает midi, пришлось конвертировать звуки, вследствие чего они все же потеряли в своей сочности. Графику извлекал из зашифрованных игровых файлов программой "Dragon UnPACKer 5", но все же не все файлы были обнаружены и мне пришлось делать скриншоты и вырезать некоторые файлы вручную, также пришлось перерисовывать всю графику под разрешение 16:9. Я не мог найти, где находится оригинальный текст, но все же разобрав один из файлов на части, открыв его и просмотрев, обнаружил строку - ‰~6
~tes-vous s[r, que vous НАЧАТЬ ИГРУSTART GAMECOMMENCEZBEGINNEN . Это то, что нужно! Весь остальной текст также по кусочкам был извлечен из этого файла.
Как монетизировать игру? Мне пришла мысль о том, что было бы неплохо, если бы любой желающий мог бы купить в игре баннер, на котором бы транслировалась его реклама. Таким образом я бы смог получать доход. Довольно быстро я понял, что идея гиблая, но баннер уже был внедрен. Я решил оставить его и отображать на нем свою рекламу. Встроил чистый Admob (Никаких Apoodeal), реклама теперь отображается только при старте игрового уровня, при условии, что это не первый уровень игры с вероятностью 60%. Изначально я не планировал встраивать рекламу. Но в конечном итоге решил всё же сделать это, для того чтобы покрыть те затраты, которые возникли в процессе разработки приложения.
Закончив разработку, я опубликовал игру в GP. За первые 3 дня игра собрала 0 установок... Был немного расстроен, в связи с чем и решил написать эту статью.
Всем спасибо за внимание! Пишите, какую бы игру детства вы бы хотели реинкарнировать для мобильных платформ. Будет интересно почитать ваши предложения.
Самая популярная игра будет восстановлена. Обещаю)
Игра: https://play.google.com/store/apps/details?id=com.atomaders_...