В идее городского квеста экран выглядит простым: вопрос, поле ответа и кнопка. Но человек играет на улице, отвлекается и переключается между приложениями. Автор в это время исправляет текст. У обоих должно сохраняться понятное состояние.
Я собирал платформу с помощью ИИ-инструментов и проверял её на «Сигнале Академгородка». Они ускорили работу с кодом, но маршрут, данные, резервные копии и поведение реальных игроков всё равно пришлось проверять отдельно.
Прохождение должно переживать перерыв
У игрока есть сессия и код восстановления. Платформа сохраняет прогресс, выбранную версию маршрута, очки и действия. Возвращение в игру должно продолжать существующее прохождение, а не создавать его заново после каждого закрытия вкладки.
Прогулочный режим использует геопозицию. Домашний позволяет пройти содержание без поездки. Режим сохраняется вместе с игрой и учитывается в статистике, потому что на улице и дома люди решают задачи по-разному.
Сохранённое состояние полезно и для поддержки: можно разбирать, какой шаг произошёл перед ошибкой, вместо просьбы «попробуйте пройти сначала».
Автору нужен редактор, а игроку — стабильная версия
Редактор позволяет менять точки, координаты, радиус геопроверки, персонажей, задания, допустимые ответы, подсказки и начисление очков. Рядом есть предпросмотр телефона. Исправление текста не требует заново собирать всё приложение.
Движок поддерживает восемь форматов: текст, число, один вариант, несколько вариантов, порядок элементов, активные области изображения, QR-код и фотографию. Это возможности платформы; конкретный квест не обязан использовать их все.
Содержание разделено на черновик и публикацию. Структурные изменения требуют новой версии, чтобы уже начатая игра продолжала работать по прежней схеме. Иначе удаление одной точки в редакторе может сломать прохождение у человека на улице.
Плохая сеть меняет требования к кнопке
Если ответ уходит медленно, человек нажимает ещё раз. Подсказка не должна открыться дважды и дважды снять очки. Запоздавший ответ сервера не должен вернуть интерфейс на уже пройденный экран.
Поэтому в разработку входят блокировка повторного действия, повтор запроса без дублирования результата, проверка версии состояния и понятная ошибка. Это почти не видно на красивом скриншоте, но хорошо заметно, когда не работает.
Автоматические сценарии помогают находить такие проблемы. При этом локальная проверка одновременных прохождений не доказывает ёмкость сервера на большом мероприятии. Нагрузку под конкретное событие нужно оценивать отдельно.
Данные нужны для изменения продукта

Панель показывает старты, завершения, баллы и время. Подробный разбор позволяет находить этапы, на которых растут попытки и использование подсказок. Фильтры по версии, режиму и периоду помогают сравнивать сопоставимые прохождения.
Данные с работающего сайта нужно сохранять при обновлении. Перед выпуском важны резервная копия, проверка восстановления и сверка существующих прохождений. Успешная сборка кода сама по себе не подтверждает сохранность истории игроков.
Приложение собрано на React и Vinext, серверная часть работает в Cloudflare Worker. Прохождения хранятся в D1, изображения — в R2. Для заказчика практический смысл этой схемы в разделении кода, содержания и данных людей: обновление одного не должно незаметно заменять другое.
Следующий продукт использует накопленный опыт
Разговоры с большими площадками привели к навигатору впечатлений. В нём сохраняются содержание территории и аналитика действий, а следующий шаг выбирает сам гость. Такой переход требует пересмотреть модель поведения, а не только поменять заголовок главной страницы.
Для нового проекта я сначала проверяю, что можно взять из работающей платформы. Отдельно оцениваются новые механики, каталог мест, карта, актуальные статусы и интеграции. Заказчик должен понимать, где заканчивается адаптация и начинается самостоятельная разработка.
Посмотрите кейс Геоквеста, попробуйте действующую игру и опишите, какое действие должен совершить ваш гость. С этого можно начать разработку цифрового продукта для территории.
