125

Клавиатурная стрелялка

Доброго времени суток!


Я являюсь программистом и само собой сижу в различных тематических чатах и не только. Постепенно у нас образовался собственный чат гиков - собрали самых интересных людей из разных чатов в один и общаемся себе на здоровье. Время от времени делимся интересными ссылками, статьями, иногда что-то придумываем и делаем сами. Вот, собственно, и хотелось бы поделиться одной такой нашей “придумкой” :)


Вспомнилась однажды игрушка, наподобие space invaders, где необходимо печатать слова, чтобы сбивать вражеские корабли. Немного погуглив, я нашел zty.pe и скинул ребятам в чат посоревноваться, кто больше всех очков наберет, но с английскими словами возникли некоторые сложности и малая мотивация :) Слово за слово, зашла речь о том, что с русскими словами было бы куда интереснее. Сначала стали думать, что вообще нужно, чтобы сделать ее самим, а потом один из наших гиков нашел похожий проект на гитхабе, но для японского.


Далее прошло несколько веселых вечеров и мы дружно (разного рода участие приняло порядка 7 человек) переработали азиатскую версию под русскую. Вероятно, автор оригинального кода забыл сделать пулл финальной версии или в какой-то момент перестал развивать проект, поскольку код имел некоторые баги :) Не обошлось, конечно, и без наших багов - первая версия была, мягко говоря, не очень... При этом кому бы мы ее не скинули, всем нравилось, что и смотивировало нас доработать игру до стабильного рабочего состояния.

Клавиатурная стрелялка Игры, Тренажер, Разработка, Гик, Длиннопост, Программирование, IT

В итоге получился веселый клавиатурный тренажер, у нас нет идеи монетизировать игрушку, мы просто сделали ее для себя в свободное время и просто делимся тем, что у нас получилось. Один из наших гиков нашел немного иной способ играть на тяжелом уровне и написал к игре бота! К сожалению, кодом он не поделился, но желающим будет не сложно повторить :) Гифка бота будет в комментариях.


Исходный код нашего проекта открыт, мы будем очень рады любому участию, идеям, предложениям и комментариям. Все ссылки будут в конце поста.


Приложение написано на js, как мы поняли - с использованием фреймворка impactjs и, судя по всему, в репозитории японской версии слиты уже собранные сорцы, они вполне себе читабельны и редактибельны, так что можно сказать мы имеем дело с нативным js без зависимостей. Весь код, связанный с игровым процессом, мы вынесли в engine.js. Для подсчета скорости, сохранения результатов и настроек написаны дополнительно storage.js, rtype.js также на нативном js. Для запуска локально достаточно разместить на любом веб-сервере (apache, nginx и т.п.).


Сейчас игровой процесс выглядит так - жмете enter, переключаетесь на русскую раскладку и печатаете, для смартфонов - нужно нажать на игровое поле, после чего нажать enter и также переключить раскладку на русский язык (поддерживает разные типы ввода). Из противников есть одиночные мины, у которых длина слова увеличивается с прохождением уровней; несколько видов кораблей, которые стреляют словами и которые стреляют буквами (у них по умолчанию длина слова больше, чем у мин).

Клавиатурная стрелялка Игры, Тренажер, Разработка, Гик, Длиннопост, Программирование, IT
Клавиатурная стрелялка Игры, Тренажер, Разработка, Гик, Длиннопост, Программирование, IT

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

Клавиатурная стрелялка Игры, Тренажер, Разработка, Гик, Длиннопост, Программирование, IT

На данный момент у нас в планах изменить дизайн под тему “космос”. Но большее внимание мы хотим уделить словарям и логике самой игры. Например, добавить словари на разную тематику, добавить больше слов, добавить более интересные уровни с разными игровыми приемами (новые виды кораблей, пасхалки и пр.), мультиплеер, возможность открывать игровое поле на весь экран.


Комментарий для минусов прилагается, всем спасибо!


Заценить игру

Исходный код

Оригинальный проект

Найдены дубликаты

+4

гифка бота

+3

о существовании такой игрушки я не знал, название для нашей мы придумали сами, не плагиатили =)

показать ответы
+5

Скопировать код ниже, нажать (в браузере) ctrl + shift + i, вставить код в консоль, нажать enter и потом посмотреть снова на ветку комментариев.

var comments = document.querySelectorAll('.comment__content');

for (var i = 0; i < comments.length; i++) {

    var t = comments[i].textContent;

    if (t.indexOf("Ты настоящий") != -1 || t.indexOf("Пруфы") != -1) {

       comments[i].innerHTML = "<p>ты очень крутой!</p>";

    }

}

+5

настоящий программист-говнокодер

показать ответы
+4

Про добивающую ракету хорошая идея, спасибо =)

+4
Иллюстрация к комментарию
+2

одними из серьезных граблей я бы назвал цену, ее наличие =)

из таких ассоциаций вспомнилась затея о кооперативном мультиплеере для нас, когда 2 корабля на поле и нужно отбиваться вдвоем

показать ответы
+2

спасибо :)

+2

Для человека, работающего за компьютером, скорости 300 зн/мин более чем достаточно для обычных задач. Не многие могут похвастаться даже такой.

показать ответы
+6

Комментарий для минусов

показать ответы
+3

рейтинга для гифки пока не хватает :)

показать ответы
+2

каждому свое?

+2

Я давно играл в какую-то игрушку на флеше на английском, но вот удалось найти только zty.pe как и упоминал в статье и несколько реализаций на флеше, но все были не те. Говорят, еще на msdos на ascii графике такое делали :) беби тайп первый раз слышу. Ну и само собой не стоит забывать про klavogonki.ru, оттуда мы взяли кстати словарик.

показать ответы
+1

ну можно еще чуть-чуть увеличить =) да, на мобилах не очень пока что, это как раз в ближайших задачах поправить

показать ответы
+1

а нельзя это решить небольшим приближением? как вообще скорость на планшете? при моей 540 на компе на мобиле еле 300+ делаю

показать ответы
+1

ссылка ведет на что-то не то =)

показать ответы
+1

сделать вручную приближение, чтобы было видно всё поле?

показать ответы
+1

Думаю, в будущем добавим или новых словарей, или возможность свои заправлять. Ну и можно будет там закинуть каких-нибудь терминов из медицины или еще чего подобного рода и потом говорить не "что-то там печатала", а "умные слова печатала".

+1

бывает =) если ракета в тебя не летит, на нее можно забить и не стрелять по ней

+1

спасибо :)

показать ответы
+1

Я выше 12 волны не поднимался на сложном =) в самом низу поста как раз мой скриншот статистики сложного уровня.

показать ответы
0

У нас с клавогонок частотный словарь взят.

0

буква "й" есть и есть такое слово иод (через и)

0

Story-mode? Это как? Для общего рейтинга необходимо реализовывать проверки валидности результатов. Как только у людей появится стимул, например, засветить своё имя первым в топе, они станут придумывать способы подделки результата, а сейчас это очень просто. Поэтому мы намеренно не создаем почву для развития читеров. Когда-нибудь в будущем, когда реализуем все игровые фишки, уделим время и общему рейтингу с защитой от читеров.

показать ответы
0

какого рода проблемы имеются в виду?

показать ответы
Похожие посты
Возможно, вас заинтересуют другие посты по тегам: