Всем привет. Пока мои друзья сражаются в «обычных» шутерах или проходят сюжетные RPG, я сижу в тени. Нет, не потому что меня забанили. Просто я смотрю на игры иначе. Я не могу просто играть — мне хочется понять, как они устроены, разобрать их на винтики и собрать заново. Моя страсть — это разработка, но когда речь заходит о досуге с друзьями, на сцену выходит Telegram. Именно здесь, в привычном мессенджере, я нашел идеальный полигон для своих экспериментов. И сегодня я расскажу, как создавать игры для Telegram, в которые, возможно, скоро сыграют и ваши друзья.
Распишу пошаговый разбор процесса: от идеи до работающего бота с оригинальным движком Dino из Chromium
В этой статье я расскажу:
Как я взял оригинальный код Chrome Dino и адаптировали его под Telegram
Какие проблемы были с BotFather и кнопкой меню
Как задеплоил всё на бесплатный ботов
Сколько времени заняло и сколько стоило
Идея была сделать игру для Telegram
Сделать игру, которая запускается прямо в Telegram, без переходов на сторонние сайты
Использовать не упрощённую копию, а оригинальный движок T-Rex Runner из кода Chromium (лицензия BSD)
Добавить Telegram-бота с красивым меню, картинкой и кнопками
Оригинальный код Google можно легально использовать. Лицензия BSD позволяет.
Telegram Mini App — это не всегда про Telegram API. Мы вообще его не использовали, а Mini App работает.
Можно сделать полноценный продукт за час. У нас ушло 57 минут.
Ответы на возможные вопросы
В: А Google не пришлёт DMCA? О: Нет. Код распространяется под BSD-лицензией. Мы не воруем спрайты, не нарушаем товарные знаки. Это официальный open-source проект Chromium.
В: Почему не использовали Telegram Web App API? О: Хотели показать, что даже без него можно сделать Mini App. Но в статье мы даём инструкцию, как добавить.
В: А зачем тогда статья про Telegram, если API не используется? О: Потому что это всё равно Telegram Mini App. Он открывается через WebApp, работает внутри мессенджера, не требует браузера. Это и есть суть.
В: Можно добавить счёт в шапку Telegram? О: Да, через tg.setHeaderColor(). Мы не делали, но вы можете.
Заключение
Мы сделали то, что хотели: оригинальный Chrome Dino внутри Telegram, бот с красивыми кнопками, исходники в открытом доступе.
Никаких упрощений. Только оригинальный движок Chromium.
Если у вас есть вопросы — пишите в Issues на GitHub. Если хотите повторить — просто копируйте исходный код.
Статья написана специально для Хабра. Все исходники открыты, код можно использовать в любых проектах, включая коммерческие. Баги и пожелания — в Issues на GitHub.