Как сделать игру в Telegram

Игру в Telegram делают на HTML5 и подключают к боту. Отправьте @BotFather команду /newgame, добавьте описание и картинку, и бот сможет присылать игру в чат сообщением с кнопкой Play. По нажатию Telegram откроет страницу с игрой, а рекорды покажет прямо в сообщении. Играть можно одному или соревноваться в группе.

6 шагов · обновлено

Смартфон с аркадной игрой на столе рядом с геймпадом

Как сделать игру в боте: 6 шагов

  1. Создайте бота

    В @BotFather отправьте /newbot, задайте имя и юзернейм с окончанием bot. Если бот уже есть, переходите к следующему шагу.

  2. Зарегистрируйте игру

    Отправьте @BotFather команду /newgame и выберите бота. BotFather попросит описание и картинку. По желанию добавьте GIF с игровым процессом: с ним сообщение с игрой заметнее.

  3. Сделайте страницу игры

    Игра это HTML5-страница по ссылке. Она должна подстраиваться под экран и работать во всех приложениях Telegram. Если какая-то платформа не поддерживается, покажите игроку предупреждение.

  4. Отправьте игру в чат

    Код бота присылает игру методом sendGame или через инлайн-режим. Под сообщением всегда есть кнопка Play с названием игры.

  5. Открывайте игру по кнопке

    Когда игрок нажимает Play, бот получает запрос с коротким именем игры (game_short_name) и отвечает методом answerCallbackQuery со ссылкой на страницу. Telegram откроет её во встроенном браузере.

  6. Подключите рекорды

    Метод setGameScore записывает результат: таблица рекордов в сообщении с игрой обновится сама. Метод getGameHighScores отдаёт рекорды, чтобы показать таблицу внутри игры.

Команды @BotFather для игр

КомандаЧто делаетКогда нужна
/newgameСоздаёт игру: описание, картинка, GIF по желаниюВ самом начале
/listgamesПоказывает список ваших игрЧтобы найти нужную игру
/editgameПравит игруСменить описание или картинку
/deletegameУдаляет игруИгра больше не нужна

Пример: кнопки под сообщением с игрой

Сообщение: картинка игры «Пингвин на льдине», описание «Прыгай по льдинам и не упади в воду» и рекорды этого чата.

Кнопка 1, первая в первом ряду: Играть в «Пингвин на льдине». Первая кнопка всегда запускает игру.

Кнопка 2: Правила.

Кнопка 3: Сообщество игры.

Внутри игры кнопка «Поделиться счётом» вызывает TelegramGameProxy.shareScore() и отправляет игру с рекордом игрока в выбранный чат. Вызывать её можно только по нажатию самого игрока.

Как сделать игру в чате телеграм

Игру присылают в личный чат или в группу, и в группе игроки соревнуются между собой. Сообщение с игрой показывает рекорды этого чата. Когда кто-то ставит новый рекорд, в чат приходит служебное сообщение, а таблица обновляется.

Поделиться игрой можно стандартной кнопкой в правом верхнем углу. Ещё одну кнопку «Поделиться» делают на странице игры через скрипт telegram.org/js/games.js.

Игра на Gaming Platform или в мини-приложении

С апреля 2022 года игры можно делать и мини-приложением на JavaScript. С версии Bot API 8.0 мини-приложение умеет переходить в полноэкранный режим в портретной и альбомной ориентации, а это удобно для игр.

Gaming Platform проще для игр с рекордами в чате: таблица и служебные сообщения о рекордах работают сразу, без своего кода.

Где посмотреть примеры

В документации Telegram примерами игровых ботов названы @gamebot и @gamee.

Боты из каталога для этой задачи

  • BotFather@BotFather · бот

    создать бота, получить токен бота, настроить бота

    проверено Бесплатноанглийский

    Открыть бота
  • Quiz Bot@QuizBot · бот

    сделать викторину, тест для учеников, викторина в группе

    проверено Бесплатноанглийский

    Открыть бота

Частые вопросы

Как сделать игру в телеграм боте?

Отправьте @BotFather команду /newgame, добавьте описание и картинку, сделайте HTML5-страницу игры. Бот присылает игру методом sendGame, а по кнопке Play открывает страницу через answerCallbackQuery.

Как сделать игру в чате телеграм для друзей?

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

Можно ли поменять кнопки под игрой?

Можно добавить свои кнопки, например с правилами. Первая кнопка в первом ряду всегда должна запускать игру.

Почему изменения игры не видны сразу?

BotFather предупреждает, что изменения вступают в силу через несколько минут.

Источники

Обновлено