Андрей globall.dev zallord Сбер ID
Telegram-боты, Mini App, SaaS и веб-сервисы под ключ
Рейтинг
1 756
№ 571 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Москва
Опыт работы
7 лет
На сайте с
2019 года
Юридический статус
ИП
Freelance.Boutique
Премиум-сервис для лучших исполнителей

Telegram-игра для канала - короткие раунды, энергия и лидерборд среди друзей

Используемые навыки PostgreSQL Python Telegram API Веб-приложение Обработка платежей

Описание

Заказчик - владелец Telegram-канала на 214 тысяч подписчиков, медиа про технику и игры.
Просмотры поста набегали в первый вечер и дальше почти не росли, заметная часть аудитории заходила в канал раз в неделю.
Конкурсы с розыгрышем пробовали, но активничали только охотники за призом, после розыгрыша всё падало обратно.
Хотел повод возвращаться каждый день и без раздачи денег.
Попросил игру внутри Telegram - раунды короткие, чтобы играли в метро, и рейтинг, чтобы было с кем меряться.
Отдельно оговорили вечерний наплыв: канал постит в 19:00, и трафик приходит одним куском за десять минут.

Решение

Mini App на React, бэк - FastAPI, бот на aiogram 3, база PostgreSQL, Redis под лидерборды и энергию, всё в Docker на VPS.
Раунд длится 45 секунд, механика на реакцию - ловишь цели, за серию попаданий растёт множитель.
Энергия: пять попыток, одна возвращается за 20 минут. Восстановление не крутится таймером, а считается от времени последней траты - иначе на пике это тысячи фоновых задач.
Внутренняя валюта - монеты за раунды, за серию и за друзей, тратятся на энергию и на скины.
Серия входов считается по датам в часовом поясе игрока, на седьмой день крупный бонус, пропуск обнуляет, один раз серию можно выкупить за монеты.
Счёт раунда не решается в браузере, то-есть клиент шлёт лог событий, а сервер проигрывает раунд заново и сверяет результат.
Античит отсекает невозможное - слишком частые тапы, ровные до миллисекунды интервалы, счёт выше физического максимума за 45 секунд. Спорные раунды уходят в отдельную таблицу на просмотр, а человека не банит: живые рекордсмены попадали туда чаще ботов.
Лидерборды на sorted set в Redis - общий, недельный и среди друзей, своё место берётся одним ZREVRANK, а не пересчётом таблицы.
Обновление рейтинга - short-poll раз в 5 секунд, пока экран открыт. От WebSocket отказался: держать 4-5 тысяч соединений в пик дороже, чем отдать закешированный ответ.
Результаты не пишутся в базу по одному, а копятся и уходят пачкой раз в две секунды - вечерний наплыв иначе кладёт запись на диск.
Приглашение - ссылка со стартовым параметром, бонус идёт обоим, но пригласившему он падает после первого сыгранного раунда друга, иначе набивают пустых.
Монетизация - Telegram Stars за энергию и косметику, так-же между раундами показывается блок спонсора, показы и клики считаются отдельно.
Админка владельцу: игроки за день, возврат на первый и седьмой день, раунды на игрока, выручка в Stars по часам и настройки спонсорского блока.

Результат

Игру повесили кнопкой в боте и закреплённым постом в канале, за первую неделю зашли около 26 тысяч человек.
На седьмой день возвращается около 15% из тех, кто сыграл хотя бы раз, вечерний пик сервер проходит без очереди.
У канала появился свой повод для поста - итоги недельного лидерборда, в этот час просмотры выше обычных.
Блок спонсора внутри игры продали первому рекламодателю на месяц, статистика показов у владельца в админке.
Исходники, админка и инструкция остались у заказчика - баланс энергии, цены в Stars и тексты он правит сам.
Уже после приёмки добавил сезоны: рейтинг обнуляется раз в месяц, призовые места на закрытии сезона забирают монеты.
Демо игры и скриншоты приложены к работе.

Оценили проект:

Другие проекты

Все проекты →
Искусственный интеллект Распознавание документов и фото в боте - накладные и заявки без ручного ввода
Распознавание документов и фото в боте - накладные и заявки без ручного ввода
17
Маркетинг и Продвижение Лендинг с квизом и заявками в Telegram - вопросы по шагам и вилка цены в конце
Лендинг с квизом и заявками в Telegram - вопросы по шагам и вилка цены в конце
14
Веб-разработка и IT Парсер маркетплейса с выгрузкой в Google Таблицы и алертами в Telegram
Парсер маркетплейса с выгрузкой в Google Таблицы и алертами в Telegram
16
Веб-разработка и IT Единое окно переписки - Avito, WhatsApp, VK и почта в одном списке, таймер ответа и отчёты
Единое окно переписки - Avito, WhatsApp, VK и почта в одном списке, таймер ответа и отчёты
14