Тени Свистоплясово: как мы построили свой «Ночной дозор»
Веб-клиент для городских и полевых квестов с геометками, шифрами и real-time синхронизацией — разработан для ивент-агентства «Зажигай» и площадки событий «Свистоплясово» (Киров).

Ночной дозор — культовый формат. Команды бегают по городу, разгадывают загадки, получают следующую геоточку и кто-то в итоге побеждает. Проблема в том, что нормального технологического инструмента для ведения таких игр не существует. Либо телеграм-бот с кривым UX, либо эксель-таблица мастера и ручной труд на протяжении всей игры. Мы решили сделать по-человечески — и сделали.
Стек и зачем именно он
Квест в реальном времени — это событийная система. Мастер жмёт «пропустить этап» — все команды моментально видят следующее задание. Игрок отправляет ответ — таймер останавливается, баллы пересчитываются, таблица обновляется. REST-поллинг каждые 3 секунды здесь не вариант — нужны WebSockets.
Выбор стека логичный: Laravel как backend, Laravel Reverb как WebSocket-сервер, React на фронте. Reverb — нативное решение для Broadcasting API, которое работает без Pusher и без ручного Node.js-сервера. Меньше инфраструктуры, меньше боли.
Как устроен процесс
В платформе два мира — Мастер и Игрок. Один и тот же квест, но через принципиально разные интерфейсы с разными возможностями.
- Создаёт сценарии с заданиями, ответами и подсказками
- Добавляет геометки и фото-загадки к каждому этапу
- Прокладывает уникальные маршруты для каждой команды
- Запускает, приостанавливает, перезапускает игру
- Пропускает этапы, меняет капитана, рассылает уведомления
- Видит дашборд с прогрессом всех команд в реальном времени
- Входит по QR-коду или числовому коду игры
- Создаёт команду или присоединяется к другой
- Получает задания с таймером — быстрее = больше баллов
- Видит геоточки и навигацию к следующему заданию
- Общается в командном чате и с мастером
- Запрашивает подсказки (за штраф к баллам), смотрит рекорды
Механики, которые держат напряжение
Квест без геймплейных механик — это список вопросов. Чтобы людям было интересно бежать, а не просто идти — нужно давление. Таймер создаёт его. Уникальные маршруты для команд исключают читерство — команда А и команда Б идут к одним точкам, но в разном порядке. Подсказки есть, но за штраф в баллах — думай дважды.
- ◆ Текстовые шифры и варианты ответа
- ◆ Геометки — нужно дойти до точки на карте
- ◆ Фото-загадки и QR-метки на местности
- ◆ Таймер на задание — чем быстрее, тем больше баллов
- ◆ Уникальный маршрут для каждой команды
- ◆ Подсказки с балловым штрафом
- ◆ Таблица рекордов обновляется в реальном времени
- ◆ Система ачивок за достижения
- ◆ Командный чат и прямой чат с мастером
- ◆ Пауза / перезапуск / пропуск этапа одной кнопкой
- ◆ Смена капитана команды
- ◆ Пуш-уведомления от мастера всем участникам
Вход без лишнего трения
Человек на квесте не хочет регистрироваться. Он хочет сканировать QR и играть. Поддержали три сценария: гостевой вход (только имя), Яндекс ID и Telegram Login. Кто хочет — привязывает аккаунт и сохраняет историю и рекорды. Кто не хочет — просто играет.
White-label для других агентств
Платформа закрытая, но масштабируемая. Предусмотрено брендирование под другие агентства: цвета, логотип, название, домен. «Тени Свистоплясово» — рабочее название для одного запуска. Архитектура рассчитана на то, чтобы предоставлять инструмент под ключ другим ивент-командам. Конкурентов в этом сегменте единицы, а нормального веб-клиента нет вообще.
Статус и что дальше
Платформа проходит первые тесты на реальных играх «Свистоплясово». Движок работает: WebSocket-соединения держатся стабильно, рекорды обновляются моментально, мастер реально управляет игрой не вставая с кресла.
«Тени Свистоплясово» — это не просто инструмент для одного агентства. Это инфраструктура для формата, у которого в рунете нет нормального технологического решения. Хорошая игра начинается с хорошего движка — теперь он есть.
Галерея






