Как я сделал эмулятор SEGA прямо в Telegram за один вечер
Идея пришла случайно. Листал старые игры, вспомнил детство — Sonic, Streets of Rage, Mortal Kombat. Подумал: а что если запустить это прямо в Telegram, без скачиваний и установок?
Оказалось — реально. И быстро.
Что получилось
Telegram Mini App с эмулятором SEGA Mega Drive. Открываешь бота, выбираешь игру из 23 классических тайтлов, нажимаешь "Новая игра" — и через несколько секунд играешь. Полноценный 6-кнопочный геймпад прямо на экране телефона, система сохранений, обложки игр.
Никаких загрузок. Работает на любом устройстве где есть Telegram.
Стек
EmulatorJS — опенсорсный WebAssembly эмулятор, который умеет запускать ROM-файлы прямо в браузере. Хостинг — Cloudflare Pages, бесплатно. Уведомления о том кто и в какую игру играет — через Cloudflare Worker и Telegram Bot API. Сохранения — IndexedDB прямо в браузере пользователя, без сервера.
Самое интересное
Геймпад пришлось делать с нуля. Стандартные кнопки не работали — Telegram WebView перехватывал касания. Пришлось разобраться как правильно слушать touch-события и не конфликтовать с нативным скроллом.
Сохранения хранятся в IndexedDB — без лимитов, без сервера, работает офлайн. Каждая сессия создаёт новый слот с датой и временем старта.
Итог
От идеи до рабочего бота — один вечер. Попробовать можно здесь: