Клавиатурная стрелялка
Доброго времени суток!
Я являюсь программистом и само собой сижу в различных тематических чатах и не только. Постепенно у нас образовался собственный чат гиков - собрали самых интересных людей из разных чатов в один и общаемся себе на здоровье. Время от времени делимся интересными ссылками, статьями, иногда что-то придумываем и делаем сами. Вот, собственно, и хотелось бы поделиться одной такой нашей “придумкой” :)
Вспомнилась однажды игрушка, наподобие space invaders, где необходимо печатать слова, чтобы сбивать вражеские корабли. Немного погуглив, я нашел zty.pe и скинул ребятам в чат посоревноваться, кто больше всех очков наберет, но с английскими словами возникли некоторые сложности и малая мотивация :) Слово за слово, зашла речь о том, что с русскими словами было бы куда интереснее. Сначала стали думать, что вообще нужно, чтобы сделать ее самим, а потом один из наших гиков нашел похожий проект на гитхабе, но для японского.
Далее прошло несколько веселых вечеров и мы дружно (разного рода участие приняло порядка 7 человек) переработали азиатскую версию под русскую. Вероятно, автор оригинального кода забыл сделать пулл финальной версии или в какой-то момент перестал развивать проект, поскольку код имел некоторые баги :) Не обошлось, конечно, и без наших багов - первая версия была, мягко говоря, не очень... При этом кому бы мы ее не скинули, всем нравилось, что и смотивировало нас доработать игру до стабильного рабочего состояния.
В итоге получился веселый клавиатурный тренажер, у нас нет идеи монетизировать игрушку, мы просто сделали ее для себя в свободное время и просто делимся тем, что у нас получилось. Один из наших гиков нашел немного иной способ играть на тяжелом уровне и написал к игре бота! К сожалению, кодом он не поделился, но желающим будет не сложно повторить :) Гифка бота будет в комментариях.
Исходный код нашего проекта открыт, мы будем очень рады любому участию, идеям, предложениям и комментариям. Все ссылки будут в конце поста.
Приложение написано на js, как мы поняли - с использованием фреймворка impactjs и, судя по всему, в репозитории японской версии слиты уже собранные сорцы, они вполне себе читабельны и редактибельны, так что можно сказать мы имеем дело с нативным js без зависимостей. Весь код, связанный с игровым процессом, мы вынесли в engine.js. Для подсчета скорости, сохранения результатов и настроек написаны дополнительно storage.js, rtype.js также на нативном js. Для запуска локально достаточно разместить на любом веб-сервере (apache, nginx и т.п.).
Сейчас игровой процесс выглядит так - жмете enter, переключаетесь на русскую раскладку и печатаете, для смартфонов - нужно нажать на игровое поле, после чего нажать enter и также переключить раскладку на русский язык (поддерживает разные типы ввода). Из противников есть одиночные мины, у которых длина слова увеличивается с прохождением уровней; несколько видов кораблей, которые стреляют словами и которые стреляют буквами (у них по умолчанию длина слова больше, чем у мин).
В таблицу результатов мы вынесли такие показатели: средняя скорость за все игры и количество пройденных волн, аккуратность, скорость, очки за одну игру. Более весомыми показателями считаем - среднюю скорость и количество пройденных волн, особенно на более сложном уровне.
На данный момент у нас в планах изменить дизайн под тему “космос”. Но большее внимание мы хотим уделить словарям и логике самой игры. Например, добавить словари на разную тематику, добавить больше слов, добавить более интересные уровни с разными игровыми приемами (новые виды кораблей, пасхалки и пр.), мультиплеер, возможность открывать игровое поле на весь экран.
Комментарий для минусов прилагается, всем спасибо!