Полевой КомпасСвязаться →

Приложение для страйкбола: карта, связь и управление командой

Android-приложение хранит игровое состояние, проверяет координаты, управляет ПМ-1 и показывает не только данные, но и их достоверность: источник, точность, возраст и состояние доставки.

Интерфейс для поля, а не для офиса

Во время игры нет времени разбираться в сложной панели. Поэтому основной экран собран вокруг карты, радара и коротких действий. Важные состояния видны сразу, второстепенные настройки убраны глубже.

Android-приложение Полевого Компаса с офлайн-картой
Карта стороны с позициями, объектами, приказами и состоянием связи.

Радар

Показывает ближайших союзников относительно текущего направления: азимут, дистанцию и возраст позиции. Это быстрый режим для движения, когда подробная карта не нужна.

Карта

Показывает всю сторону, маршруты, точки, зоны и задачи. Свежая позиция, старая позиция и отсутствие данных выглядят по-разному.

Крупные действия

Кнопки рассчитаны на короткое нажатие в движении. Опасные действия, включая SOS и смену состояния игрока, требуют удержания.

Понятная деградация

При потере связи последняя точка не исчезает. Рядом показывается её возраст, чтобы командир не принял старую позицию за текущую.

Панель состояния

Bluetooth, узел, очередь, качество координат и заряд собраны в одном месте. Видно, где именно возникла проблема.

Полевая типографика

Короткие подписи, высокий контраст и ограниченное число уровней вложенности уменьшают число ошибок на ходу.

Командные функции

Каждое действие превращается в событие с автором, временем, адресатом и сроком жизни. Такой формат можно сохранить, повторно отправить и безопасно применить после восстановления связи.

Сообщения

Общий чат и адресные сообщения. Адресный пакет не обязан рассылаться всей сети, если известен маршрут к получателю.

Приказы

Задача игроку, группе или стороне. Приказ может содержать точку, область, срок и подтверждение получения.

Тактические объекты

Точки, маршруты, зоны и временные отметки. У объекта есть автор и срок действия, поэтому карта не заполняется устаревшими метками.

SOS и состояние игрока

События высокого приоритета. Они проходят впереди обычной телеметрии и требуют защищённого подтверждения в интерфейсе.

Избранные участники

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

Журнал

Локальная история позволяет восстановить последовательность приказов, сообщений и изменений состояния даже после перезапуска.

Позиция проходит проверку до появления на карте

Телефонный GPS иногда прыгает, запаздывает или даёт слишком грубую точку. Приложение не отправляет каждую координату без разбора.

1. Проверка входа

Координата должна иметь допустимый возраст, точность и корректные значения широты и долготы.

2. Проверка движения

Новая точка сравнивается с предыдущей, датчиками движения, направлением и короткой историей.

3. Принятие решения

Точка принимается, сглаживается либо удерживается. Явно невозможный скачок не уходит в радиоэфир.

4. Адаптивная отправка

Позиция передаётся при заметном движении, изменении направления, улучшении точности или по интервалу.

Анти-спуфинг без громких обещаний

Приложение использует идеи из навигации дронов: сравнивает GNSS с движением устройства, историей, созвездиями, уровнем сигнала, AGC и временной согласованностью. Оно может предупредить о возможной помехе или подмене, но не называет эвристику криптографическим доказательством.

PDR по шагам

Когда GNSS временно ухудшается, приложение может продолжить приблизительное движение от последней надёжной точки по шагам и направлению. Неопределённость постепенно растёт и явно учитывается.

Внешний GNSS

Архитектура предусматривает внешние NMEA-приёмники по Bluetooth или USB. Входные строки проверяются по контрольной сумме, времени, качеству фикса и HDOP.

Offline-first означает, что телефон не ждёт сеть

Сначала локальное сохранение

Сообщение или приказ сначала попадает в базу телефона, затем в очередь ПМ-1. Потеря Bluetooth не стирает действие.

Повтор без дублей

Событие имеет устойчивый идентификатор. Повторно полученный пакет не создаёт вторую точку или второе сообщение.

Восстановление после перезапуска

Комната, привязка узла, очередь и журнал восстанавливаются из локального хранилища.

Офлайн-карты

Подложка и игровые объекты загружаются заранее. Работа карты не зависит от мобильного интернета на полигоне.

Почему функции разделены между телефоном и ПМ-1

Телефон делает сложную работу

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

ПМ-1 отвечает за надёжный транспорт

Узел держит радиопротокол, очереди, ретрансляцию и связь с соседями. Он продолжает обслуживать радио независимо от того, открыт ли экран карты.