Как мы устроили квест в Telegram, и что из этого вышло. Объявляем конкурс

в 6:54, , рубрики: Kingston Technology, telegram, Блог компании Kingston Technology, боты, игромир, игры, искусственный интеллект, разработка, решение проблем, Софт, Социальные сети и сообщества

В уходящем году мы запустили одну штуку, которая нам понравилась, и мы собираемся продолжать. Речь идет про наш канал и бот в Telegram, и конкурсе, который мы запускаем сегодня для вас. Но обо все по порядку: вся история началась полгода назад, в начале лета, с этого и начнем.

Как мы устроили квест в Telegram, и что из этого вышло. Объявляем конкурс - 1


Итак, где-то в июне мы сели обсуждать, что хотим сделать на «Игромире». У нас было 90 метров площади, 4 фокусные модели игровых гарнитур, коллектив девушек гоу-гоу, новая клавиатура, легендарный капитан CS Даниил «Zeus» Тесленко, 12 коробок призов и бесконечное множество браслетов всех сортов и расцветок, а также оверклокер-шоy и стойка с Xbox. Не то чтобы это был необходимый запас для «Игромира», но раз уж начал готовиться к крупнейшей игровой выставке в стране, то сложно остановиться… Чего у нас не было – это тихого спокойного места, в котором мы могли бы поговорить с «продвинутыми» или «взрослыми» пользователями, которым интересны наши продукты, которые хотят узнать больше про технологические особенности, но в общем шуме и гаме теряются.

И тогда мы поняли: «Нам нужен программист Telegram». Мы исходили из того, что в настоящее время Telegram более популярен в гиковской среде, которая интересуется играми и железом, и эти люди чуть старше среднего возраста посетителей «Игромира». Идея была в том, чтобы организовать для наших самых активных фанов особый игровой опыт, который можно было получить на площадке, выполнив ряд заданий, как офф-лайн (найдя что-то на стенде), так и в мессенджере, получив задания внутри Telegram. Нам также очень хотелось добавить в эту историю косплееров (потому что «не сфотался с косплеером, считай, что не был на «Игромире») и соцсети (чтобы увеличить количество охваченной аудитории).

Как мы устроили квест в Telegram, и что из этого вышло. Объявляем конкурс - 2

С этими вводными уже стала более-менее ясна общая картина. Мы нашли четырех великолепных косплей-девушек, каждая из которых символизировала одну из гарнитур HyperX, выпущенных в 2016. На первом этапе квеста надо было собрать все новинки, а именно: найти их на выставке, сфотографироваться, а дальше уже перейти к взаимодействию с ботом, который выдаст еще серию заданий.

Сказано – не значит сделано. Наверняка, по мнению многих, кто не знаком с разработкой, создание бота в Telegram выглядит примерно так.

Как мы устроили квест в Telegram, и что из этого вышло. Объявляем конкурс - 3
На деле всё немножко сложнее. Да, фронтэндом выступает сам Telegram со своим API, но вот бэкэнд надо написать. Сначала мы планировали обойтись своими силами. Почитали несколько гайдов, изучили возможности условно-бесплатных сервисов, в которых можно делать ботов. Но в конце концов решили, что лучше всё же поручить эту работу профессионалам, т.к. у самих ушло бы очень много времени и сил на это, к тому же мы руководствуемся принципом, что каждый должен заниматься своим делом.

Мы отправили запросы в несколько компаний и самостоятельным разработчикам-фрилансерам. Половина специалистов не могла спрогнозировать сроки и стоимость. Впрочем, все знают, что такое – работать с фрилансерами. В итоге, во время наших поисков нашлась компания IQBot, которая смогла адекватно оценить сроки, стоимость работ и заложила туда возможные издержки на хостинг и поддержку. Для всех работ мы составили ТЗ, обговорили ещё раз сроки и запустили всё в разработку.

Разработка

Нам требовалось не просто сделать «говорилку» на Bot API 2.0, для конкурса нужна была и база данных для регистрации участников и результатов, очередь на случай высокой нагрузки и облачный хостинг для всего этого. У IQBot были уже отработанные решения, так что ими и воспользовались: в качестве базы взяли свободную MariaDB (продвинутый форк MySQL), очередь боту организовали через популярную для таких целей RabbitMQ, а в качестве хостинга выступал казуальный heroku.com. С двумя первыми решениями всё понятно: это свободные продукты, к тому же давно обкатанные в спарке с мессенджерами и даже ботами Telegram. А вот облако Heroku – это неплохой хостинг, если нужны большие мощности на короткое время. У них есть планы с посуточной тарификацией и гибким платным регулированием производительности системы – так что работа того же бота с бэкэндом в течение недели может стоить совсем смешных денег. IQBot предусмотрительно выбрали на хостинге гибкий тариф, который позволял динамически менять производительность – это нас спасло в момент высокой популярности квеста и, как следствие, высокой нагрузки на бекэнд, т.к. мы смогли оперативно увеличить мощность сервера.

Так как создание бота в большей степени было связано с разработкой бэкэнда, был выбран язык PHP, популярный для ботов Python усложнил бы связь с базой и очередью.

Конечный алгоритм работы бота был такой:

  1. Пользователь подключается и присылает ссылку.
  2. Система регистрирует в базе его Telegram-имя, сохраняет ссылку и отправляет сообщение с благодарностью за участие (среди всех участников потом была разыграна гарнитура HyperX Cloud Stinger).
  3. После этого пользователю предлагают сыграть в блиц-викторину и при правильных ответах на все вопросы можно было сразу на «Игромире» получить призы.
  4. Спустя 3 дня конкурса бот закрывает прием работ, а всем зарегистрированным участником рассылает благодарность и имя победителя.
  5. После объявления победителя бот становится заглушкой с промо-сообщением.

Как мы устроили квест в Telegram, и что из этого вышло. Объявляем конкурс - 4

Старт

За пару дней до начала «Игромира» бот был запущен. Окончательная проверка, что всё работает и… ожидание часа X. В день старта у нас на стенде стояли промоутеры, которые предлагали принять участие в квесте. Кроме того, информация активно продвигалась в группах Kingston в соц.сетях, в Telegram-канале @HyperX_Russia (и ещё нескольких дружественных каналах). Как обычно на «Игромире» мобильный интернет работал прескверно, высокая загрузка сети часто не позволяла работать в LTE и 3G, хоть какой-то трафик со стабильным сигналом можно было гонять только по EDGE. Но Telegram – едва ли не единственный мессенджер, который нормально функционирует в сетях 2G, так что у наших гиков всё было в порядке (а некоторые даже умудрялись скачивать мессенджер из AppStore или Google Play прямо на мероприятии).

Как мы устроили квест в Telegram, и что из этого вышло. Объявляем конкурс - 5

На этапе задумки мы недооценили число участников квеста, из-за чего мощности хостинга на нашем тарифе перестало хватать для быстро обработки очереди участников – люди начали активно присылать не только ссылки, но и сами фотографии и скриншоты, чем создали краткосрочный затор. Приходило до 16 подобных сообщений с изображениями в секунду. Во время выставки разработчики дежурили в системном мониторе Heroku, поэтому проблема была быстро решена увеличением производительности хостинга для RabbitMQ.

Второй проблемой стал интерфейс самого Telegram. В самом начале мы спрашивали пользователя «Ready? Steady?», а ему нужно было нажать на кнопку «Go!», т.к. наш бот был кнопочным. Нам казалось, что это очевидный и единственный сценарий использования, пока пользователи не начали вводить слово «Go» вручную в поле ввода, причем в разных вариациях. Разумеется, алгоритм не понимал, что это в него тут пишут. К сожалению, заблокировать поле ввода в Telegram невозможно, т.к. это всё же мессенджер в первую очередь. Переписывать и перезапускать бота было проблематично, т.к. люди им пользовались и перезапуск сломал бы многим квест.

Как мы устроили квест в Telegram, и что из этого вышло. Объявляем конкурс - 6

Поэтому наш костыль был самым что ни на есть материальным: на помощь снова пришли промо-девушки, к которым обращались пользователи за помощью. Но на будущее мы запомним, что надо продумать то, что пользователь может писать в текстовое поле и, значит, нужно сделать обработку полученных данных. А также то, что пока роботы без людей существовать не могут, только в тесном симбиозе.

Как мы устроили квест в Telegram, и что из этого вышло. Объявляем конкурс - 7

За время работы над конкурсом мы выяснили несколько очевидных вещей:

1. Пользователь всегда найдёт способ повесить отказоустойчивую систему. В нашем случае графические файлы забили очередь, которая создавалась для коротких текстовых сообщений. Поэтому всегда надо оставлять солидный запас производительности на хостинге с возможностью ее быстрой настройки. Никогда не делайте всё «впритык».

2. Обязательно надо делать тест бота не только теми людьми, которые придумывали и разрабатывали механику, но и незнакомыми с квестом, чтобы проверить на неочевидные для нас сценарии поведения.

Сейчас бот @HyperX_bot продолжает свою работу с сообщением-заглушкой, однако базу и очередь мы уже отключили до следующего раза. За время выставки мы получили 5658 сообщений от 846 пользователей. Что интересно, хотя «Игромир» и считается мероприятием для молодой аудитории, средний возраст наших участников составлял 24-26 лет, что подтверждает нашу гипотезу об аудитории.

Параллельно мы запустили канал в Telegram — @HyperX_Russia, в котором на выставке у нас была прямая трансляция всего происходящего на стенде. И наши подписчики всегда могли узнать, поливают ли в данный момент там жидким азотом плашки памяти или Зевс раздаёт автографы. Изначально все активности в Telegram имели проектную основу, и были запанированы только на период выставки (и пару недель вокруг). Но за время работы на «Игромире» на наш канал подписалось более 1500 человек, поэтому мы решили не бросать его, а преобразовать его в некий филиал GeekTimes блога компании Kingston Technology. Для начала мы расширили тематику канала от игр в частности до технологий в целом и переименовали его в Red Head Pub (вы же знаете историю, почему на логотипе красная голова Рекс?). Сейчас там публикуются анонсы новых продуктов и акций, промо-коды на скидки, а также различные технологические новости, проводятся розыгрыши призов и многое другое. Заходите и смотрите сами: @HyperX_Russia (пст-пст, мы даже выпустили свой стикерпак!).

Конкурс

А теперь самое главное! Нам понравилось работать с ботом в Telegram, так что мы планируем и дальше его использовать, но сейчас решили обратиться за консультацией к сообществу. Итак, нам нужны ваши идеи, что можно реализовать в боте. Например, организовать в нём службу поддержки или использовать его для розыгрышей в канале. Но это может быть и какой-то квест или другая игра, ответы на часто задаваемые вопросы или что-то совершенно иное, но интересное.

Как мы устроили квест в Telegram, и что из этого вышло. Объявляем конкурс - 8

Подумайте и напишите в комментарии к этому материалу все свои идеи, и обязательно подпишитесь на наш блог на Geektimes. 16 января (да, вы можете думать все новогодние каникулы) среди тех, кто подписан на наш блог, мы выберем самые интересные идеи и выставим их на голосование в нашем канале в Telegram. А уже 20-го января подведем итоги, и того, чья работа наберет больше всего голосов, наградим SSD-накопителем HyperX Savage 240 Гбайт. Это самый быстрый твердотельный SATA-накопитель с 4-ядерным и 8-канальным контроллером Phison S10, который обеспечивает скорость чтения до 560 Мб/с. Его можно устанавливать в большинство ноутбуков, ПК и даже в домашние кинотеатры.

И не забудьте подписаться на наш канал @HyperX_Russia в Telegram.

Автор: Kingston Technology

Источник


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js