Идея создания

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

Так появилась идея создать бота, который каждый день выдаёт пользователю рандомное количество очков. Эти очки можно использовать для игр, передачи другим участникам и даже монетизировать через покупки бонусов.

Основной функционал

Рандомные очки Каждый день пользователь мог получить случайное количество очков, введя определённую команду. Это добавило элемент азарта и мотивацию регулярно взаимодействовать с ботом.

25 01 23 pzauy

2. Передача очков Очки можно было легко передавать другим пользователям с помощью простой команды. Это сделало процесс более социальным и позволило участникам организовывать мини-соревнования.

25 01 23 qxrck

3. Игра «Крестики-нолики» онлайн Ключевой особенностью стала возможность сыграть в «Крестики-нолики» с другими пользователями в реальном времени. Для этого я реализовал сервер на WebSocket. Почему WebSocket? Потому что он позволяет обрабатывать обмен данными между игроками в режиме реального времени. Игроки могли создавать комнаты, так же была возможность для желающих быть зрителем, а игра была простой и понятной.

toe

4. Интеграция с Stripe Чтобы добавить монетизацию, я подключил платёжную систему Stripe. Пользователи могли покупать дополнительные бонусы и очки, которые открывали новые игровые возможности или увеличивали их шансы на победу.

5. Бонусные фишки Я внедрил различные бонусы, которые можно было получить за выполнение определённых действий: приглашение новых пользователей, победы в играх или покупки через Stripe. Это сделало процесс более увлекательным.

25 01 23 scsht

6. Статистика и уникальные очки для каждого чата Я добавил систему статистики, которая позволяла отслеживать активность пользователей. Для каждого чата были предусмотрены уникальные очки, но бонусы, приобретённые пользователем, можно было использовать во всех чатах. Это означало, что очки покупались глобально и могли активироваться в любом месте, где бот был добавлен.

Техническая реализация

  1. Серверная часть Сервер был написан на Python с использованием FastAPI. Для WebSocket я использовал библиотеку websockets, которая обеспечила стабильный и быстрый обмен данными между игроками.
  2. База данных Все данные временно хранились в SQLite. Это позволило быстро начать разработку, но в будущем я планирую перейти на MariaDB для повышения производительности и масштабируемости. (Успешно мигрировали на MariaDB)
  3. Stripe API Интеграция с платёжной системой была реализована через официальное API Stripe. Я настроил обработку вебхуков для отслеживания платежей и их подтверждения.
  4. Telegram Bot API Я использовал библиотеку python-telegram-bot, которая упростила разработку и позволила быстро настроить обработку команд, интеграцию игр и передачу очков.

Обновление проекта: что появилось после релиза

После запуска первой версии бот начал стабильно жить в чатах, и я довольно быстро понял две вещи:

  1. людям нравится соревновательный геймплей, но им не всегда хватает второго игрока;
  2. продукт упёрся в потолок Telegram-UI — хотелось больше «контента» и нормальной витрины.

Так появилось сразу три больших апдейта: AI-соперник, веб-авторизация и кейсы.


1) Игра против бота: добавил Minimax-AI

Самая очевидная боль игроков: «хочу сыграть прямо сейчас, а друзей онлайн нет».
Поэтому я реализовал режим Player vs Bot.

Как работает AI

Я добавил алгоритм Minimax — он рассчитывает лучший ход, перебирая дерево возможных партий:

  • оценивает будущие позиции как победные/проигрышные/ничейные;
  • предполагает, что противник тоже ходит идеально;
  • выбирает ход, который максимизирует шанс победы или гарантирует ничью.

Из-за маленького поля (3×3) алгоритм работает мгновенно даже на сервере бота, без оптимизаций уровня alpha-beta.

Что это дало продукту

  • игра стала самодостаточной: можно играть в любое время;
  • порог входа ниже — новичок может потренироваться;
  • выросло число партий на пользователя.

2) Веб-приложение и авторизация через бота

Когда я начал делать веб-часть, было важно не плодить отдельные аккаунты/пароли.
Поэтому я сделал авторизацию через Telegram-бота:

Флоу примерно такой:

  1. пользователь открывает сайт;
  2. жмёт «Войти через Telegram»;
  3. бот присылает подтверждение;
  4. сайт получает токен и подтягивает профиль, баланс, инвентарь.

То есть бот остаётся центральной точкой аккаунта, а web — просто расширенный интерфейс.
Плюс это безопаснее и проще для пользователя: вход реально «в один клик».

3) Кейсы: как бот вырос в мини-платформу

Вот тут самое важное обновление.
Я запустил сайт бота: https://unluck.ognito.top/
и добавил механику кейсов как новый слой экономики.

Что такое кейсы в моём проекте

Кейс — это сущность, которую можно открыть за очки и получить случайную награду.
Награда бывает разной редкости и ценности (редкие плюшки, ивентовые предметы).

По сути, кейсы — это:

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

Почему это вынесено в веб

Сделать витрину кейсов внутри Telegram возможно, но неудобно:

  • каталог и карточки в боте выглядят бедно;
  • анимации открытия почти невозможно сделать красиво;
  • быстро развивать UI тяжело.

Web-приложение даёт:

  • нормальный каталог/витрину кейсов;
  • историю открытий;
  • приятный UX (карточки, шансы, оформление, анимации);
  • быстрые обновления без изменения бота.

Как синхронизируется бот и сайт

Я сделал это не как отдельный сервис, а как продолжение бота:

  • баланс хранится на стороне бота/бекенда;
  • сайт показывает баланс и списывает цену кейса;
  • результат открытия записывается в профиль;

Получается единая экосистема:
Telegram — быстрые действия и общение, Web — контент и визуал.

Эффект от кейсов

После запуска кейсов проект заметно оживился:

  • увеличилось количество входов «просто открыть кейс»;
  • выросла ценность ежедневных очков — теперь у них есть яркая цель;
  • монетизация стала гибче: можно продавать не только очки, но и кейсы/наборы/сезонные штуки.

4) P2P-площадка: экономика стала «живой»

Когда кейсы начали активно открываться, стало очевидно: у пользователей появляется лут/награды, и им нужен способ взаимодействовать друг с другом, а не только с ботом. Поэтому я добавил P2P-площадку — место, где игроки могут обмениваться и торговать между собой.

Что это дало:

  • Вторичный рынок. Теперь ценность наград определяется не только шансами выпадения, но и спросом внутри комьюнити.
  • Новая мотивация. Открывать кейсы стало интереснее, потому что редкие дропы можно не просто «держать», а использовать в обменах/торговле.
  • Социальный слой. Игроки начали общаться и договариваться, формируя вокруг проекта маленькую экономику.

По сути, кейсы сделали контент, а P2P — реальную игру вокруг этого контента.


5) Рекорд первого дня

Запуск сайта оказался очень живым: в первый день пользователи открыли 1200+ кейсов.
Для меня это стало лучшим подтверждением, что механика «зашла» и проекту нужен дальнейший рост именно в сторону контента и экономики.


6) Куда развиваю дальше: предметы и крафты

Сейчас я думаю двигаться в сторону более «игрового» слоя поверх P2P и кейсов:

Система предметов

Хочу сделать разные типы предметов/лут-единиц (категории, ограниченные серии, бустеры).
Это позволит:

  • разнообразить награды в кейсах;
  • сделать коллекционирование;
  • добавить долгие цели для активных игроков.

Крафты (crafting)

Следующий логичный шаг — крафт-система:
пользователь сможет комбинировать предметы/ресурсы и получать что-то новое или апгрейдить существующее.

Зачем это нужно:

  • появится «сжигатель» лишнего лута, чтобы экономика не раздувалась;
  • игроки начнут планировать и собирать сеты;
  • ценность предметов станет глубже, чем «повезло/не повезло в кейсе».

P2P-рынок + предметы + крафт = уже не просто «бот с играми», а полноценная мини-игровая экосистема.

7) Рулетка апгрейда: следующий уровень азарта

После появления кейсов и P2P стало ясно, что экономике нужен ещё один «сжигатель» лута и при этом — новая азартная механика. Сейчас я делаю рулетку апгрейда:

  • пользователь выбирает предмет/награду или ресурс;
  • ставит его на апгрейд;
  • получает шанс улучшить его до более редкого тира;
  • при неудаче предмет сгорает (или превращается в ресурс).

Эта механика добавляет:

  • глубину экономике (не всё крутится вокруг открытия кейсов);
  • драму и эмоции — как раз то, что делает игровые системы «живыми»;
  • контроль инфляции — лишний лут уходит из оборота.

Рулетка хорошо стыкуется и с кейсами, и с P2P-рынком: редкие предметы получают ещё одну траекторию ценности.

8)План развития: реальные Telegram-подарки из кейсов

Следующий крупный шаг — подключить в кейсах возможность выигрывать реальные Telegram-подарки.

Telegram в 2024–2025 развил систему Gifts и Stars: пользователи могут получать и показывать подарки в профиле, а часть подарков можно конвертировать в Stars или делать коллекционной.

Моя идея такая:

  • сделать лимитированные кейсы, где часть дропа — это именно Telegram Gifts;
  • при выпадении подарка бот отправляет его пользователю прямо в Telegram;
  • это превращает кейсы не только в внутриигровую механику, но и в реальный «вау-приз» внутри платформы, который виден в профиле.

Почему это важно для продукта:

  • ценность кейсов растёт (дроп становится ощутимее, чем просто внутренняя валюта);
  • появляется очень сильная редкая награда, вокруг которой можно строить сезоны и ивенты;
  • P2P получает новый «премиальный» слой экономики.

9) Обновлённые планы (коротко)

Дальше развитие проекта вижу так:

  • запустить рулетку апгрейда и завязать на неё часть прогрессии;
  • добавить систему предметов (разные тиры, категории, ограниченные серии, бустеры);
  • внедрить крафты как способ комбинировать/апгрейдить предметы;
  • выпускать сезонные/ивентовые кейсы;
  • подключить Telegram Gifts как редкий дроп из лимитированных кейсов;
  • продолжать допиливать баланс, UX и анти-абьюз механику.

Добавить бота можно тут @unluckich_bot

Сайт: https://unluck.ognito.top/