Завершено

Тени Свистоплясово: как мы построили свой «Ночной дозор»

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

Тени Свистоплясово: как мы построили свой «Ночной дозор»
Тени Свистоплясово — веб-платформа для квестов на открытой местности | Зажигай Киров

Ночной дозор — культовый формат. Команды бегают по городу, разгадывают загадки, получают следующую геоточку и кто-то в итоге побеждает. Проблема в том, что нормального технологического инструмента для ведения таких игр не существует. Либо телеграм-бот с кривым UX, либо эксель-таблица мастера и ручной труд на протяжении всей игры. Мы решили сделать по-человечески — и сделали.

Интерфейс платформы Тени Свистоплясово — таблица рекордов, профиль игрока, конструктор заданий и дашборд мастера
Таблица рекордов, профиль игрока, конструктор заданий и панель управления мастера — всё в одном интерфейсе

Стек и зачем именно он

Квест в реальном времени — это событийная система. Мастер жмёт «пропустить этап» — все команды моментально видят следующее задание. Игрок отправляет ответ — таймер останавливается, баллы пересчитываются, таблица обновляется. REST-поллинг каждые 3 секунды здесь не вариант — нужны WebSockets.

Выбор стека логичный: Laravel как backend, Laravel Reverb как WebSocket-сервер, React на фронте. Reverb — нативное решение для Broadcasting API, которое работает без Pusher и без ручного Node.js-сервера. Меньше инфраструктуры, меньше боли.

Laravel Laravel Reverb React + Inertia WebSockets MySQL Redis QR-коды

Как устроен процесс

В платформе два мира — Мастер и Игрок. Один и тот же квест, но через принципиально разные интерфейсы с разными возможностями.

Роли в системе
👁 Мастер
  • Создаёт сценарии с заданиями, ответами и подсказками
  • Добавляет геометки и фото-загадки к каждому этапу
  • Прокладывает уникальные маршруты для каждой команды
  • Запускает, приостанавливает, перезапускает игру
  • Пропускает этапы, меняет капитана, рассылает уведомления
  • Видит дашборд с прогрессом всех команд в реальном времени
👤 Игрок
  • Входит по QR-коду или числовому коду игры
  • Создаёт команду или присоединяется к другой
  • Получает задания с таймером — быстрее = больше баллов
  • Видит геоточки и навигацию к следующему заданию
  • Общается в командном чате и с мастером
  • Запрашивает подсказки (за штраф к баллам), смотрит рекорды

Механики, которые держат напряжение

Квест без геймплейных механик — это список вопросов. Чтобы людям было интересно бежать, а не просто идти — нужно давление. Таймер создаёт его. Уникальные маршруты для команд исключают читерство — команда А и команда Б идут к одним точкам, но в разном порядке. Подсказки есть, но за штраф в баллах — думай дважды.

Типы заданий
  • Текстовые шифры и варианты ответа
  • Геометки — нужно дойти до точки на карте
  • Фото-загадки и QR-метки на местности
  • Таймер на задание — чем быстрее, тем больше баллов
  • Уникальный маршрут для каждой команды
  • Подсказки с балловым штрафом
Управление и геймификация
  • Таблица рекордов обновляется в реальном времени
  • Система ачивок за достижения
  • Командный чат и прямой чат с мастером
  • Пауза / перезапуск / пропуск этапа одной кнопкой
  • Смена капитана команды
  • Пуш-уведомления от мастера всем участникам
Форматы заданий
4
текст · гео · фото · QR
Синхронизация
RT
real-time через WebSockets, без перезагрузки
Рекорды и ачивки
система достижений и история игр

Вход без лишнего трения

Человек на квесте не хочет регистрироваться. Он хочет сканировать QR и играть. Поддержали три сценария: гостевой вход (только имя), Яндекс ID и Telegram Login. Кто хочет — привязывает аккаунт и сохраняет историю и рекорды. Кто не хочет — просто играет.

Способы входа в игру
👤 Гостевой вход
🟡 Яндекс ID
✈️ Telegram Login
📷 QR-код игры
🔢 Числовой код

White-label для других агентств

Платформа закрытая, но масштабируемая. Предусмотрено брендирование под другие агентства: цвета, логотип, название, домен. «Тени Свистоплясово» — рабочее название для одного запуска. Архитектура рассчитана на то, чтобы предоставлять инструмент под ключ другим ивент-командам. Конкурентов в этом сегменте единицы, а нормального веб-клиента нет вообще.

Почему не телеграм-бот? Потому что бот не даёт геонавигацию, нормальную таблицу рекордов, командный чат, дашборд мастера и контроль над UX. А самое главное — нестабильная сеть за пределами города и в условиях блокировок иностранных сервисов. Мы сделали платформу, которая в том числе продолжает работать даже при потере сети и синхронизирует данные как только сеть появится.

Статус и что дальше

Платформа проходит первые тесты на реальных играх «Свистоплясово». Движок работает: WebSocket-соединения держатся стабильно, рекорды обновляются моментально, мастер реально управляет игрой не вставая с кресла.

«Тени Свистоплясово» — это не просто инструмент для одного агентства. Это инфраструктура для формата, у которого в рунете нет нормального технологического решения. Хорошая игра начинается с хорошего движка — теперь он есть.

Галерея

Тени Свистоплясово: как мы построили свой «Ночной дозор» — 1Тени Свистоплясово: как мы построили свой «Ночной дозор» — 2Тени Свистоплясово: как мы построили свой «Ночной дозор» — 3Тени Свистоплясово: как мы построили свой «Ночной дозор» — 4Тени Свистоплясово: как мы построили свой «Ночной дозор» — 5Тени Свистоплясово: как мы построили свой «Ночной дозор» — 6Тени Свистоплясово: как мы построили свой «Ночной дозор» — 7