Как создать свою текстовую игру в Телеграм
Не так давно я выложил свою научно-фантастическую книгу в Литрес и подумал, что было бы неплохо как-то разнообразить ее продвижение. История располагает к тому, чтобы читатель сам выбирал что будет делать герой, меняя сюжет романа. Очевидное решение — текстовая новелла в телеграм-боте, запуск которой обошелся мне в 2 рабочих дня и 0 рублей.
Зачем делать игру
Первым делом нужно определиться зачем оно вам надо. У меня было несколько целей:
- маркетинг;
- портфолио;
- личный интерес.
А еще я хотел собрать простой сервис, который пересказывал бы основной сюжет для тех, кто хочет прочитать книгу, кто читает и кому нужна интерактивная закладка, кто прочитал и хочет все вспомнить или посмотреть на историю с другой стороны.
Как сделать сценарий игры
У меня был текст романа “Смертный Опыт”. Вы можете пойти по моему примеру и взять свою работу, или найти кого-то, кто даст вам свой текст и разрешение его использовать для разработки. Авторские права никто не отменял.
Создайте простую блок-схему сюжета. Я делал свою в Miro. Это поможет точнее спланировать ход истории; понять что и куда ведет; решить какие сюжетные точки нужны в новелле, а какие лучше опустить; какой текст нужно будет сочинить дополнительно. На этом этапе я обнаружил, что могу сделать 8 разных концовок, и воспользовался шансом.
Ромбами отмечены блоки, где нужно делать выбор, прямоугольные с закругленными углами — обычный текст, прямоугольные с прямыми углами — результат выбора. Красным я залил ложные концовки, а зеленым истинную. Вы можете делать как вам удобно.
Затем, когда структура истории сложилась, создайте таблицу в Excel или Google Sheets. В ней должно быть пять колонок:
- ID текстового блока;
- тип блока (сцена, выбор, верный финал или ложный);
- содержание блока (сам текст игры);
- кнопки (“Далее”, переход на страницу книги в Литрес и прочее);
- следующий блок (какая сцена запускается по кнопке “Далее” или при выборе).
Не перегружайте блоки кнопками или текстом: наша цель не читалку собрать, а игру, которую быстро и легко пройдут. У меня вышло около 70 сцен — только самые важные части сюжета, без флэшбэков, лишних описаний и второстепенных сюжетов. Чаще всего я брал готовый текст из романа и сокращал его.
Генерируем код для игры
Наверное, самая простая часть работы. Когда таблица и блок-схема готовы, скармливаем их нейронке Cursor. К сожалению, я потерял свой промпт, но попытаюсь восстановить по памяти.
Нужно создать текстовую новеллу в телеграм-боте. Даю схему и сценарий. Код буду заливать на GitHub, запускать на Render. Нужна будет инструкция как залить результат в GitHub и запустить в Render. В боте в меню будут кнопки /start для запуска бота и чтобы начать заново, /buy для перехода на страницу книги.
Коротко и просто. Затем следим за процессами, нажимаем ОК в нужные моменты и забираем готовую игру. Будут вопросы по работоспособности кода или почему ничего не запускается — возвращаемся с логами об ошибках из Render в чат и получаем решение. Нужна детальная инструкция что делать дальше — опять возвращаемся в чат с ИИ.
Техническая часть
Создаем телеграм-бот в специальном BotFather и получаем его API токен.
Входим в GitHub и создаем новый репозиторий, куда загружаем все файлы, которые создал для вас Cursor.
Затем заходим в Render с помощью аккаунта в GitHub, создаем проект… Знаете, подробнее и точнее вам расскажет Cursor. Когда же все токены и прочие нюансы внесены, нажимаем “Deploy”.
С первого раза запуск не всегда получается. В этом случае копируем последние логи и даем их ИИ. Он переписывает часть файлов и дает инструкции что делать дальше. Обновленные файлы нужно залить в репозиторий GitHub. Render запустит деплой последнего коммита автоматически.
Мне кажется, работу с GitHub можно провести быстрее и эффективнее, может быть даже напрямую из нейронки, но я пока до этого не дорос, не знаю точно.
Важно помнить, что бесплатная версия Render держит вашего бота в активном состоянии ограниченное время. Если его никто не трогал 15 минут, он засыпает до момента, пока не дернут, и первый отклик может идти до игрока примерно минуту-две, потом все будет мгновенно… пока бот снова не уснет. Решить вопрос можно через сервис Uptime, о котором тоже можно спросить у Cursor.
Результат
Ваша собственная интерактивная новелла в Телеграм! У меня ушло два дня на все, но я склонен к гиперфокусу и не ложусь спать, пока что-то не доделаю. Даже эту статью от идеи до последней точки я написал за час, после полуночи.
Для пробы не замахивайтесь сразу на роман, потренируйтесь на рассказе или повести.
В названиях проектов используйте только нижнее подчеркивание, либо пишите все слитно. Поможет избежать самых банальных проблем и сэкономит ИИ-токены.
Поиграть в мою текстовую игру “Смертный Опыт” можете здесь.