История одного бота

от автора

Всем привет!

Последние 4 месяца я занят разработкой некоммерческого [ботая в него ежедневно играет от одной до четырех сотен людей и для меня это большой успех. Если вам интересна история разработки, то прошу под кат (:

Начало

Немного об обстоятельствах, которые толкнули меня на это. Играясь в @godnotbot (кстати, рекомендую) захотелось создать свою текстовую бродилку с подземельями и драконами.

Определившись, что это будет текстовая РПГ в Telegram, я задумался над тем, что будет внутри этой РПГ. А внутри было схожее с годноботом решение — случайные комнаты или ситуации. Нажми на кнопку, получишь новую комнату. Ко всему прочему, были боги, которые давали различные бонусы за молитвы и злились, когда от них уходили в другую веру. А также, магазин, где продаётся всякого рода барахло облегчающее ваш путь к неизбежной смерти.
С концептом разобрались, теперь нужно было делать. Для разработки я выбрал Python. Почему? А почему бы нет — ботов на нем написано уже много, да и язык приятный.

Завязка

В итоге на свет появился простенький бот с чуть более, чем десятком комнат. Самого бота теперь можно всегда найти здесь. Детище было показано всем друзьям и на этом его история чуть не закончилась. Игра была спасена от забвения внезапной мыслью: а было бы неплохо показать кому-нибудь ещё.
У друга взял покататься VPS, настроил настройки, и запустил бота в бесконечный цикл. После чего на скорую руку сваял группу в ВК и написал пост на Пикабу. Сам того не зная, как мне объяснили позже, я выбрал время для поста настолько хорошо, что поймал всю свою аудиторию и в первый день познакомиться с ботом пришли 3,000 человек. Это было круто. Но тут же возникли проблемы.

Ситуация первая

Telegram не разрешит вам отправлять очень много сообщений. Но “много” у всех разное. Есть ограничения на сообщения в минуту в приватный чат, группу, на общее количество сообщений в день, в секунду во все чаты. Как это работает точно и точные числа неизвестны. Да, на сайте есть про это три абзаца, но на деле все сводится к тому, что есть пределы, вы можете их нарушать, но никто не знает, что тогда произойдет. Поэтому я поставил ограничение на отправку 30 сообщений в секунду и все ошибки ушли. Но в час-пик пользователям иногда приходилось ждать своих сообщений дольше десяти секунд.
Написал в саппорт, что не можем это терпеть. Спустя несколько дней там сказали, что нужно написать в саппорт по ботам. Саппорт по ботам, спустя еще несколько дней вынес вердикт: живи с этим, ничего не поделать. Порекомендовали ещё использовать inline кнопки, но этот вариант меня не устраивал — тогда будет теряться история сообщений. В итоге пришлось остаться на тридцати сообщениях в секунду и на этом остановиться.

Ситуация вторая

Проект был полностью открытым (и остается таким до сих пор! Вот исходный код) и это сыграло важную роль в развитии проекта — люди начали помогать: присылать свои идеи, править код, рисовать для бота. А главное, появилось несколько волонтеров, которые на постоянной основе помогают с ботом до сих пор. Это Андрей, Владислав и Алексей (так же хотелось бы отметить Эрика, он так же всегда помогал мне с ботом, хоть и немного не там, где это делали все остальные (: ). А еще чуть позже для всей игры был нарисован свой стикерпак (Спасибо Алексею за этот труд).
Этим абзацем я хочу заметить, что если вы не жадина и не боитесь кражи кода, то можно просить помощи у вашего же комьюнити и, скорее всего, вам помогут. А если вы думаете, что ваш код кому-то нужен — не волнуйтесь, вы наберете большую аудиторию, чем люди, укравшие у вас код (хотя может не повезет и все пойдет наперекосяк, но это значит, что либо вы где-то повернули не туда, либо вор инвестирует в клона большие деньги. Но идею у вас все равно всегда смогут украсть).

Сюжет

Идей уйма, пользователи есть, процесс идет, что дальше? Дальше мы задумываемся о переводе своего продукта на самообеспечение. Не долго думая, я организовал добровольные пожертвования на Яндекс.Деньгах и, собственно, на этих деньгах бот живет до сих пор, и это греет душу.
В ноябре на связь вышла поддержка, напомнив об ограничениях по количеству сообщений и предложила частично их снять, в качестве исключения популярному боту. Теперь мы можем моментально отвечать в обход ограничений (если команда Telegram пожелает, она всегда может вернуть их нам). Мы сняли режим очереди в коде, но позже обнаружили, что ограничения никуда не делись. Поддержка ответила, что моментально можно отвечать только короткими сообщениями, то есть менее 500 символов. Грустно, но правила диктуем не мы.
А прямо сейчас мы вместе с комьюнити переводим бота на английский язык. Там свыше 1,800 фраз, некоторые из которых длинные, а некоторые нельзя просто так перевести. Например: "ЗА ВДВ!". Сейчас игра полностью переведена и находится у редактора на корректировании.

Развязка

Что я хотел? Тектовое РПГ в телеграме.
Что я получил? Бота, в которого каждую неделю играет тысяча человек, в которого убивают время в пробках, и 4 месяца разработки с веселыми людьми, а также интересные знакомства.
А пока готовимся к переводу, выпуску бота в веб и внедрению масштабной мультиплеерной системы (:

Что из этого выйдет? Кто знает…

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

ссылка на оригинал статьи https://habrahabr.ru/post/317834/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *