Skip to content

NikPeg/reload-wpg-engine

Repository files navigation

Reload WPG Engine

Движок для проведения ВПИ (текстовые стратегические многопользовательские игры)

Описание

Настраиваемая платформа для проведения текстовых военно-политических игр с возможностью постепенной автоматизации.

Технический стек

  • Язык: Python 3.10+
  • База данных: SQLite
  • ОРМ: SQLAlchemy
  • Telegram: aiogram
  • VK: vk bottle
  • AI: OpenRouter API
  • Markdown: telegramify-markdown
  • Конфиг: Pydantic Settings

Архитектура

Монолит с адаптерами

Установка

pip install -r requirements.txt

Запуск

1. Установка зависимостей

pip install -r requirements.txt

2. Настройка окружения

Скопируйте .env.example в .env и настройте переменные:

cp .env.example .env

Обязательно укажите:

  • TG_TOKEN - токен Telegram бота от @BotFather

3. Запуск бота

python main.py

Главный скрипт автоматически:

  • Инициализирует базу данных, если её нет
  • Создаёт начальную игру, если игр нет
  • Останавливает старые процессы бота
  • Запускает новый экземпляр бота

4. Тестирование (опционально)

# Тест движка
python tests/test_engine.py

# Тест админской системы
python tests/test_admin_system.py

# Тест настроек
python tests/test_settings.py

Структура проекта

reload-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             # Документация

Telegram бот

Команды для игроков:

  • /start - начать работу с ботом
  • /register - зарегистрироваться в игре (создать страну)
  • /stats - информация о своей стране
  • /post - отправить пост с действием
  • /world - информация о других странах
  • /help - справка по командам

Команды для администраторов:

  • /start - главное меню и панель администратора
  • /game_stats - статистика игры
  • /update_game - изменить параметры игры
  • /restart_game - перезапустить игру (полная очистка)
  • /event - отправить сообщение всем игрокам

Процесс регистрации:

  1. Игрок использует /register
  2. Бот спрашивает название и описание страны
  3. Бот последовательно спрашивает значения всех 10 аспектов (1-10)
  4. Бот спрашивает столицу и население
  5. Заявка отправляется администратору
  6. Администратор одобряет или отклоняет заявку

План развития

  • MVP: Ручная админка
  • v2: RAG для админа
  • v3: Автоматические верды
  • v4: Интерактивная карта

About

Открытая платформа для создания и проведения текстовых военно-политических игр (ВПИ). Позволяет администраторам запускать собственные игры с настраиваемыми механиками через Telegram и VK, с поддержкой ИИ для автоматизации игрового процесса.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages