Шесть браузерных мультиплеерных игр, объединённых общим лаунчером. В каждой из них ИИ — не декорация: он управляет игровыми персонажами, генерирует уникальный контент в реальном времени и участвует в механиках наравне с живыми игроками.
| # | Игра | Жанр | Порт |
|---|---|---|---|
| 🕵️ | Детектив против ИИ | Детективный допрос | 5004 |
| ⚔️ | Dungeon Game | Кооперативный экшн | 5008 |
| 🔐 | Секрет ИИ | Угадайка / Дедукция | 5002 |
| 🧩 | AI-Угадайка | Угадайка по рисунку | 5005 |
| 🤖 | Кто ИИ? | Социальная дедукция | 5001 |
| 🎨 | AI-Воображатор | Угадайка по макету | 5006 |
pip install flask flask-socketio eventlet requests python-dotenvpython 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. Ключ прописан непосредственно в каждом файле (AI_API_KEY). Для Dungeon Game ключ хранится в ai_robot/.env:
GROQ_API_KEY=gsk_...
Детективный допрос в жанре нуар. Игроки-детективы допрашивают ИИ-подозреваемого с живым характером и заданными противоречиями в показаниях. Между раундами — мини-игры (лупа, телефон) и система улик, которые можно покупать или получать бесплатно. В финале каждый детектив выдвигает обвинение — ИИ-судья оценивает точность и раскрывает правду.
ИИ в роли: подозреваемого (диалог с памятью), аналитика противоречий, генератора улик и свидетелей, финального судьи.
Кооперативный данжен-кроулер на двух игроков. ИИ описывает существ, локации и события в реальном времени. Каждый игрок придумывает своё умение — ИИ создаёт из описания уникальную механику с числовыми характеристиками. Все бои, эффекты и нарратив генерируются ИИ на лету.
ИИ в роли: нарратора, дизайнера умений, ведущего боевых сцен.
Терминальная угадайка. ИИ придумывает секретное слово на заданную тему и хранит его на протяжении всей игры. Игроки задают вопросы раунд за раундом — ИИ отвечает каждому индивидуально, намекает, но не раскрывает. Ключевая механика: строгий лимит на количество букв пароля, которые ИИ может раскрыть за партию.
ИИ в роли: генератора пароля, хранителя секрета с управляемым дозированием подсказок.
ИИ рисует объект или существо поэтапно — только с помощью HTML и CSS, без изображений. На каждом этапе добавляется одна новая деталь. Игроки угадывают, что нарисовано. ИИ одновременно оценивает догадки и дорисовывает следующий фрагмент — в одном запросе.
ИИ в роли: художника (HTML+CSS), ведущего с персонажем (пират, детектив, профессор), судьи догадок.
Социальная дедукция в иммерсивных сеттингах (фэнтези, космос, детектив, средневековье). Один игрок — Угадыватель, остальные — Участники, и среди них прячется ИИ-бот. Бот всегда генерирует ответ после людей, анализируя их стиль: среднюю длину, эмодзи, разговорность. На интерактивной canvas-карте отряд перемещается между локациями, влияющими на контент раундов.
ИИ в роли: нарратора, гейм-мастера, скрытого участника-имитатора.
ИИ создаёт 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 — безопасный дефолт. Ни одна ошибка ИИ не ломает игровую сессию.