Один в поле воин. Как я в одиночку создал текстовую RPG в Telegram в духе S.T.A.L.K.E.R. и приглашаю вас на бета-тест

Привет, любители Геймдева, и отдельный привет разработчикам инди игр.

Как и многие здесь, я обожаю мрачную атмосферу S.T.A.L.K.E.R. и давно мечтал создать что-то свое в этом сеттинге. Но так как я не 3D-художник и не C++ гуру, мой выбор пал на то, что я умею лучше всего — Python и текст. Так родилась идея «Эхо Бездны» — текстовой RPG-выживалки, которая живет прямо в Telegram.

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

Один в поле воин. Как я в одиночку создал текстовую RPG в Telegram в духе S.T.A.L.K.E.R. и приглашаю вас на бета-тест

От идеи до кода: Немного о технической стороне

В качестве фундамента я выбрал связку Python + Aiogram 3, а для хранения данных игроков — SQLAlchemy с асинхронным драйвером. Главной задачей было создать не просто "бота с кнопками", а мир, который живет по своим правилам.

Основными вызовами для меня стали:

  • 1. Живой мир и случайные события. Мир представляет собой сетку 3x3 (пока что!), где каждая клетка — отдельная локация. Чтобы перемещение не было мгновенным, я реализовал систему "путешествия": игрок нажимает "вперед", и на 10 секунд запускается фоновая задача (asyncio.create_task), которая по завершении перемещает его в новую клетку. В это время могут произойти случайные события — от находки тайника до нападения мутанта.
  • 2. Борьба с "непослушными" кнопками. Самая большая головная боль. Игрок может быть в бою, в пути, в диалоге... Чтобы он не мог "сломать" игру, нажав не ту кнопку не вовремя, я реализовал систему статусов (PlayerStatus), которая хранится прямо в базе данных. Перед выполнением любого действия хендлер проверяет, свободен ли игрок. Это оказалось надежнее, чем FSM в памяти, так как переживает перезапуск бота.
Один в поле воин. Как я в одиночку создал текстовую RPG в Telegram в духе S.T.A.L.K.E.R. и приглашаю вас на бета-тест

Урок, который я выучил кровью: Баланс решает всё

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

Проблема: Игрок без оружия встречал первого же монстра и умирал, не имея ни единого шанса. Это было не сложно, а просто несправедливо.

Решение: Я понял, что игрок должен иметь возможность подготовиться. Я изменил стартовое количество денег так, чтобы ему ровно хватало на покупку одной аптечки у торговца. Это простое изменение превратило рулетку в тактический выбор: рискнуть или подготовиться?

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

Решение: Я в несколько раз поднял цены продажи базовых ресурсов. Теперь у гринда появился смысл — это стало способом заработать на ремонт и новое снаряжение.

Этот процесс итеративного тестирования и правок научил меня главному: игра — это не код, а эмоции. И если первые 15 минут игрок чувствует только фрустрацию и несправедливость, он никогда не увидит тот контент, над которым ты работал месяцами.

Что получилось в итоге?

Сейчас «Эхо Бездны» — это небольшой, но завершенный пролог на 20-30 минут геймплея. В нем есть:

  • 🗺 Карта мира для исследования.
  • 🗣 Два полноценных квеста от NPC.
  • 🛠 Система крафта, ремонта и торговли.
  • 💀 Несколько видов монстров и снаряжения.
  • ☢ И, надеюсь, та самая атмосфера безысходности и азарта первооткрывателя.

(Здесь можно вставить скриншот вашего Telegram-канала с приветственным постом)

Нужна ваша помощь: Приглашение на открытый бета-тест

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

Поэтому я приглашаю всех желающих на открытый бета-тест.

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

Ссылка на канал игры:https://t.me/AbyssEchoGameChannel

Буду невероятно благодарен за любой фидбек, будь то комментарий здесь или сообщение в канале. Спасибо, что дочитали, и удачной вылазки, сталкеры

5
1
9 комментариев