Движок для проведения ВПИ (текстовые стратегические многопользовательские игры)
Настраиваемая платформа для проведения текстовых военно-политических игр с возможностью постепенной автоматизации.
- Язык: Python 3.10+
- База данных: SQLite
- ОРМ: SQLAlchemy
- Telegram: aiogram
- VK: vk bottle
- AI: OpenRouter API
- Markdown: telegramify-markdown
- Конфиг: Pydantic Settings
Монолит с адаптерами
pip install -r requirements.txtpip install -r requirements.txtСкопируйте .env.example в .env и настройте переменные:
cp .env.example .envОбязательно укажите:
TG_TOKEN- токен Telegram бота от @BotFather
python main.pyГлавный скрипт автоматически:
- Инициализирует базу данных, если её нет
- Создаёт начальную игру, если игр нет
- Останавливает старые процессы бота
- Запускает новый экземпляр бота
# Тест движка
python tests/test_engine.py
# Тест админской системы
python tests/test_admin_system.py
# Тест настроек
python tests/test_settings.pyreload-wpg-engine/
├── main.py # Главный скрипт запуска
├── wpg_engine/ # Основной пакет движка
│ ├── core/ # Основная логика
│ ├── models/ # Модели данных
│ ├── adapters/ # Адаптеры для внешних сервисов
│ │ └── telegram/ # Telegram бот
│ └── config/ # Конфигурация
├── tests/ # Тесты
│ ├── test_engine.py # Тест движка
│ ├── test_admin_system.py # Тест админской системы
│ └── test_settings.py # Тест настроек
├── .env # Переменные окружения
├── requirements.txt # Зависимости
└── README.md # Документация
/start- начать работу с ботом/register- зарегистрироваться в игре (создать страну)/stats- информация о своей стране/post- отправить пост с действием/world- информация о других странах/help- справка по командам
/start- главное меню и панель администратора/game_stats- статистика игры/update_game- изменить параметры игры/restart_game- перезапустить игру (полная очистка)/event- отправить сообщение всем игрокам
- Игрок использует
/register - Бот спрашивает название и описание страны
- Бот последовательно спрашивает значения всех 10 аспектов (1-10)
- Бот спрашивает столицу и население
- Заявка отправляется администратору
- Администратор одобряет или отклоняет заявку
- MVP: Ручная админка
- v2: RAG для админа
- v3: Автоматические верды
- v4: Интерактивная карта