Skip to content

AleKsanDerXs/WhyBox

Repository files navigation

WH?Box — Коллекция мультиплеерных AI-игр

Шесть браузерных мультиплеерных игр, объединённых общим лаунчером. В каждой из них ИИ — не декорация: он управляет игровыми персонажами, генерирует уникальный контент в реальном времени и участвует в механиках наравне с живыми игроками.


Игры

# Игра Жанр Порт
🕵️ Детектив против ИИ Детективный допрос 5004
⚔️ Dungeon Game Кооперативный экшн 5008
🔐 Секрет ИИ Угадайка / Дедукция 5002
🧩 AI-Угадайка Угадайка по рисунку 5005
🤖 Кто ИИ? Социальная дедукция 5001
🎨 AI-Воображатор Угадайка по макету 5006

Быстрый старт

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

pip install flask flask-socketio eventlet requests python-dotenv

Запуск лаунчера

python launcher.py

Откройте http://localhost:50001 — лаунчер отображает статус всех серверов и позволяет войти в любую запущенную игру одним кликом.

Запуск отдельных серверов

Каждую игру нужно запускать в отдельном терминале:

python detective_box.py   # Детектив против ИИ  → :5004
python secret_box.py      # Секрет ИИ           → :5002
python guess_box.py       # AI-Угадайка          → :5005
python who_is_ai/app.py   # Кто ИИ?             → :5001
python old/app_box.py     # AI-Воображатор       → :5006
cd ai_robot && python app.py  # Dungeon Game     → :5008

Groq API Key

Все игры используют Groq API. Ключ прописан непосредственно в каждом файле (AI_API_KEY). Для Dungeon Game ключ хранится в ai_robot/.env:

GROQ_API_KEY=gsk_...

Описание игр

🕵️ Детектив против ИИ

Детективный допрос в жанре нуар. Игроки-детективы допрашивают ИИ-подозреваемого с живым характером и заданными противоречиями в показаниях. Между раундами — мини-игры (лупа, телефон) и система улик, которые можно покупать или получать бесплатно. В финале каждый детектив выдвигает обвинение — ИИ-судья оценивает точность и раскрывает правду.

ИИ в роли: подозреваемого (диалог с памятью), аналитика противоречий, генератора улик и свидетелей, финального судьи.

Подробное описание


⚔️ Dungeon Game

Кооперативный данжен-кроулер на двух игроков. ИИ описывает существ, локации и события в реальном времени. Каждый игрок придумывает своё умение — ИИ создаёт из описания уникальную механику с числовыми характеристиками. Все бои, эффекты и нарратив генерируются ИИ на лету.

ИИ в роли: нарратора, дизайнера умений, ведущего боевых сцен.

Подробное описание


🔐 Секрет ИИ

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

ИИ в роли: генератора пароля, хранителя секрета с управляемым дозированием подсказок.

Подробное описание


🧩 AI-Угадайка

ИИ рисует объект или существо поэтапно — только с помощью HTML и CSS, без изображений. На каждом этапе добавляется одна новая деталь. Игроки угадывают, что нарисовано. ИИ одновременно оценивает догадки и дорисовывает следующий фрагмент — в одном запросе.

ИИ в роли: художника (HTML+CSS), ведущего с персонажем (пират, детектив, профессор), судьи догадок.

Подробное описание


🤖 Кто ИИ?

Социальная дедукция в иммерсивных сеттингах (фэнтези, космос, детектив, средневековье). Один игрок — Угадыватель, остальные — Участники, и среди них прячется ИИ-бот. Бот всегда генерирует ответ после людей, анализируя их стиль: среднюю длину, эмодзи, разговорность. На интерактивной canvas-карте отряд перемещается между локациями, влияющими на контент раундов.

ИИ в роли: нарратора, гейм-мастера, скрытого участника-имитатора.

Подробное описание


🎨 AI-Воображатор

ИИ создаёт HTML-макет сайта по скрытой теме, добавляя виджет за виджетом. Игроки угадывают, какому сайту или концепции посвящён макет. После каждого этапа ИИ оценивает догадки и генерирует следующий виджет — в одном запросе.

ИИ в роли: дизайнера (HTML+CSS), ведущего с персонажем, судьи догадок.

Подробное описание


Архитектура

WhyBox/
├── launcher.py            # Лаунчер всех игр (порт 50001)
│
├── detective_box.py       # Детектив против ИИ (порт 5004)
├── templates/
│   └── detective.html
│
├── secret_box.py          # Секрет ИИ (порт 5002)
│                          # (фронтенд встроен в py-файл)
│
├── guess_box.py           # AI-Угадайка (порт 5005)
├── templates/
│   └── guess.html
│
├── who_is_ai/
│   ├── app.py             # Кто ИИ? (порт 5001)
│   └── templates/
│       └── game.html
│
├── ai_robot/
│   ├── app.py             # Dungeon Game (порт 5008)
│   ├── game/              # Игровая логика (бой, эффекты, состояние)
│   └── templates/
│       └── index.html
│
└── old/
    └── app_box.py         # AI-Воображатор (порт 5006)
                           # (фронтенд встроен в py-файл)

Общий стек

Компонент Технология
Бэкенд Python 3.x, Flask, Flask-SocketIO
Async-режим eventlet (все игры, кроме Кто ИИ? — threading)
Транспорт WebSocket
ИИ Groq API (llama-3.1-8b-instant, openai/gpt-oss-120b)
Фронтенд Vanilla JS, Tailwind CSS
Состояние Сервер-авторитарное (клиент только рендерит)

Архитектурные принципы

  • Сервер-авторитарная модель. Вся игровая логика на сервере. Клиент отображает состояние и отправляет действия через WebSocket.
  • ИИ — объект игровой логики. Ответы ИИ проходят через ту же обработку, что и действия живых игроков: добавляются в общие списки, перемешиваются, оцениваются одним кодом.
  • Фоновые задачи. Все длинные AI-запросы выполняются через socketio.start_background_task — сервер не блокируется, пинги продолжают работать.
  • Реконнект по ID. Каждый игрок получает уникальный ID, хранящийся в localStorage. При переподключении сервер восстанавливает сессию по ID, не по socket-у.
  • Fallback на каждом уровне. Все AI-запросы повторяются до 3 раз. При невалидном JSON — безопасный дефолт. Ни одна ошибка ИИ не ломает игровую сессию.

About

My Web-browser Game with AI fully integration!

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages