Салют, Пикабу!
Сегодня я расскажу о том, как создать игру на телефон за пять минут!!
=)
Одно время мне попадались на глаза видеоуроки про создание игр за сравнительно короткое время. Но как правило это были какие-то примеры применения базовых основ по созданию игр в тех или иных редакторах. По сути своей которые позволяли, овладев необходимыми навыками быренько набрасать пару спрайтов и заставить их как-то взаимодействовать. Зачастую эти видосы открывали целый курс обучения геймдизайна. Ну а иногда просто для одноразового ознакомительного просмотра.
Но при ближайшем рассмотрении разработка и портирование игры на смартфон скрывала за собой кучу сопутствующих проблем, разбираться с решением которых в то время не было времени. И видимо, не особо-то и желания.
Однако же мной была предпринята попытка сделать что-то простенькое, быстренькое, и чтобы сразу можно было в это поиграть без регистрации и смс.
За прототип я взял (к сожалению или счастью без спроса) игрушку пакмен на денди. Со всем уважением к издателям и разработчикам.
За движок - бесплатную версию констракта второго.
Музончик взял первый попавшийся, тоже к сожалению без спроса, но надеюсь проблем не возникнет. Если что - всегда можно удалить, или заменить. Или просто написать огромную благодарность музыкантам за создание такого чудного трека.
Скажу сразу - за пять минут создать нормальную играбельную вещь довольно проблематично. По опыту - большую часть работы занимает как раз визуальная составляющая и звук. Поэтому лучше к такому быть готовым заранее. Понятно конечно, что при желании я бы мог нарисовать на худой конец карандашом и отсканировать спрайтлист. Или по-простому накидать в пейнте и оставить монохромным. Но и на это времени тратить не хотелось. Важен был эксперимент. Поэтому пришлось вырезать спрайтики из снапшотов эмулятора денди.
Почему я выбрал именно констракт второй? Я уже довольно приличное время с ним тесно взаимодействую. У него есть достаточный потенциал для создания различного рода событий. Неплохой арсенал финального экспорта. Правда и имеются кое-какие ограничения. максимальное количество слоев - 4. Максимальное количество ивентов - 100
Так же для теста игры я воспользовался своим ресурсом. Хотя можно было быстренько поднять какой-нибудь xamp на компе. И тестить в домашней сети.
Начал я с того, что разметил будущий проект под пропорции оригинальной игры 1:2. Можно было конечно развернуться полномасштабно в фул эйч ди. Но любовь к пикселям не позволила допустить подобное пренебрежение.
На полученный 512х448 квадрат )) я разместил бэкграунд, в виде спрайта игрового поля со всеми стенками. Дополнительно придав им жёсткости спрайтом с поведением солид. Это означало что через области с этими спрайтами нельзя пройти. Можно только упереться.
Вторым делом я добавил спрайт пакмена. Вложив в него всю любовь к ретро-играм, всю душу, поведение 8-и направлений, и наверное силу земли. Выстроил ему ускорение, замедление. И добавив две анимации. Хавальник вака-вака и подобие самопоглащения с последующим исчезновением. 8-и стороннее управление ограничил 4-мя. Больше и не требовалось. Так же отключил возможность изменения угла, чтобы он не поворачивался, а только перемещался. Далее я добавил две переменые, назвав их условно инпут и направление. В событиях нажатий клавиш клавиатуры, а так же позднее добавил события геймпада и тача, указал, что при нажатии на васд - каждой кнопке соответствовало своё название стороны экрана.
Следующим шагом надо было заставить пакмена двигаться и поворачивать. Для более чёткого координированного движения (он же не поворачивает, он грубо вверх вниз влево вправо двигается) и чтобы не цеплялся за стенки, я в каждый перекрёсток поставил по спрайту, координируещему направление. в точке перечесечения координат ГГ и вейпоинта, выравнивались координаты спрайтов и применялся инпут.
Следующим шагом было создание врагов и оформление им АИ. Созданы они по образу и подобию пакмена, с той лишь разницей, что вместо импута в точках пересечения с вейпоинтами рандомно выбиралось направление. Что напроч лишило их каких-либо признаков интеллекта, зато добавило непредсказуемости в игре.
по событию столкновения одного из них с главным героем поставил замедление происходящего с анимацией самопожирания пакмена.
После, я добавил эти забавные точки, которые с таким удовольствием пожирает вака-вака при столкновении с ними последние не уничтожались а просто переходили в состояние инвиз. Для придания игре пикантности, враги обладают противоположным свойством, переключающим кучки при столкновении с ними в состояние визибл.
Для придания красоты, я немного подправил анимацию хавчика и добавил эффекты исчезновения стенкам.
Так же добавил два счётчика, текущий скор и топ скор. Пририсовал стрелочки для управления на тачскрине.
Кнопочку для "поделиться с друзьями в вк" - ну а куда без этого. Ну и добавил вишенку.
Далее я экспортировал в html5 совместимый формат. И залил на хостинг. При разработке констракт использует локалхост. но этого было не достаточно для телефона.
После загрузки веб версии, я перешёл по ссылке с телефона, игрушка загрузилась и вроде бы была играбельна. Далее маленький трюк, порадовавший меня в своей простоте и юзабельности. Просто раскрыл менюшку управления страницей и отправил ярлык на рабочий стол. На главный экран. После чего игрушка спокойно открылась в формате полноэкранного приложения. Всё. Конец.
пс. небольшой баг. музончик весит чуть больше всего остального. Поэтому ему требуется некоторое время на подкачку.
Обо всех остальных багах или возможных вариантах апгрейда с удовольствием почитаю в комметариях.
Кому нужен исходник - в лс.
п.п.с. демонстрирующую геймплей гифку и летсплей прикреплять не стал. игровой процесс понятен и прост. но желающим потрогать, как говорится, своими руками ссыль:
http://ajmaker.ru/wakaproject
Ну и приятной ретромании ^__^ с ретрольгией ))