Skip to content

About

Многопользовательская социально-стратегическая игра: мафия + пошаговая стратегия. FastAPI + React.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Мировое господство

Live demo FastAPI React Vite MIT

Сочетание классической мафии и пошаговой стратегии.
Выведите свою страну на вершину мира — дипломатией, экономикой или ядерным арсеналом.


🎮 Об игре

Мировое господство — многопользовательская настолка для голосовой конференции. Один игрок ведёт партию с панели ведущего и выводит статистику на экран/проектор, остальные управляют странами со своих телефонов.

Игра идёт 6 раундов, каждый состоит из двух фаз:

  • Дебаты — игроки прокачивают экономику, покупают вооружение, вводят санкции, ведут переговоры и наносят удары.
  • Обсуждение — ведущий подводит итоги раунда, показывает статистику мира и разрешает переговоры вживую.

Побеждает страна с наивысшим уровнем жизни к концу 6-го раунда — или единственная уцелевшая на карте.

✨ Возможности

  • 🌍 8 стран (Россия, США, Китай, Германия, Франция, Япония, Северная Корея, Израиль), у каждой 4 города со своим генеративным силуэтом
  • 📊 Панель ведущего — карточки всех стран, график экологии мира по раундам, диаграмма уровня жизни, подробный журнал событий с фильтром
  • ☢️ Ядерное оружие — реакторы, боеголовки, удары по городам, ПВО-перехват
  • 💹 Экономика — прокачка городов, доход, вклады в экологию
  • ⚖️ Дипломатия — санкции, денежные переводы и система переговоров (запрос → принятие/отклонение → ведущий сводит игроков)
  • ⏱️ Реальное время — лобби, ходы и события синхронизируются через long-polling
  • 🎨 Тёмный интерфейс в стиле «ситуационной комнаты», SVG-графика, адаптивная вёрстка

🖥️ Стек

Слой Технологии
Backend Python 3.10+, FastAPI, Pydantic, Uvicorn
Frontend React 18, Vite, React Router, CSS Modules
Инфраструктура nginx (статика + reverse-proxy), systemd, Let's Encrypt
flowchart LR
    P["🎮 Игроки<br/>(браузер)"] -->|HTTPS| N[nginx]
    H["🎙️ Ведущий<br/>(проектор)"] -->|HTTPS| N
    N -->|статика SPA| S["React / dist"]
    N -->|/api| U["Uvicorn : FastAPI"]
    U --> G["Игровое состояние<br/>(в памяти)"]
Loading

🚀 Локальный запуск

Требования: Python 3.10+, Node.js 18+

Backend

cd backend
python3 -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload

API поднимется на http://127.0.0.1:8000, Swagger-документация — на /docs.

Frontend

cd frontend
npm install
npm run dev

Игра откроется на http://localhost:5173. Адрес API берётся из frontend/.env.development (по умолчанию http://127.0.0.1:8000).

Чтобы включить отладочные эндпоинты и запуск игры в одиночку, задайте WD_DEBUG=1 перед стартом backend.

📦 Сборка и деплой

cd frontend && npm run build      # соберёт статику в frontend/dist

В продакшене:

  • nginx раздаёт frontend/dist и проксирует /api/ на Uvicorn;
  • backend запускается как systemd-сервис с WD_DEBUG=0 (отладочные эндпоинты выключены);
  • HTTPS через Let's Encrypt (certbot --nginx) с авто-продлением.

Живая версия: world-domination.ru

🗂️ Структура

world-domination/
├── backend/                 # FastAPI-приложение
│   ├── api/                 # роутеры: room, user, game, events, debug
│   ├── modules/db/          # игровая модель (комнаты, страны, города)
│   ├── config.py            # цены, страны, города, баланс
│   └── main.py
└── frontend/                # React-приложение (Vite)
    └── src/
        ├── components/
        │   ├── screens/     # экраны: home, lobby, game (country / owner / meeting)
        │   └── ui/          # переиспользуемые: charts, icons, modal, city-skyline
        └── services/        # API-клиент и long-polling

👤 Авторство

Оригинальная концепция и первая версия — Александр Замараев (backend/frontend) и Рамир Воробьёв (UI/UX).

Полная переработка (редизайн, статистика ведущего, система переговоров, деплой) — @shalynishka.

📄 Лицензия

MIT

About

Многопользовательская социально-стратегическая игра: мафия + пошаговая стратегия. FastAPI + React.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages