Перейти к содержимому

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

  • автор:

Игровая платформа

Боты теперь могут предлагать пользователям поиграть в HTML5-игры, в группе или приватных чатах. Игры — это новый тип контента, который бот может отправлять пользователям.

Играйте с друзьями

Примечание

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

Чтобы посмотреть на способности игровой платформы, попробуйте поиграть через ботов @gamebot и @gamee.

Создание игры

Чтобы создать игру, вам необходимо отправить команду /newgame боту @BotFather. В процессе создание вы должны будете ввести название игры, описание, фото и необязательную анимацию геймплея. Игры с анимированной картинкой выглядят более привлекательно в списке (примеры: Lumberjack и Corsairs).

Запуск игры

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

Добавление кнопок

Если вы отправите сообщение без кнопок вообще, то к нему автоматически добавится стандартная кнопка «Играть в ИмяИгры». Однако, вы можете добавлять к сообщению и другие кнопки: например, с описанием правил или ссылкой на официальное сообщество.

Важная информация

Первая кнопка в сообщении всегда должна выполнять функцию открытия игры.

Таблица рекордов

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

Таблица рекордов в игре Lumberjack

Отправка результатов в чат

В интерфейсе игры в правом верхнем углу всегда будет находиться стандартная системная кнопка «Поделиться»:

Кнопка поделиться в iOS

Также вы можете создавать дополнительные кнопки в HTML-странице. Нажатие на такую кнопку приведёт к открытию желаемого чата и отправкой в него сообщения с количеством набранных очков в игре.

Интерактивная таблица

Чтобы добавить такую кнопку на страницу, добавьте этот скрипт перед закрытием тэга :

Примечание

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

По нажатию на кнопку должен вызываться метод TelegramGameProxy.shareScore() .

Пример вызова

  

Предупреждение

Запрещается вызывать этот метод без участия пользователя. Он должен вызываться только при прямом намерении пользователя нажать на кнопку.

Использование параметров URL

Если в вашем URL используется хэш, то имейте в виду, что Telegram может к нему что-нибудь добавить. Названия добавленных параметров будет начинаться с tg (вот пример кода, который их добавляет: games.js#L54). Чтобы достать свои собственные параметры из адреса, вы можете воспользоваться объектом TelegramGameProxy.initParams .

Позаботьтесь об UX

Пожалуйста, протестируйте своё приложение на максимальном количестве разных экранов и ориентаций. Если по каким-то причинам на определённых экранах ваше приложение не работает — не бросайте это просто так и оповестите пользователя — хотя бы просто уведомлением.

Сайт про Telegram на русском (неофициальный).

Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.

Как создать игру в telegram?

Создал бота. Включил inline режим. Зарегистрировал игру (/newgame) . Привязал её к боту. Даже инлайн сообщения с игрой могу кидать. Не могу понять куда запихнуть url ? Нужно ли создавать объект типа Game и как его передавать в inlinequery .
Ни на ютубе, ни в гугле — нигде нет даже простого гайда по созданию игры, привязке к боту и расшариванию её.

Отслеживать
5,970 3 3 золотых знака 22 22 серебряных знака 44 44 бронзовых знака
задан 24 фев 2018 в 8:57
349 3 3 серебряных знака 15 15 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Телеграму не нужно знать ни HTML , ни CSS , ни JS коды вашей игры. Нужно только 3 основные составляющие.

  1. Создать бота и включить у него inline режим.
  2. Зарегистрировать игру в том же BotFather и привязываем к боту. Инструкция не нужна. Всё пошагово вам объяснит бот.
  3. Пишем игру ( HTML , CSS , JS ) и заливаем на хостинг. Даже gitpage подойдёт.

Остается объединить это всё:

// ссылка на игру в сети интернет let url = 'http://siteWithGame.com' // название игры (то, что указывали в BotFather) const gameName = "yourGameName" // Matches /start bot.onText(/\/start/, function onPhotoText(msg) < bot.sendGame(msg.chat.id, gameName); >); // Handle callback queries bot.on('callback_query', function onCallbackQuery(callbackQuery) < bot.answerCallbackQuery(callbackQuery.id, < url >); >); 

Т.е. бот может в ответ на какой-то запрос отправить игру bot.sendGame(. ) .
Грубо говоря, это будет сообщение с картинкой и описанием игры и под этим сообщением callBack кнопка, ведущая на сайт с игрой.
При нажатии на кнопку открывается страница с игрой в приложении Telegram.

Вот здесь есть реализация и комментарии (node-telegram-bot-api).

Как создать игру в Telegram за 20 недель и не спиться

Всем привет! Мы команда Dev’s Battle. В этом посту расскажем о том, как мы создавали наш продукт (MMO RPG игра в телеграм для разработчиков), с какими ошибками столкнулись, и как дожили до релиза.

В этом посте не будет много информации о тонкостях разработки, его мы посвящаем теме продукт девелопмента. Если у вас возникнут вопросы или комментарии по коду — мы с радостью напишем еще одну статью, где раскроем и эти детали (если конечно аудитория хабра будет к нам благосклонна ;]

Даже успели запилить красивую обложку ;)

С чего все началось

Однажды мы решили сделать «продукт» для начинающих программистов, которые бы вобрал в себя все крутые фишки CodeWars, LeetCode и тысяч телеграмм каналов с задачками для разработчиков.

Прежде всего мы хотели создать геймифицированный образовательный инструмент, который будет полезен тысячам разработчиков по всеми миру и поможет убить 5-10 минут свободного времени с пользой. В качестве Front End решили взять Telegram ведь все мы тратим десятки часов своего времени именно там, а маркетинг для эппов мы бы точно не потянули.

Кстати, по нашему скромному мнению, вся геймификация во взрослом EdTech, что есть сегодня — полный отстой. Если вдруг кого-то мотивируют ачивки и поинты — дайте знать в комментах, интересно посмотреть

Основатель Dev’s Battle

Итак, с базой мы определились. С этого момента можно начинать отсчет времени разработки. Хотя начали мы конечно не с разработки, а с исследований. И вот как это было

Касдевы, анализы конкурентов и выбор сеттинга для будущей игры (1-3 неделя)

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

Конкурентный анализ

Для анализа конкурентов взяли: Java Rush, LeetCode, CodeWars, Habitika, Жабабот (кто в курсе, что это — с вас лайк), Mimo, Яндекс Практикум, Light Bot и еще пару приложений.

Лично потыкали все продукты и выписали на отдельную доску все крутые фичи, механики и маркетинговые трюки. На картинке их сильно меньше, так как многие уже забрали в прод и сеттинг игры.

Этот шаг очень помог нам понять, что работает, а что нет и сэкономил сотни часов разработки и тестов. Как говорят, все великое уже придумано за нас. Вот и вам советуем, перед тем, как что-то разрабатывать — идти и тыкать похожие продукты. Особенно советуем обратить внимание на ключевые механики, их реализацию, прогнать сайт или приложение через сервисы аналитики, типа SimilarWeb, попользоваться несколько дней самим.

Касдевы, проблемные интервью

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

В рамках касдевов мы определили три основных направления:

  1. Виральность — она была нужна нам, чтобы понять, что мотивирует пользователей делиться контентом и приглашать друзей. Вот тут нам и помог ЖабаБот, взяли для касдева их аудиторию. Кстати даже сумели пообщаться с их основателем.
  2. Основные проблемы разработчиков (пользователей LeetCode, CodeWars и тг каналов с задачками), их мотивацию и паттерны поведения. Все это нужно было нам, что сделать продуктом реально полезным и «не для себя», а для реальных людей.
  3. Наконец, мы хотели понять игровые предпочтения аудитории, узнав в какие игры и как часто они играют, на что тратят деньги и как пользуются продуктами. Кстати, тут же небольшой инсайд, оказалось что сеттинг и стилистика практически не важна, главное ее качество и проработка.

Прошли по полному циклу: разработка сценариев интервью, проведение интервью, доработка сценариев, поиск инсайтов и анализ ответов респондентов. Вот такая красота у нас получилась.

Касдевы, расшифровки и инсайды

Проектирование основных механик, экранов и онбординга (4-5 неделя)

Превосполнившись от полученной информации мы принялись проектировать первые механики. Для удобства сразу начали отрисовывать в формате схем и экранов (о чем кстати потом пожалели).

Боты и продукты в Telegram — очень сильно отличаются от мобилок отсутствием статичного экрана. То есть, если в условном приложении всегда есть кнопка «назад», то тут такой кнопки нет. Это бесконечная лента и весь процесс нужно выстраивать именно по этому принципу.

Какие основные механики мы заложили:

  1. Возможность решать задачи на языки программирования
  2. Основные артефакты MMO RPG: развитие персонажа, скиллы, игровая валюта, боссы, уровни прокачки
  3. Мультиплеерные фишки: рейтинги, ачивки, баттлы и так далее

После создания ключевых механик, мы принялись за онбординг. По нашему мнению, онбординг это одно из самых важных мест в любом продукте, будь то игра или банковское приложение. Ведь именно на онбординге человек принимает решение будет он пользоваться продуктом или нет, а также знакомится с ключевыми механиками.

Онбординг мы решили сделать в формате новеллы)) Заставляя пользователя нативно пройти по всем фичам (от создания персонажа до первого баттла с игровым боссом. Результаты кстати получили — суперские, более 70% конверсии из входа в финальную регистрацию и старт игры.

Вот так выглядела наша игра до начала разработки

Разработка MVP и основных механик (6-15 неделя)

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

За две недели нам удалось собрать крутую команду разработки из одного middle python девелопера и ментора с более 20+ опыта в разработке сложных IT продуктов.

Наш стек: Python, Django, PostgreSQL, PyTelegrambotAPI, Nginx, grafana

Разработку вели по спринтам в Jira, первые 2-3 недели потратили на базу данных. Правильная проектировка и сейчас помогает нам, когда мы настраиваем сложную аналитику или выкатываем новый функционал в продакшен.

Вот так незамысловато выглядели наши спринты. Верхнеуровневый план в Miro и задачки по каждому направлению в Jira

После базы данных, перешли к основным механикам, а далее к онбордингу и дополнительным фишкам, которые мы решили запустить уже на стадии раннего MVP. Итого, уже к 10 недели мы были готовы к закрытому бета тестированию.

И тут началось! В следующие 5 недель наша команда тонула в багах, которые прилетали откуда не возьмись.

Бесконечное количество карточек справа - это баги, которые наша команда сумела починить за месяц с небольшим работы

Регулярно падал крон, рейтинги, то приходили, то не приходили, бот останавливался, зарплата считалась не правильно, репутация считалась не верно, задачки не подгружались. Ломалось все, что может и не может ломаться. Но мы выжили)

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

К 16 неделе мы починили все баги, выпустили паблик версию игры, провели пасевы в телеграм каналах и закрепили это все порцией юзер интервью. Запуск прошел успешно. Наши ранние результаты:

1269 Зарегистрированных игроков спустя 3 недели с момента релиза.

Промежуточные итоги и будущее проекта

Внимательный читатель наверняка спросит, куда делись еще 5 недель из 20, указанных в заголовке. Отвечаем, это время мы не сидели сложа руки и развивали проект дальше, например, выкатывали новые фичи, делали собственную расширенную аналитику (Google Analytics и TG библиотеки нам не подошли, можем написать про это отдельную статью), тестировали маркетинговые гипотезы, локализовывали проект под ENG рынок, прошли в крутой Французский акселератор и многое другое.

Эта статья — про запуск продукта, поэтому про его развитие мы можем написать в следующей статье (если публике Хабр. ru это конечно нужно. P. S дайте знать в комментах если эта статья вам помогла или была полезна).

Например, можем рассказать как не найдя достойных аналогов, сами выстраивали всю систему аналитики внутри телеграм бота

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

А главное, этот продукт работает! И уже помогает сотням начинающих разработчиков развивать свои hard skills в программировании.

Как создавать игры в Telegram

Игры в телеграм

Буквально на днях, а именно 3 октября, разработчики Telegram анонсировали новость о том, что на их платформе теперь можно создавать игры. Доступны для игры как многопользовательский режим, так и игры одиночного уровня.

Ребята не стали изобретать велосипед в виде отдельного игрового движка или чего то в этом роде. Игры в Telegram можно создавать, используя знакомую всем связку HTML5 + JavaScript. На платформе уже доступно небольшое количество игр, включая полюбившуюся мне игрушку под названием Lumberjack, где задачей является срубить как можно больше веток у дерева.

Функционал доступен на iPhone >= 4 и Android >= 4.4, а также Telegram версии от 3.13. Для того, чтобы выбрать существующую игру, добавьте бота @gamee.

Как создать Telegram игру

Для того, чтобы создать игру в Telegram вам необходимо обратиться всё к тому же BotFather боту, который мы использовали при создании Telegram бота. Выполните команду: /newgame

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

  • Запрещается размещать рекламу и внешние ссылки на сторонние ресурсы
  • Запрещается взимать оплату с пользователей игры
  • Запрещается использовать данные, полученные в ходе игры, для последующих спам-рассылок среди пользователей Telegram
  • Запрещается делиться данными, полученными во время игры, со сторонними приложениями и сервисами
  • Запрещается устанавливать «куки» на страницах игры

Нарушение этих правил ведёт за собой удаление игры из платформы. Что касается монетизации Telegram игр, то администрация сервиса обещает в самое ближайшее время разработать подходящие для этого инструменты. Будем следить.

HTML5, JavaScript и CSS

Я уже достаточно давно убеждён в том, что в самом ближайшем будущем единственным приложением, которым мы будем чаще всего пользоваться, станет браузер. Это и сейчас правда: на замену настольному Office пришел Office 365, Google Apps, почта, игры, общение и органайзеры всё это уже доступно в браузере. Если каких-то 5-10 лет назад веб-страницы были жалким подобием настольных приложений, то сейчас мы уже пользуемся навороченными интерактивными веб-приложениями. Всё это стало доступно благодаря стремительному развитию браузерных движков, с каждым новым релизом появляются новые фишки в API. Интернет стирает цифровые границы: получайте доступ к данным из любой точки мира, всё что вам будет нужно — браузер 🙂

Полезные ссылки по теме

  • Анонс игровой платформы в Telegram блоге
  • Описание Gaming Platform для разработчиков
  • Telegram Game API
  • Как создать Telegram бота

Интересные записи:

  • Инструкция по работе с DoubleClick
  • Бесплатные SSL сертификаты от Let’s Encrypt

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

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